ファイルディスクリプタの最大数を増やす
出典::
テスト環境::
システム全体のファイルディスクリプタ数
CentOS5の場合、ファイルディスクリプタはデフォルトで大きな値が設定されている。
# cat /proc/sys/fs/file-max 50871
もしくは、
# sysctl -a | grep file-max fs.file-max = 50871
これを変更するには、
# cat '65536' > /proc/sys/fs/file-max
もしくは
# sysctl -w fs.file-max=50871
とすればそのまま反映される。ただし、再起動するとデフォルトに戻ってしまうので、/etc/sysctl.confに記載する。
# vi /etc/sysctl.conf fs.file-max=50871
ユーザごとのファイルディスクリプタ数
システム全体のファイルディスクリプタ数とは別に、各ユーザごとのファイルディスクリプタ数の上限も決まっている。
# ulimit -a open files (-n) 1024
こちらはデフォルトが1024となっており、"Too Many Open Files" が発生する場合はこちらに引っかかっていることが多い。
これを変更するには
# ulimit -n 2048 # ulimit -a open files (-n) 2048
とすればその場で反映される。ただしこちらも再起動するとデフォルトに戻ってしまうので、その場合は/etc/security/limits.confに記載する。
# vi /etc/security/limits.conf user1 soft nofile 2048 user1 hard nofile 2048

