インフラ

【Apache】httpdのファイルディスクリプタ数

更新日:

Apacheのプロセス数が増えない時

Apacheの設定ファイルでは「MinSpareServers」を2048に設定しているのに、Apacheのプロセス数が1000ちょっとより多く生成されず、メモリを使い切れていない!という時の対応

 

ファイルディスクリプタ数を確認してみる

ファイルディスクリプタには上限値が設定されています。
うまくプログラムが動作しない場合などは、このファイルディスクリプタ数が不足している可能性がある為、上限値を変更する必要があります。

 

ファイルディスクリプタの上限値を確認する

ps aux | grep httpd | grep root

上記コマンドで、稼働中のhttpdの親プロセス番号を確認してください。
確認したら、以下コマンドでファイルディスクリプタの上限値を確認します。

cat /proc/[httpdの親プロセス番号]/limits

Max open filesが最大ファイルディスクリプタ数です。デフォルトは1024となっている場合が多いです。

これを変更することが出来れば、プロセスが1024以上稼働させることが出来るようになります。

 

ファイルディスクリプタの上限値を変更する

# mkdir /etc/systemd/system/httpd.service.d
# vi /etc/systemd/system/httpd.service.d/override.conf
# cat /etc/systemd/system/httpd.service.d/override.conf
[Service]
LimitNOFILE=65535
# systemctl daemon-reload
# systemctl restart httpd.service

 

再確認する

もう一度同じ手順でファイルディスクリプタを確認し、Max open filesが65535になっていればOKです。

 

ファイルディスクリプタの設定上限について

65535より大きな数は設定できません。

 

-インフラ
-, ,

Copyright© すじこネット , 2019 - 2020 All Rights Reserved Powered by STINGER.