首页 > 解决方案 > 如何监控每个滚动 ID 的滚动 API 使用的资源?调用 clearScroll Api 时会发生什么

问题描述

如何监视每个滚动 ID 的滚动 API 使用的内存资源或搜索上下文?这些搜索上下文存储在哪里,有没有办法查看或监控它们?java api public SearchRequest scroll(TimeValue keepAlive) {...}的参数keepAlive是什么意思

参考:https ://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.5/java-rest-high-clear-scroll.html#java-rest-high-clear-scroll-async

标签: elasticsearch

解决方案


您可以通过调用Node stats API检查当前打开了多少搜索上下文,但没有办法(据我所知)查看它们使用了多少内存:

GET _nodes/stats/indices?filter_path=**.open_contexts

=>

{
  "nodes" : {
    "QjjWj45NQkGC9qcaylDDVQ" : {
      "indices" : {
        "search" : {
          "open_contexts" : 0
        }
      }
    },
    "eZbpkckXSxSxzD8c_QOkEA" : {
      "indices" : {
        "search" : {
          "open_contexts" : 3
        }
      }
    },
    "0VFJaC2uTraudPCMqODhiw" : {
      "indices" : {
        "search" : {
          "open_contexts" : 2
        }
      }
    }
  }
}

搜索上下文存储在堆上。

此外,该keepAlive参数告诉上下文在自动清除之前在内存中保持可用的时间。


推荐阅读