1.问题
在部署Elasticsearch的时候,有一台128g左右的机器,有两套es
起初分配给es各64g,但是会出现内存溢出问题
2.错误原因
参考了一些大佬的文章,如下
- ES是JAVA应用
- 底层存储引擎是基于Lucene的
官网推荐给Elasticsearch分配的内存不能超过32GB(小于32GB时会启用compressed oops,节省很多内存)
并且还必须是小于物理内存的50%,以便为Lucene利用Cached Memory提供更多的剩余内存。
排查之后得知,Elasticsearch配置的内存是自己使用的,底层的Lucene需要额外内存
3.解决
所以把es内存设置为30g就可以了