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

私たちもこの問題に直面し、これは私たちが最初に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. すべての6つのesノードでスレッドプールを増やすために、/etc/security/limits.confに次の行を追加しました。

    elasticsearch - nproc 2048

  4. すべてのESノードのサービスを再起動します。

    /etc/init.d/elasticsearch restart
    

関連情報