我正在使用 ES v7.3 并使用切片从 ES 流式传输数据,但我观察到,在我们流式传输数据几次后,一些滚动上下文保持打开状态,并且它们保持打开状态数天,并且不会过期或终止,因此搜索继续进行,并且观察到 CPU 峰值较高。此外,在日志中我们还收到以下消息
[2020-02-07T06:49:33,559][DEBUG][o.e.a.s.TransportSearchScrollAction] [ip-1-0-104-220] [1234717] Failed to execute query phase
org.elasticsearch.transport.RemoteTransportException: [ip-1-0-104-220][1.0.104.220:9300][indices:data/read/search[phase/query/scroll]]
Caused by: org.elasticsearch.search.SearchContextMissingException: No search context found for id [1234717]
at org.elasticsearch.search.SearchService.getExecutor(SearchService.java:462) ~[elasticsearch-7.3.1.jar:7.3.1]
at org.elasticsearch.search.SearchService.runAsync(SearchService.java:344) ~[elasticsearch-7.3.1.jar:7.3.1]
at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:401) ~[elasticsearch-7.3.1.jar:7.3.1]
at org.elasticsearch.action.search.SearchTransportService.lambda$registerRequestHandler$10(SearchTransportService.java:367) ~[elasticsearch-7.3.1.jar:7.3.1]
at org.elasticsearch.xpack.security.transport.SecurityServerTransportInterceptor$ProfileSecuredRequestHandler$1.doRun(SecurityServerTransportInterceptor.java:257) [x-pack-security-7.3.1.jar:7.3.1]
Run Code Online (Sandbox Code Playgroud)
如果我们缺少索引级别的任何设置,我们将请求是否有人可以指导我们,我们应该强制执行这些设置,以便这些打开的上下文在达到超时后被杀死或过期。
要检查和删除打开的上下文,我分别使用以下命令,
GET _nodes/stats/indices?filter_path=**.open_contexts
DELETE /_search/scroll/_all
Run Code Online (Sandbox Code Playgroud)
此外,我的超时是,
exports.ELASTICSEARCH = {
PARALLEL_SLICES : 2,
SCROLL_ALIVE_TIME : '5m',
SLICE_ALIVE_TIME : '1m',
SCROLL_SIZE : 10000,
REQUEST_RETRY_COUNT : 5,
REQUEST_TIMEOUT : 120000, // in milliSecond
ERROR_RETRY_COUNT : 3
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4052 次 |
| 最近记录: |