linux - Elasticsearch进程内存锁定失败

标签 linux elasticsearch redhat

我设置了 boostrap.memory_lock=true 更新/etc/security/limits.conf 为 Elasticsearch 用户添加了无限制的内存锁

我的 Elasticsearch 在好几个月内都运行良好。突然它在 1 天前失败了。在日志中我可以看到以下错误并且进程永远不会启动

错误: Bootstrap 检查失败 elasticsearch进程请求内存加锁但内存未加锁

我点击 ulimit -as,我可以看到最大锁定内存设置为无限。这里出了什么问题?我已经尝试了几个小时,但都是徒劳的。请帮忙。

操作系统是 RHEL 7.2 Elasticsearch 5.1.2

ulimit - 作为输出

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

最佳答案

这是我在 RedHat/Centos 7 上锁定我的 ES 节点上的内存所做的工作(如果其他发行版使用 systemd,它将适用于其他发行版)。

您必须在 4 个不同的地方进行更改:

1) /etc/sysconfig/elasticsearch

在 sysconfig 上:/etc/sysconfig/elasticsearch 你应该有:

ES_JAVA_OPTS="-Xms4g -Xmx4g" 
MAX_LOCKED_MEMORY=unlimited

(根据建议用可用 RAM 的一半替换 4g here)

2) /etc/security/limits.conf

关于安全限制配置:/etc/security/limits.conf 你应该有

elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited

3) /usr/lib/systemd/system/elasticsearch.service

在服务脚本上:/usr/lib/systemd/system/elasticsearch.service 你应该取消注释:

LimitMEMLOCK=infinity

你应该在更改服务脚本后执行 systemctl daemon-reload

4) /etc/elasticsearch/elasticsearch.yml

最后在 elasticsearch 配置上:/etc/elasticsearch/elasticsearch.yml 你应该添加:

bootstrap.memory_lock: true

就是这样,重新启动您的节点,RAM 将被锁定,您应该会注意到一个重大的性能改进。

关于linux - Elasticsearch进程内存锁定失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45008355/

相关文章:

linux - 统计文件中字符的出现次数

java - 创建嵌入式节点时出现 ElasticSearch 异常

linux - 无法在 CentOS 6.5 中查看 MP4

linux -/bin/bash 在启动时给出段错误

elasticsearch - 大量删除的文档会影响查询速度吗?

linux - 查找哪个java程序被Linux OOM Killer杀死

linux - 将目录中存在的所有函数动态导入到脚本中

linux - 如何同时使用 Parallel::ForkManager 和 Capture::Tiny?

linux - secret 圣诞老人有趣的狂欢

java - Elasticsearch Spring启动