Linuxでは、ユーザーアカウントごとに、ファイルディスクリプタの使用数に制限がかけてある。例えばCentOS6では、file openとmax user porcessesの値が1024に制限されている。
DBサーバーなどで大量にアクセスがあると、ファイルディスクリプタの制限に引っかかって新規の新規のプロセスやスレッドが生成出来ないという事態に陥ってしまう可能性があるので、下記のような手順でファイルディスクリプタの制限を調整する。
下記の設定例は、CentOS6でしたものです、ほかのOSでも似たような方法で設定ができるはずです。
# vi /etc/security/limit.conf
* soft nofile 4096
4096以上の数値を設定したい場合には、下記のように設定をする必要があるみたいです。
# vi /etc/security/limit.conf
* soft nofile 4096
* hard nofile 4096
CentOS5では、limits.confですべての設定をしたようですが、CentOS6では、プロセス数の制限は下記のファイルで行うようです。
# vi /etc/security/limits.d/90-nproc.conf
* soft nproc 4096
以上の手順で、アカウントごとのファイルディスクリプタとプロセス数の制限を緩和できるはずです。設定を反映されるためには、確かプロセスの再起動が必要だったかな?