Rabbitmqのドキュメントには、本番環境で使用する前にいくつかの構成を行う必要があると記載されています。構成の1つは、最大オープンファイル数(OSパラメーター)に関するものです。
私たちが使用しているRabbitmqサーバーはUbuntu16.04で実行されており、Webで見つけたリソースによると、開いているファイルの数を500kに更新しました。コマンドラインから確認すると、次の出力が得られます。
root@madeleine:~# ulimit -n
500000
ただし、rabbitmqサーバーのステータスを見ると、別の番号が表示されます。
root@madeleine:~# rabbitmqctl status | grep 'file_descriptors' -A 4
{file_descriptors,
[{total_limit,924},
{total_used,19},
{sockets_limit,829},
{sockets_used,10}]},
OS側の制限をなんとか増やしたようですが、rabbitmqはまだファイル記述子の合計制限は924だと思っています。
この問題の原因は何ですか?
あなたはこれを見たいかもしれません ページ
どうやら、この操作はOSのバージョンによって異なります。 systemdがある場合は、/ etc/systemd/system /rabbitmq-server.serviceで次の手順を実行する必要があります。 d/limits.confファイル:
このサービス構成は、使用しているオペレーティングシステムによっては別の場所にある可能性があることに注意してください。次のコマンドを使用して、このサービス構成が配置されている場所を見つけ、そのファイルを更新できます。
find / -name "*rabbitmq-server.service*"
[サービス]
LimitNOFILE = 300000
一方、systemdフォルダーがない場合は、rabbitmq-env.confファイルでこれを試す必要があります。
ulimit -S -n 4096
開くファイルの最大数を増やす/設定する
Sudo sysctl -w fs.file-max = 65536
これらの制限は/etc/security/limits.confで定義されています
Sudo nano /etc/security/limits.conf
そして設定
ソフトnofile65536
hard nofile 65536
rabbitmqプロセスのユーザーごとの設定は、/ etc/default/rabbitmq-serverでも設定できます。
Sudo nano/etc/default/ratbitmq-server
そして設定
ulimit -n 65536
次に、サーバーを再起動して変更を有効にします。