疲劳是最舒适的枕头,努力工作吧。

ES写入导致client节点内存jvm内存使用率100%,可能是什么地方占用了呢?

Elasticsearch | 作者 wangxinrong | 发布于2020年01月21日 | 阅读数:2417

我这里有个应用程序,读kafka中的消息,然后写es。
抓包看了下都是对文档的更新操作,文档本身很小,就几个字段。
每批提交的大小也不大,1-5m,每批数量5000-20000条左右。
 
但很奇怪的是,这个应用在高峰期时,队列中的消息已经积压了,但es写入量并没有上来。cpu只到20-30%,带宽就20-30M,负载并不高,但这时es监控中已经有bulk_queue不为0,偶尔出现bulk_reject的情况。把索引的副本关掉以后,各项数据也并没有好转。
 
更关键的是,高峰期的client节点,就是挂在负载均衡后面,只负责读和写协调的节点,在高峰期时jvm heap内存使用率到100%,然后就一直gc卡住,重启以后继续重复上面的过程。
我想了解下,写操作的哪些设置会影响到对内存的占用。
另外因为之前说的有时会出现bulk reject的情况,我把bulk queue size从1000调到了10000,不知道这个会不会导致内存使用增加。
已邀请:

要回复问题请先登录注册