不要急,总有办法的

elasticsearch io 读操作数据量很大,io等待时间太长,导致load很高,是什么情况?

Elasticsearch | 作者 guopeng7216 | 发布于2018年07月01日 | 阅读数:13870

现在遇到的问题是,系统从6.8升级到7.4,es从6.1.0升级到6.1.4,并发访问量并没有提升,机器的配置也是和升级前一致,但是磁盘io一直在那里read,用iotop看读取速度都在200M/S,iostat 看 io等待时间太长,导致load负载很高,很容易就到达5+,甚至10+,查询语句上开发说并没有什么变化,日志里也并没有信息输出,16G的内存,堆内存8G看着还有富余,正苦恼找不到问题所在,请指点下,

iostat结果.png


vmstat.png


分片情况.png


节点负载.png

 
已邀请:

yang009ww

赞同来自: guopeng7216

我们之前的情况是3个节点中只有1个节点有这个情况(出问题的固定在一个节点),无论先重启主节点还是先重启从节点,这个问题依然存在,最后我们就简单粗暴的尝试把问题节点机器给更换了,没有更改任何配置,立马就没有出现这个问题,然后我们就没管这个问题了。但是没办法100%确定就是机器的原因哦。也不知道对你有没有帮助。。。

yayg2008

赞同来自: guopeng7216

check下是否开启了swap。

code4j - coder github: https://github.com/rpgmakervx

赞同来自:

系统和es都做过升级,这个不好判断是那里的问题。可以观察下出问题的es进程卡在哪条线程io很高,定位到源码看下具体那里做了什么。不然完全一样的配置实在不好确定问题所在

weekano

赞同来自:

我也出现的相同的问题,通过segments合并解决了,查询出现的大量IO是在段合并造成的 通过post请求segments的合并即可  , curl -s -XPOST -uelastic:changeme 'XXXX/_forcemerge?max_num_segments=1' 如果还有其他问题可以QQ120811602

zqc0512 - andy zhou

赞同来自:

你给你图上怎么主分片全在一台机器上面?有业务需求?这样只在一台上面啊。
segment可以看看。再全部合并下,搞成一个shard 1segment

要回复问题请先登录注册