ElasticSearch

CentOS 7.x运行ElasticSearch5.3.3出现memory is not locked

1. 问题描述

ElasticSearch版本为5.3.3,安装在CentOS 7.3操作系统上,集群共计3个节点,运行一段时间后,出现了memory is not locked的报错:

ERROR: bootstrap checks failed
memory locking requested for elasticsearch process but memory is not locked

2. 原因分析

ElasticSearch5.3.3 在CentOS 7.x以上版本中,默认配置bootstrap.memory_lock: true,但是系统又锁定内存失败。

3. 解决办法

(1)gz或者tar.gz包安装的ElasticSearch

  1. sudo vim /etc/security/limits.conf
  2. #添加如下两行
  3. * soft memlock unlimited
  4. * hard memlock unlimited

(2)RPM包或者DEB包安装

在系统配置文件设置MAX_LOCKED_MEMORYunlimited,或者使用系统 systemd

  1. #rpm
  2. vi /etc/sysconfig/elasticsearch
  3. MAX_LOCKED_MEMORY=unlimited
  4. #deb
  5. vi /etc/default/elasticsearch
  6. MAX_LOCKED_MEMORY=unlimited

(3)系统使用systemd

使用systemd管理的系统,在systemd配置文件中配置LimitMEMLOCK

  1. # 加载成默认
  2. vi /usr/lib/systemd/system/elasticsearch.service
  3. [Service]
  4. LimitMEMLOCK=infinity
  5. # 覆盖加载(和默认二选一),也可以sudo systemctl edit elasticsearch编辑
  6. vi /etc/systemd/system/elasticsearch.service.d/override.conf
  7. [Service]
  8. LimitMEMLOCK=infinity
  9. # 加载
  10. sudo sys