Elasticsearch内存泄漏

最近生产环境elasticsearch老是宕机,主要用于搜索帖子。
分析了了es内存泄漏后的堆栈文件,发现netty中申请了1G内存,对es不是很了解,初步猜测是单个文档太大了,在返回搜索结果的时候,压垮了es。

clipboard.png

clipboard.png

clipboard.png
这几个对象都有一个500Mbyte ,这个byte就是要返回的对象吧?
我想的解决方法就是,减少单个文档大小

阅读 4.7k
2 个回答

ES的分词会占用非常多的内存,所以通常需要优化JVM内存分配,可以参考ES的guide: https://www.elastic.co/guide/...

另外,本身文档也需要优化。比如ES默认对所有字段全部分词,实际这是没必要的,你需要定制mapping优化ES的资源占用。默认好像对于超过255字符的文档也不会分词吧?好久没用过ES了记不太清了,以前用ES的时候通读过elasticsearch权威指南这本官方读物的,有提到过。

问题已经找到了,在索引里有个一个超大的文档245M,这个超大的对象直接进入老年代,当同时返回几个这样的结果时,直接压垮了es

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题