如何提高elasticsearch的最大线程数?

如何提高elasticsearch的最大线程数?

我全新安装了 Ubuntu 16.04,并在其上安装了 elasticsearch 5。现在,当我尝试使用启动elasticsearch时

/etc/init.d/elasticsearch start

几秒钟后,我在日志文件中读到:

[2016-11-19T08:47:31,442][ERROR][o.e.b.Bootstrap          ] [shooter-1] node validation exception
bootstrap checks failed
max number of threads [1891] for user [elasticsearch] likely too low, increase to at least [2048]

经过一番谷歌搜索后,我得出的结论是我必须将以下行添加到/etc/security/limits.conf

elasticsearch    -       nproc           2048

但是,即使经过此更改,我仍然遇到相同的错误。

我找到了取消注释该行的建议

session    required   pam_limits.so

/etc/pam.d/su,但该行已取消注释。

我缺少什么?

答案1

好吧,我终于找到了。关键在这篇博文中:https://fredrikaverpil.github.io/2016/04/27/systemd-and-resource-limits/

解决方案是编辑文件/usr/lib/systemd/system/elasticsearch.service并添加行

LimitNPROC=2048

答案2

我们也遇到了这个问题,结果发现它是一个 systemd 服务覆盖文件,可能是我们在最初设置 elasticsearch 时创建的。

文档中引用了覆盖文件:https://www.elastic.co/guide/en/elasticsearch/reference/current/setting-system-settings.html#systemd

检查 /etc/systemd/system/elasticsearch.service.d/ 是否有任何conf文件,然后删除它们或使用适合您的elasticsearch版本的正确LimitNPROC=更新它们。

答案3

  1. 当我在 ES 节点上检查 elasticsearch 服务时,它抛出以下错误

    [root@h ~]# /etc/init.d/elasticsearch status
    

    elasticsearch 死了但 subsys 被锁定

  2. 进一步检查日志,发现以下错误 [2020-03-26T07:41:03,281][ERROR][oebBootstrap ] [h2-es-data-0] 节点验证异常 [1] 引导检查失败 [1]: 最大数量用户 [elasticsearch] 的线程 [1024] 太低,增加到至少 [2048] [2020-03-26T07:41:03,284][INFO ][oenNode ] [h2-es-data-0] 停止... [2020-03-26T07:41:03,322][INFO][oenNode][h2-es-data-0] 已停止

  3. 我在 /etc/security/limits.conf 中添加了以下几行,以增加所有 6 个 es 节点上的线程池

    elasticsearch - nproc 2048

  4. 重启所有ES节点的服务

    /etc/init.d/elasticsearch restart
    

相关内容