es节点load值过高(部分)

作者 UnigroupAi | 发布于2018年07月06日 | 阅读数:360


1530866168745.jpg

集群节点load值莫名的高,很久以前就发现这个问题了,生产上16个节点总会有那么几个节点load是红的。这个是什么原因造成的?上传了一张测试环境图,就是表达一下这个情况。内存和cpu都不高,是资源不够还是什么。还有就是单节点64g内存配几个cpu?
已邀请:

code4j - coder

赞同来自: UnigroupAi jianjianhe

1. 首先先确定load高的机器上没有别的进程在干扰.top P 看下cpu使用率等最高的是不是es进程,再看看次高的。
 
2. 排除1的干扰后,最直观的,看下load高的机器是不是有很多主分片,因为写请求都是集中在主分片执行的,很多人觉得写操作是io密集型的和cpu应该没多大关系,其实不然,es的写操作中贯穿了很多cpu密集型操作,比如分词,id校验,倒排索引数据结构创建,而且还要看下load高的请求队列有没有阻塞,线程数是否合理,bulk index等执行线程数最好不要超过核数的2倍,队列大些不要紧。
 
3. 如果是2中的情况,建议优化下索引设置,merge flush等参数,还有索引结构,例如如果是日志类的索引,id自动生成,不必要的子弹不索引,去掉doc_value特性,取消_all字段等。这样优化下应该会好很多。
 
4.如果索引级别优化完了还不行,看下你的主节点和数据节点是否是分离开的,没分开的就分开,如果分开了还这样那就加机器吧,加多少大概估算下,比如3个8核机器平均load12,想下降到正常指标,至少3台吧(假设任务能平均分配到6台机器),这个需要自己根据业务场景评估了。

cyberdak - 58.com

赞同来自: UnigroupAi

`iostat -x 1 100`
看看

bsll

赞同来自:

看看和节点功能有关不,数据节点还是master节点?根据不同的角色功能做不同的优化。

elk123

赞同来自:

查看磁盘io使用情况?磁盘是做raid还是多块单盘的??

yayg2008

赞同来自:

负载高,但CPU利用率不高,多半是IO瓶颈了。检查一下IO情况,再分析。

code4j - coder

赞同来自:

建议使用 dstat -paml 全面分析下,load高再看看cpu哪一部分使用率高

zqc0512 - andy zhou

赞同来自:

这个和CPU个数与核数有关,例如: 2 *24  load 小于48就正常 处理得过来。
这个load过高是进程数多了,看看写入数据的线程是不是很多,可以分小点。
每个索引可以隔天做forcemerge  减小进程数量。
调整索引shards数,ssd一个 20G左右,HHD一个10G左右。

liulinisgood

赞同来自:

我这里也是这种情况,es5.5 io和cpu使用都很低, 隔间几小时 load 飚升,也看不出问题,过一会儿又下去了。
能观察到segment count有下降, 如果在做merge 也不至于 load 这么高吧,都是ssd盘,io完全没问题

要回复问题请先登录注册