elasticsearch伤心几个月以来每星期都要抽风一次,忽然间查询很是慢, 看下liunx的内存几乎被elasticsearch吃了个精光,就身下不到10M的内存。html
开始按照网上给出的解决方案 启动的时候给es设置我的固定大小的内存 linux
export ES_HEAP_SIZE=10g
./bin/elasticsearch -Xmx10g -Xms10g.
两种方式都不行 设置以后整个es就启动不了bootstrap
后来看下下官方给出的建议说是要锁定内存,因而我打开es配置文件找打一下节点放开app
# 当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 在最后面加上如下两行jvm
* soft memlock unlimited
* hard memlock unlimited
* 号表示对全部用户生效elasticsearch
以上操做暂时解决了内存问题 ,若是还不行继续一下操做ide
以后我仍是在es的配置文件 config/jvm.options 中对性能
-Xms2g
-Xmx2gui
2个配置节点进行了修改 改为了 20gspa
设置成20g以后直接卡成狗了 因此我改回去以后 设置内存交换参数终于不卡了,貌似内存仍是占多
打开liunx配置文件 /etc/sysctl.conf 修改内存交换参数 在最后一行增长
vm.swappiness=1
参考 https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html