ES集群搭建问题:memory locking requested for elasticsearch process but memory is not locked

官网说明:

elasticsearch官网建议生产环境需要设置bootstrap.memory_lock: true

官网的解释 是:发生系统swapping的时候ES节点的性能会非常差,也会影响节点的稳定性。所以要不惜一切代价来避免swapping。swapping会导致Java GC的周期延迟从毫秒级恶化到分钟,更严重的是会引起节点响应延迟甚至脱离集群。

所以最好限制住elasticsearch占用的内存情况,可选少用swap

错误内容:

解决方法:

方案1:关闭bootstrap.memory_lock:,会影响性能(不建议)

# vim /etc/elasticsearch/elasticsearch.yml          // 设置成false就正常运行了。
bootstrap.memory_lock: false

方案1:开启bootstrap.memory_lock:

  1. 修改文件/etc/elasticsearch/elasticsearch.yml,上面那个报错就是开启后产生的,如果开启还要修改其它系统配置文件

bootstrap.memory_lock: true

  2. 修改文件/etc/security/limits.conf,最后添加以下内容。

* soft nofile 65536
* hard nofile 65536
* soft nproc 32000
* hard nproc 32000
* hard memlock unlimited
* soft memlock unlimited

  3. 修改文件 /etc/systemd/system.conf ,分别修改以下内容。

DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity

  改好后重启下系统。再启动elasticsearch就没报错了 。

------------------------------------------------------------------
-----------------------------------------------------------
---------------------------------------------
朦胧的夜 留笔~~
原文地址:https://www.cnblogs.com/liconglong/p/15026089.html