elasticsearch机器负载load average突然飙升问题求解决

作者 zsgking | 发布于2017年12月11日 | 阅读数:716

我们的集群三台物理机,机器配置128G内存,1TB固态硬盘,40核的cpu。集群的搭建方式一个物理机2个es实例,一个为data节点,一个为master节点,一共3个data和3个master,集群的分片使用的默认的,5个主分片一个副分片。我们的使用场景主要是管理后台实时的搜索,通过db或者kafaka往es集群写数据然后在后台搜索,现在遇到问题就是机器的load经常飙升,单核飙升到1以上,导致搜索的时候超时,然后我就把所有往es写数据的job都停下来负载又迅速下降。现象是集群中只有一个机器的负载飙升的比较高,每次都是这一台飙升,且这台不是master所在机器。

load.jpeg

x-pack在负载飙升时刻的监控,indexing rate为0,感觉es像夯住了一样

xpackindex.jpeg

 
给我的感觉是es集群扛不住这么大的数据写入量,但为题是为什么每次都是一台机器负载高呢,其他两台机器单核负载在0.05左右,非常低,而且负载飙升的这台机器在正常的时候负载也非常的低,集群的大致情况如下

clusterinfo.jpeg

集群中有比较大的索引,大概在20几G,大概就是这样的情况,请求大家给点解决方案或者解决思路,谢谢
已邀请:

laoyang360 - [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:blog.csdn.net/laoyang360

赞同来自:

 
看到数据节点上的高负载是很正常的,因为这是主要受索引文档影响的节点。
除了决定将索引放在何处以及在新字段到达时更新集群状态时,Master 节点不会做更多的事情。
数据节点完成真正的工作,例如分析数据和存储数据等。
 
多半和磁盘有关系,通过磁盘排查突破。

yayg2008

赞同来自:

从你的描述可以推测是写数据导致的负载高。
至于为什么只有1个节点高,很有可能是因为数据分布不均导致,因为索引在创建的时候会结合当时的磁盘使用情况来将shard分配到相应的节点,一旦分配,基本上就不会变化,如果这个索引数据量非常大,那么对应的几个节点资源消耗势必会多,又如果你使用了routing,导致了热点倾斜,则可能出现这种情况。
另外,机器配置是否一样?
你是SSD,写入速度至少可以到200MB/s,IO应该没问题。优化下数据写入性能,应该会有改观。
还一种可能就是,内存脏页过多,系统无法异步回收完成,触发阻塞回收,这个也会将进程夯住。

liulinisgood

赞同来自:

请问有找到这个问题的原因吗,我也是这种情况,IO 和 CPU 利用率都不高
 

medcl - Elastic 🇨🇳 !

赞同来自:

瞬间降为零,多半是和 GC 有关。

zqc0512 - andy zhou

赞同来自:

load 不到1,高撒哟。
那个X-PACK监控是取的ES的值的,大集群下面很有可以取不出来的。特别是做merge rebalance 等条件下。
你写入速率还不到750/s,无压力,随便刚

要回复问题请先登录注册