, , , , , ,

CentOS6のプロセス数の上限

2014年5月21日

Linuxにはリソースを制限するためにulimitという仕組みがあります。

ulimit コマンドに割り当てる資源を制限する
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230911/

CentOS5までは、ユーザー1人が起動できるプロセス数は無制限でした。

$ ulimit -u
unlimited

CentOS6では、1024が上限として設定されています。

$ ulimit -u
1024

そのため、Apacheなど多数のプロセス(スレッド)を生成するサービスでは、この上限に達してアプリケーションが動作しない場合があります。

この設定値を変更するには、/etc/security/limits.d/90-nproc.conf を変更し再起動します。以下の例では、1024から2048へ変更しています。

変更前

$ cat /etc/security/limits.d/90-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     1024

変更後

$ cat /etc/security/limits.d/90-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     2048

クライアント証明を利用している環境で、Apacheのログに Cannot find peer certificate chain のようなエラーが出ているので、証明書関連かとおもいきや、このulimitの設定で改善されました。