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本身就存在这样的问题,是否有人遇到过类似的问题,有什么好的解决办法吗?比如让性能好的节点承担更多的数据写入?
我有一个数据量比较大,写入负载比较高的日志的索引,给这个索引分配了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本身就存在这样的问题,是否有人遇到过类似的问题,有什么好的解决办法吗?比如让性能好的节点承担更多的数据写入?
3 个回复
codersun
赞同来自:
如果你这里仅写数据,文档数一致也不能保证没有重复写的数据,是不是自定义了_routing & _id ?
可以通过kibana检查下每个节点的 IndexingRate 数据是不是一致
Charele - Cisco4321
赞同来自:
lyes
赞同来自: