Sha*_*s88 5 linux redhat elasticsearch
我设置了boostrap.memory_lock = true更新了/etc/security/limits.conf为弹性搜索用户增加了memlock unlimited
我的弹性搜索运行好几个月了.突然间,它失败了一天.在日志中我可以看到下面的错误,进程永远不会启动
错误:引导程序检查弹性搜索过程请求的内存锁定失败,但内存未锁定
我点击了ulimit -as,我可以看到最大锁定内存设置为无限制.这里出了什么问题?我已经尝试了几个小时,但一切都是徒劳的.请帮忙.
操作系统是RHEL 7.2 Elasticsearch 5.1.2
ulimit -as输出
core file size (blocks -c) 0
data seg size (kbytes -d) unlimited
scheduling policy (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 83552
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -q) 8
POSIX message queues (bytes,-q) 819200
real-time priority (-r) 0
stack size kbytes, -s) 8192
cpu time seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Run Code Online (Sandbox Code Playgroud)
ugo*_*san 18
以下是我在RedHat/Centos 7上的ES节点上锁定内存所做的工作(如果使用systemd,它将在其他发行版上工作).
您必须在4个不同的地方进行更改:
1)/ etc/sysconfig/elasticsearch
在sysconfig上:/etc/sysconfig/elasticsearch你应该:
ES_JAVA_OPTS="-Xms4g -Xmx4g"
MAX_LOCKED_MEMORY=unlimited
Run Code Online (Sandbox Code Playgroud)
(用HALF替换4g你可用的RAM,如这里推荐的那样)
2)/etc/security/limits.conf
在安全限制配置:/etc/security/limits.conf你应该有
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
Run Code Online (Sandbox Code Playgroud)
3)/usr/lib/systemd/system/elasticsearch.service
在服务脚本上:/usr/lib/systemd/system/elasticsearch.service您应该取消注释:
LimitMEMLOCK=infinity
Run Code Online (Sandbox Code Playgroud)
你应该systemctl daemon-reload在更改服务脚本后做
4)/etc/elasticsearch/elasticsearch.yml
最后在elasticsearch配置上:/etc/elasticsearch/elasticsearch.yml你应该添加:
bootstrap.memory_lock: true
Run Code Online (Sandbox Code Playgroud)
多数民众赞成,重启你的节点,RAM将被锁定,你应该注意到一个重大的性能提升.
小智 1
尝试在/etc/sysconfig/elasticsearch文件中设置MAX_LOCKED_MEMORY=unlimited
在/usr/lib/systemd/system/elasticsearch.service中 设置LimitMEMLOCK=infinity
| 归档时间: |
|
| 查看次数: |
9496 次 |
| 最近记录: |