我的_search
请求逐渐变得越来越慢,直到 504 网关超时。然后我看到了几十个超长运行的indices:data/read/search
任务,看不到尽头,所以我尝试使用取消它们POST _tasks/_cancel?actions=*search
(注意我只有一个感兴趣的节点,所以我不需要&node=...
参数)。
这只会导致另一个 ( cancel
) 任务被注册,现在甚至我的GET _tasks
和GET _cat/tasks?v
请求都超时了。
我想知道是否可以
running_time_in_nanos
设置所有任务的属性上限search
和/或自动取消所有超出的任务- 当任务 API 本身超时时,强制取消任务而无需重新启动 ES 服务
旁注:我已经有一个健康检查 bash 脚本
if [ `curl -s -m 20 https://my-es-instance | grep "You Know, for Search" | wc -l` -ne 1 ];
then
echo "`date "+%F %T"` app not responding" &>> $my_log_file
...
但它没有考虑到根 ( GET /
) 可能正在运行,而_search
端点却不是这样的事实。
这里的最佳做法是什么?