dポイントプレゼントキャンペーン実施中!

こんにちは、当方 自宅サーバにてWebサイトを運営しております。
環境は以下の通りです。
ディストリビューション:CentOS4.6
Apache2.0.52
MySQL 4.1.20
PHP 4.3.9

メインホストとバーチャルホストにて
朝方にかけ、403エラーが頻発します。
Apacheを再起動すると直るのですが、すぐに上記のエラーが頻発するようになります。

エラーをしらべたところ、
[Sun Mar 30 14:42:31 2008] [crit] [client ***.***.***.***] (24)Too many open files: /var/www/html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

上記のエラーがたくさん出力されていることがわかりました。
しかし上記の/var/www/html/には、.htaccessを設置しておりません(confに認証関連の設定を書いているため)。

集中アクセスが起こったのかと推測しましたが、
当方のApacheは、mod_evasiveにてDoS攻撃をある程度防げるようになっており
アクセスログを見ても、それらしいアクセスはありませんでした。

このエラーメッセージは、どういう意味なのでしょうか。
また、対策としてどのようなものがあげられるのでしょうか。
CMSサイトを運営している以上、このような状態が続くのは
サイトの死活問題です。
よろしくお願いいたします。

A 回答 (1件)

UNIX系のOSでサーバを動かす場合、カーネルパラメータ等で


「1プロセスが同時にオープンできるファイルの最大数」
「システム全体で同時にオープンできるファイルの最大数」を
大き目の値に指定する必要があります。

この回答への補足

# ulimit -a
にて確認を行いましたところ、以下のような結果となっていました。

core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 16367
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

この設定中の値を変更する必要があるとすれば、
どの部分を設定する必要があるのでしょうか。
また、この部分以外で設定すべき箇所はありますでしょうか。
拙い質問ばかりで申し訳御座いません。

補足日時:2008/03/30 19:34
    • good
    • 0
この回答へのお礼

自己解決しました。
/etc/security/limits.conf より
root soft nofile 32768
root hard nofile 32768
root soft nproc 4096
root hard nproc 4096

上記の設定を追加したところ、
ulimitのopen files 及び max user processes
を増やすことができました。

これにより、現在サーバダウンは見られていません。
ご助言本当にありがとうございました、
私の補足・お礼にお間違いが御座いましたら
ご指摘をお願いいたします。

お礼日時:2008/03/31 15:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!