用了Elasticsearch,一口气上5T

indexing时节点负载不均衡

Elasticsearch | 作者 wangxinrong | 发布于2021年04月19日 | 阅读数:1225

ES版本是7.11.1
我有一个数据量比较大,写入负载比较高的日志的索引,给这个索引分配了40个16C64G 2Tssd盘的虚拟机。
ilm策略配置索引大小每到5T做一次rollover,分片数为120。
 
现在观察到的现象是:
1.写入时各节点写入的数据量基本相同(各分片的文档数相差很小)。但cpu负载相差很大。cpu user time最高的那台已经到60%的时候,最低的那台才30%。
2.cpu平时跑的高的节点,一直都相对较高,低的一直都相对较低。
3.每天到达高峰期时,都是最高的几个节点平均每核cpu load先到1以上,然后达到瓶颈开始出现数据积压。
 
之前怀疑过是虚拟机所在的物理机上负载各不相同,存在资源争用,导致各台机器实际的性能不一致。但这个问题我们在用阿里云ECS,和公司IDC机房服务器上建的虚拟机都存在,并且IDC机房虚拟机,所在物理机负载高的,虚拟机不一定是es中负载最高的节点。
 
不知道是不是es本身就存在这样的问题,是否有人遇到过类似的问题,有什么好的解决办法吗?比如让性能好的节点承担更多的数据写入?
已邀请:

codersun

赞同来自:

索引跟查询都能导致服务器负载较高
如果你这里仅写数据,文档数一致也不能保证没有重复写的数据,是不是自定义了_routing & _id ?
可以通过kibana检查下每个节点的  IndexingRate 数据是不是一致

Charele - Cisco4321

赞同来自:

你用hotThread API看看,确定下主要占用cpu的是不是bulk线程,

lyes

赞同来自:

没遇到过。Mark一下,学习学习

要回复问题请先登录注册