Я использую ES v7.3 и использую нарезку для потоковой передачи данных из ES, но я наблюдаю, что после нескольких потоковой передачи данных некоторые контексты прокрутки остаются открытыми, и они остаются открытыми в течение нескольких дней, и срок их действия не истек или убит и, следовательно, поиск продолжается, и наблюдаются высокие всплески скорости процессора. Также в журналах мы получаем следующее сообщение:
[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]
Запрашивает, может ли кто-нибудь помочь нам, если нам не хватает какого-либо параметра на уровне индекса, который мы должны применить, чтобы эти открытые контексты были уничтожены или истекли после истекло время ожидания.
Для проверки и удаления открытого контекста я использую следующую команду соответственно:
GET _nodes/stats/indices?filter_path=**.open_contexts
DELETE /_search/scroll/_all
Более того, мои таймауты:
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
};