- ベストアンサー
mod_perlとFastCGIではどちらのが処理スピードがあがるので
mod_perlとFastCGIではどちらのが処理スピードがあがるのでしょうか? 処理速度をあげたくて困っています。 調べているとmod_perl(+mod_proxy?)とFastCGIというのがわかったのですが、実際どちらの方が早いとかあるのでしょうか?(もちろん環境にもよると思いますが) 何か参考になるURLだけでも構いませんのでよろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
CGI > FastCGI > mod_perlの順にCPU負荷が上がり、 CGI < FastCGI < mod_perlの順にメモリ負荷が上がることは説明するまでもないですよね? プロクシ(キャッシュファイル)でうまくいくなら、 キャッシュコントロールを利用してクライアントのHDDに保存されたキャッシュを読んで貰うようにするとか、 304 not modifiedを返すだけにするとか、CGI/mod_perlを可能な限り動かさないような仕組みにする方が良いのでは? もちろんユニークユーザーが多い場合はこの限りではありませんが。
その他の回答 (1)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
一番早いのはmod_perlです。 仕組みとしては、こういう感じです。 通常のCGI (1) perl(Windowsではperl.exeという名前のアプリケーション)を起動する (2) 指定された.cgiファイルを読み込む (3) その処理結果を出力する FastCGIはperl(perl.exe)を実行中のままで待機させておき (1) 指定された.cgiファイルを読み込む (2) その処理結果を出力する mod_perlは perl(perl.exe)を実行中、指定された.cgiファイルを読み込んで変数などを初期化させた状態で待機させておき (1) その処理結果を出力する FastCGIやmod_perlは 実行中のまま、.cgiファイルを読み込んだ状態で、待機させますので、メモリを使用し続けます。 mod_perlは実行権限が違う(Apacheの実行権限で動作する)ので、 スピードだけで判断はできないと思います。 レンタルサーバーでは、通常はFastCGIが使われていると思います。 mod_proxyは使ったことがありませんが、 Apacheにプロクシサーバーの役目を行わせるものだと思いますので、CGI/mod_perlは関係ないのでは?
お礼
実はmode_perlは使っているのですが、負荷分散がうまくいってないようで(mode_perlを入れていないため?)メモリがきつきつになっているので、実際fastcgiに変更した方がいいのかなと思って質問させていただきました。 mode_perlにしろ、FastCGIにしろ毎回呼び出すものを呼び出した状態にしていてメモリーがたまるのは知っていたのですが、mode_proxyなんかとあわせるとうまくいくようなので…http://ynomura.dip.jp/archives/2007/10/mod_proxymod_pe.html 回答ありがとうございます。