人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

windows XP Pro 上で、Apache1.3.3 を動かしております。
そのサーバ上で、Perl(5.8.4)のcgiを動かしているのですが、サーバの負荷が高まる場合に限り(同時実行しているプロセス数が40以上程度になると)、CPUなどのリソースには余裕があるにもかかわらず、Premature end of script headers: というエラーをApacheが吐いて、Internal Server Error になってしまいます。
ちなみに、そのcgiからはODBC経由でMySQLに接続しています。
その原因・解決法がわかりました教えてください。
※ Apacheの設定では、子プロセス数を特に制限していません。
※ MySQL側の接続数も100に設定しているため、余裕があります。

●質問者: yasuo
●カテゴリ:コンピュータ
✍キーワード:Apache CGI CPU Internal Server Error MySQL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ほねほね
●25ポイント

http://httpd.apache.org/docs/misc/FAQ-F.html#premature-script-he...

Apache Server Frequently Asked Questions

[Premature end of script headers]というエラーはApache側からするとCGIが何らかの原因でエラーになった場合に発生します。基本はCGIをApache経由ではなく単体で実行しデバッグすることが早道のようです。

http://www.onlineinsider.com/manual/mod/mod_cgi.html.ja.jis

Apache module mod_cgi

とは、いっても上記のような現象の場合は単体での発生を捕らえることは難しそうなので、httpd.confにScriptLog ディレクティブとScriptLogBufferの設定を行うことによってCGIがエラーになった場合にそのCGIへのリクエストとレスポンスをログに出力することができるので、設定後にエラーを発生させてエラーが発生するリクエストをCGIに対して単体で実行して原因を追求した方が良いと思います。

◎質問者からの返答

回答ありがとうございます。

実は、単体では(というか40プロセス程度までは並行して)正常に動いております。したがって、単純なCGIの文法エラーではないと思われます。

、あた、ScriptLogはすでに取得しているのですが、見たところCGIから何も出力されずに終了してしまっているようです。


2 ● chatoraneko
●25ポイント

http://lab.sakasta.com/unix/mysql.html

Nix::WebLab

CPUリソースには余裕があるとのことですが

メモリ、DISKIO等はどうでしょうか。


あとMySQLとApacheの設定で実メモリ以上になる設定をしていると

設定の接続数へ達する前に反応がなくなるケースがあります。


Premature end of script headers:

というエラーは直接の原因をあらわしているように見えません。

おそらく最終的に表示ができなくなり

現象的なエラー内容にと考えられます。

◎質問者からの返答

> Premature end of script headers:

というエラーは直接の原因をあらわしているよう> に見えません。

は、まさにそうかとおもいます。

メモリもDISKIOも余裕があり、

また、MySQLとApacheの設定も、実メモリ以上になるような設定ではありません。

同時実行しているプロセス数が増えると、単純にContent-typeとテキストを出力するスクリプトさえ動かなくなってしまうため、MySQLでひっかかっているようではなさそうです。

WINSOCK の制限にひっかかっているということはありえますでしょうか?

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ