针对Elasticsearch集群进行节点扩容,在新增节点的elasticsearch.yml开启了bootstrap.memory_lock: true
参数。启动Elasticsearch服务,日志中报错”bootstrap check failure“。
bootstrap check failure [1] of [1]: memory locking requested for elasticsearch process but memory is not locked
bootstrap.memory_lock: true
主要用于在生产环境中为Elasticsearch服务锁定内存,避免Elasticsearch服务的JVM虚拟机内存被交换到磁盘。而Elasticsearch服务启动失败主要是由于只在elasticsearch.yml中开启了锁定内存配置,但是在Linux系统中并未进行相关的内存锁定配置,或配置不完整。
检查并编辑systemd配置
mkdir -p /etc/systemd/system/elasticsearch.service.d
vi /etc/systemd/system/elasticsearch.service.d/override.conf
在conf文件中添加以下内容
[Service]
LimitMEMLOCK=infinity
编辑/etc/security/limits.conf文件,并在文件末尾添加以下内容。
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
编辑/etc/pam.d/common-session(Debian/Ubuntu)或 /etc/pam.d/su
session required pam_limits.so
systemctl daemon-reexec
systemctl daemon-reload
systemctl restart elasticsearch
通过以下命令检查进程状态判断是否内存锁定成功
systemctl status elasticsearch
ps aux | grep elasticsearch
cat /proc/<elasticsearch-pid>/limits
其中Max locked memory应为:
Max locked memory unlimited unlimited bytes
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。