elasticsearch内存耗尽的问题

elasticsearch伤心几个月以来每星期都要抽风一次,突然间查询非常慢, 看下liunx的内存几乎被elasticsearch吃了个精光,就身下不到10M的内存。

开始按照网上给出的解决方案  启动的时候给es设置个人固定大小的内存 

export ES_HEAP_SIZE=10g
./bin/elasticsearch -Xmx10g -Xms10g.

两种方式都不行 设置之后整个es就启动不了

后来看下下官方给出的建议说是要锁定内存,于是我打开es配置文件找打一下节点放开

# 当JVM开始写入交换空间时(swapping)ElasticSearch性能会低下,你应该保证它不会写入交换空间 
# 设置这个属性为true来锁定内存,同时也要允许elasticsearch的进程可以锁住内存,linux下可以通过 `ulimit -l unlimited` 命令 
# bootstrap.mlockall: true 

# 确保 ES_MIN_MEM 和 ES_MAX_MEM 环境变量设置为相同的值,以及机器有足够的内存分配给Elasticsearch 
# 注意:内存也不是越大越好,一般64位机器,最大分配内存别才超过32G 

草。重启不了了,liunx还有个东西也需要同时配置 打开/etc/security/limits.conf 在最后面加上以下两行

* soft memlock unlimited
* hard memlock unlimited

* 号表示对所有用户生效

以上操作暂时解决了内存问题 ,如果还不行继续一下操作

之后我还是在es的配置文件 config/jvm.options   中对

-Xms2g
-Xmx2g

2个配置节点进行了修改 改成了 20g

设置成20g之后直接卡成狗了 所以我改回去之后 设置内存交换参数终于不卡了,貌似内存还是占多

打开liunx配置文件 /etc/sysctl.conf  修改内存交换参数 在最后一行增加 

vm.swappiness=1

参考 https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html 

原文地址:https://www.cnblogs.com/sxmny/p/8805070.html