FreeBSD6.1 + SpeedyCGI を利用しています。

プロセスが500を越えた辺りから、
CGIで「 500 Internal Server Error 」が出るようになります(3回に一度くらいの頻度)。
300プロセスくらいで続くと問題なく動作しています。

再起動すると一時的に快適になりますが、
rebootした直後に以下のようなエラーが
たくさんでます(50個とか)。

Apr 1 18:14:59 www kernel: Connection attempt to TCP 192.168.1.19:80 from ***.***.***.***:***** flags:0x02

※ ***は、実際は数字です。

考えられる原因は何でしょうか?

以下、top の情報
last pid: 54042; load averages: 0.74, 0.65, 0.79 up 0+01:50:53 20:05:17
558 processes: 3 running, 501 sleeping
CPU states: 4.5% user, 0.0% nice, 6.7% system, 3.0% interrupt, 85.8% idle
Mem: 127M Active, 129M Inact, 141M Wired, 112M Buf, 2108M Free
Swap: 6144M Total, 6144M Free

難しいことは、よくわからないので、初心者用にお答えいただけると助かります。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/04/02 23:42:06
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント30pt

kernel ログに関しては roboot 時に中断されたコネクションのものだろうから関係なさげ。


top の情報からはプロセス数の割りに running の数と CPU 使用率が低い事から ディスク IO あたりがボトルネックで処理が追いついていないじゃないですか?

Perl のプロセスがいくつかも分からないので、それ以上はなんとも。

id:ironbsd

ふむふむ。。ありがとうございます。

2007/04/01 22:38:57
id:hirotow No.2

回答回数131ベストアンサー獲得回数10

ポイント30pt

http://homepage3.nifty.com/hippo2000/perltips/CGI/SpeedyCGI.htm

CPU使用率がやけに低いのが不可解ですが、Perlインタプリタが正常に再利用されていないようです。

状況(イントラネット(LAN)かインターネットか、アクセス頻度はどの程度かなど)がわからないとどうともいえません。

> Apr 1 18:14:59 www kernel: Connection attempt to TCP 192.168.1.19:80 from ***.***.***.***:***** flags:0x02

これはおそらく失敗した通信のログだと思います。

CGI高速化の方法はいくつかあり、それぞれうまくいかないケースがあるようなので、別の方法(mod_perlやFastCGI)も試してみてください。

id:ironbsd

ありがとうございます。

2007/04/01 23:07:49
id:kurukuru-neko No.3

回答回数1844ベストアンサー獲得回数155

ポイント30pt

>558 processes: 3 running, 501 sleeping

ほとんどのプロセスは待機状態

>CPU states: 4.5% user, 0.0% nice, 6.7%

>system, 3.0% interrupt, 85.8% idle

CPUはほとんど使われていなく、かつ

OS/割り込み処理もない

>Mem: 127M Active, 129M Inact, 141M Wired,

>112M Buf, 2108M Free

RAMは十分空がある

>Swap: 6144M Total, 6144M Free

仮想記憶も空いている

>300プロセスくらいで続くと問題なく動作しています

 プログラムにバグがなく正常に終了しているので

 あれば APACHEの接続可能なセッション数の上限

 に達しているのでエラーになっているかもしれません。

 取りあえずふやしてみては?

 (MaxClientを増やす)

 

 

id:ironbsd

apache周りを見直して見ます。

2007/04/02 23:40:48

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません