ES集群CPU占用高问题总结

线上三台集群部署的集群占用CPU过高,均接近100%,下面分析一下问题根源以及解决思路。

Top查看CPU内存情况

CPU内存情况

ES进程133248的CPU占用达到117.2%,内存占用19.1G

查看CPU占用高的线程curl -XGET "http://*:9200/_nodes/hot_threads"

ESCPU占用高的线程

cpu占用比较高时,ES正在执行lucene的排序或查询任务

查看ES正在执行任务curl -XGET "http://*:9200/_tasks?pretty"

ES正在执行任务

发现3个节点有近160个任务正在执行,其中任务占100个左右,写入任务占30个左右

总结

综上分析,ES占用CPU过高是由于正在执行任务太多导致;
业务上的原因是:后台大量定时任务需要查询ES,并且查询过程中涉及到反查,所以比较耗费ES性能。

参考资料

Task management API | Elasticsearch Guide [8.2] | Elastic
Elasticsearch CPU高排查思路
elasticsearch服务器CPU100%分析

你可能感兴趣的:(ES集群CPU占用高问题总结)