3
回答
Elasticsearch数据节点的CPU使用率骤增(访问量没有异常)可能是什么原因?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
最近遇到一个情况:Elasticsearch所有数据节点的CPU使用率骤增,从不到20%飙升到100%,CPU监控情况如下:


当时快速重启了ES,忘了抓取ThreadDump……

经过一些基本的排查发现,在CPU冲高时:
1. 该ES集群唯一的入口应用访问量及各访问类型所占比例与正常时差别甚微。
2. 索引数据的更新数量也没有明显变化,每隔几分钟做一次批量的增量更新。

其他线索:
1. ES数据节点虚拟机基本配置:内存--32G,CPU--2600MHz * 8核;
    ES初始内存及最大内存都是20G;
    虚拟机上只运行了ES这一个用户程序。
2. 前一天晚上刚刚增加了索引副本的数量(重点怀疑对象,近期唯一的改动点),由2改为了5(在elasticsearch.yml里改完重启的);因为目前只有6个数据节点,也就意味着每个数据节点都有一套完整的索引,但索引数据量不大,单台服务器索引文件加起来不到1G。
3. 由于情况紧急,直接还原了副本数量的配置(也是在elasticsearch.yml里改的,其实可以动态修改),重启ES后又重建了全量索引,但在重启ES后CPU就已经降下来了,所以还没法确定是不是副本数量的问题。
4. 当时ES集群中只有一台ES服务器的老年代即将回收,大多节点老年代可用空间还很多,因此也基本能排除GC的原因(GC采用默认的CMS)。
5. ES版本:2.1.1

请问,在访问量和索引更新数量变化极小、索引数据量很小、又与GC无关的情况下,还可能有什么情况会使ES的CPU使用率骤增呢?会不会ES内部遇到了什么死锁或死循环的状况……??

补充:网卡流量也检查过了,CPU冲高的时间流量反而降低了,很困惑。


举报
verra
发帖于1年前 3回/1K+阅
顶部