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の設定で改善されました。