Elasticsearch 7.4 集群内部的某些东西变得越来越慢,有时会出现读取超时

Something inside Elasticsearch 7.4 cluster is getting slower and slower with read timeouts now and then

过去几天,我们的 ES 7.4 集群(4 个节点)经常出现读取超时,并且在涉及 运行 某些管理命令时变得越来越慢。在此之前已经运行一年多了,没有任何问题。例如 /_cat/nodes 昨天执行需要 2 分钟,今天已经需要 4 分钟。服务器负载很低,内存使用似乎还不错,不知道该往哪里看。

使用 opster.com 在线工具,我设法得到一些提示,表明管理队列大小很高,但是当执行那里建议的命令进行调查时,除此之外我没有发现任何异常情况该命令需要很长时间才能给出结果:

$ curl "http://127.0.0.1:9201/_cat/thread_pool/management?v&h=id,active,rejected,completed,node_id"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   345  100   345    0     0      2      0  0:02:52  0:02:47  0:00:05    90
id                     active rejected completed node_id
JZHgYyCKRyiMESiaGlkITA      1        0   4424211 elastic7-1
jllZ8mmTRQmsh8Sxm8eDYg      1        0   4626296 elastic7-4
cI-cn4V3RP65qvE3ZR8MXQ      5        0   4666917 elastic7-2
TJJ_eHLIRk6qKq_qRWmd3w      1        0   4592766 elastic7-3

我该如何调试/解决这个问题?提前致谢。

如果您注意到您的 elastic7-2 节点在管理队列中有 5 个活动请求,这确实很高,因为管理队列容量本身只有 5,并且仅用于很少的操作(管理, 而不是 search/index).

您可以查看 threadpools in elasticsearch 进一步阅读。