cgiで、(24)Too many open files エラー
お客様からお預かりしているサービスで500 Internal Server Errorで動作が止まっているというご報告を受けました。
Apacheが、(24)Too many open files: couldn't spawn child process: /usr/cgiwrap/cgiwrap を吐いています。自然回復は望めないようです。
他のアカウントでファイルが開けないなどはないので、該当アカウントで、オープンファイル数を使いきってしまっているようです。
Linuxのデフォルト値は1024。
1024以上もファイルをオープンするプログラムというのも異常ですが、ひとまず2048に上げて様子をみることにしました。
vi にて以下の設定ファイルを編集。
vi /etc/security/limits.conf
以下の2行を追加
* soft nofile 2048
* hard nofile 2048
これで以下のコマンドを使い、Apacheの再起動を行えば2048まで開けるようになります。
service httpd restart
こちらのエラーが出ていたシステムは弊社が開発したシステムではないのですが、ワンストップサービスでサーバーをご利用いただいておりますので、システムの安定稼働のためサーバー側で出来る限りの対応をさせていただいています。
システム開発案件・保守はディーゴまでご相談ください。