【激速】mod_perl Spe ..
310:274
06/06/29 02:24:13
>287氏、>290氏からパラメータの不備を指摘されたので、再測定。
K6-2 475MHz
512MB
Vine3.2最小インストール+コンパイル環境+Apache2.0.58ソース(workerでコンパイル)+mod_perlソース+SpeedyCGIソース+FastCGIソース
今回のパラメータでの結果は、cが大きい時のレスポンスの落ち込みが少ないが、前回のパラメータと併せて再現性確認。
またPerlRunのスコアがCGIより悪いという?な点もあるが、これも再現性確認しているので公開。
perlcc -Bが2回目にクラッシュするパターンは1回目終了時にCPU全開が続いていることを確認。
以下、結果報告。
311:nobodyさん
06/06/29 02:28:32 ZFDM74Ge BE:151283-#
わくわく。
312:274
06/06/29 02:34:01
ab -n 10 -c 1
CGI perlcc -B SpeedyCGI fastcgi Registry PerlRun html
1回目 0.45 1.24 2.38 2.68 1.32 0.32 189.81
2回目 0.45 1.24 6.96 7.60 7.87 0.34 222.72
3回目 0.45 1.24 6.87 7.48 7.95 0.33 219.93
4回目 0.45 1.24 6.93 7.51 7.85 0.34 224.07
5回目 0.45 1.24 6.92 7.50 7.93 0.34 222.52
平均 0.45 1.24 6.01 6.55 6.58 0.33 215.81
Requests per second
ab -n 100 -c 10
CGI perlcc -B SpeedyCGI fastcgi Registry PerlRun html
1回目 0.45 1.20 5.64 5.52 2.11 0.32 237.32
2回目 0.44 1.20 6.41 7.50 1.22 0.33 242.48
3回目 0.45 1.21 6.47 7.52 5.13 0.33 242.96
4回目 0.45 1.21 6.49 7.49 5.36 0.33 241.45
5回目 0.45 1.21 6.45 7.48 5.19 0.34 242.16
平均 0.45 1.21 6.29 7.10 3.80 0.33 241.27
Requests per second
313:274
06/06/29 02:38:35
ab -n 200 -c 20
CGI perlcc -B SpeedyCGI fastcgi Registry PerlRun html
1回目 ABORT 1.19 5.26 3.89 ABORT 0.33 231.57
2回目 ABORT 1.19 6.41 7.39 5.38 0.33 239.48
3回目 ABORT 1.20 6.41 7.38 5.56 0.33 240.23
4回目 ABORT 1.20 6.33 7.41 5.53 0.34 238.80
5回目 ABORT 1.19 6.37 7.35 5.54 ABORT 239.41
平均 #DIV/0! 1.19 6.16 6.68 5.50 0.33 237.90
Requests per second
ab -n 400 -c 40
CGI perlcc -B SpeedyCGI fastcgi Registry PerlRun html
1回目 ABORT 1.18 5.47 5.10 ABORT 0.33 230.60
2回目 ABORT 1.17 6.43 7.35 ABORT 0.35 231.21
3回目 ABORT 1.16 6.45 7.38 4.17 ABORT 233.83
4回目 ABORT 1.16 6.35 7.33 2.89 0.35 236.18
5回目 ABORT 1.17 6.31 7.03 6.63 ABORT 235.31
平均 #DIV/0! 1.17 6.20 6.84 4.56 0.34 233.43
Requests per second
314:274
06/06/29 02:42:52
ab -n 1000 -c 100
CGI perlcc -B SpeedyCGI fastcgi Registry PerlRun html
1回目 ABORT 1.17 5.97 6.12 ABORT ABORT 212.58
2回目 ABORT ABORT 6.56 7.10 4.82 ABORT 216.15
3回目 ABORT ABORT 6.52 7.09 5.00 ABORT 214.76
4回目 ABORT ABORT 6.57 7.05 4.59 ABORT 214.61
5回目 ABORT ABORT 6.42 7.16 4.67 ABORT 215.17
平均 #DIV/0! 1.17 6.41 6.90 4.77 #DIV/0! 214.65
Requests per second
ab -n 1500 -c 150
CGI perlcc -B SpeedyCGI fastcgi Registry PerlRun html
1回目 ABORT 1.18 6.06 6.34 ABORT ABORT 218.86
2回目 ABORT ABORT 6.58 6.75 5.35 ABORT 218.53
3回目 ABORT ABORT 6.55 6.70 5.71 ABORT 219.78
4回目 ABORT ABORT 6.54 6.80 5.39 ABORT 215.90
5回目 ABORT ABORT 6.40 7.03 5.75 ABORT 214.78
平均 #DIV/0! 1.18 6.43 6.72 5.55 #DIV/0! 217.57
Requests per second
315:274
06/06/29 02:45:25
ab -n 2000 -c 200
CGI perlcc -B SpeedyCGI fastcgi Registry PerlRun html
1回目 ABORT 1.19 6.16 6.41 ABORT ABORT 220.36
2回目 ABORT ABORT 6.58 6.90 5.17 ABORT 220.84
3回目 ABORT ABORT 6.26 6.92 5.77 ABORT 218.00
4回目 ABORT ABORT 6.29 6.85 5.79 ABORT 218.32
5回目 ABORT ABORT 6.32 6.92 5.96 ABORT 220.42
平均 #DIV/0! 1.19 6.32 6.80 5.67 #DIV/0! 219.59
Requests per second
以上、報告終わり。
316:274
06/06/29 02:50:53
報告忘れ。
ソースnicky.cgi改。
317:nobodyさん
06/06/29 03:09:10
そのスペックでもHTMLってこんなにさばけるんですね
それに感動しちゃった
318:nobodyさん
06/06/29 03:13:09 ZFDM74Ge BE:151283-#
RegistryとPerlRunってこんなに違うのかぁ。。
319:nobodyさん
06/06/29 07:09:29
ん、PerlRunよりCGIが速いってのは何故だろう。
320:nobodyさん
06/06/29 09:58:45 npShM0+K
久々にPerlが活気の良くなりそうなスレですな。
321:nobodyさん
06/06/29 10:52:53
apache2 workerとmod_perlって合性悪いんじゃなかったっけ?
apache2でやるならmod_perl2と小耳にした。
322:nobodyさん
06/06/29 10:58:14
>>310,312-316
ご苦労様です。m(__)m
nicky.cgi改ってのは、ほとんど一本物のプログラムですか?
そうだとすれば、PerlRunだと、ほとんどキャッシュされないからCGI並みのスピードに
なるのは理解できますが、ここまで遅くなる理由は何でしょうね。
ほとんどの機能をmodule側に移せば、PerlRunもそれなりに速くなる筈。
SpeedyCGIとFastCGIの速度比は、うちで取ってみたSpeedyCGIとmod_speedycgiの
比とほぼ一緒。多分、FastCGIとmod_speedycgiは、同程度の速度と言う結果になる
のかなと予測しています。
ちなみに、SpeedyCGIのMaxRunsはデフォルトの500でしょうか。
そうだとすると、-n 2000では、途中3回、再execされているんですよね。
323:nobodyさん
06/06/29 11:14:15
キャッシュには載るんじゃね?
324:nobodyさん
06/06/29 13:42:36
>>321
>>232の結果と併せて見れば、どう転んでも、同時接続数が少ない時は、
mod_perl(Registry),mod_speedycgi,fastcgiは同じ程度の速度だが、同時
接続数が増えると、mod_perl(Registry)の速度低下が目立つが他は、大き
な影響を受けないという傾向は動かないと思える。
ところで、
スレリンク(php板:16番)
にある話は本当?
FastCGIが標準でApacheに搭載される様になれば、FastCGIへの移行を
考えるけど、取りあえずは、環境に応じて、mod_speedycgiとspeedyCGIを
使い分けるのが現実的な選択の様ね。
325:274
06/06/29 14:17:43
>>322
> nicky.cgi改ってのは、ほとんど一本物のプログラムですか?
はい、まさに一本物です。
FastCGIだけ数行コード追加しましたが、他はすべて同じソースでベンチを取りました。
> そうだとすれば、PerlRunだと、ほとんどキャッシュされないからCGI並みのスピードに
> なるのは理解できますが、ここまで遅くなる理由は何でしょうね。
これは、私も悩みました。
ただ言えることは、nicky.cgi改が一本物でサイズ約160KB、CPUが非力という条件のため、
「このベンチでは、インタープリタ起動のコストより、コードのコンパイルのコストが支配的になっている。」
ということです。
これは、perlcc -BがCGIの3倍弱でていることからもわかると思います。
あと、PerlRunであってもメモリはプロセス当たり30MB超えていました。
PerlRunのこの辺の仕様はよく知りませんが、これも関係あるかもしれません。
> ちなみに、SpeedyCGIのMaxRunsはデフォルトの500でしょうか。
他の場合も含め基本的にはコマンドラインスイッチや、httpd.confはいじっていません。
もし扱うとどのあたりにするか面倒なので。
ただし、テストに必要な分だけはhttpd.confに書き込んでいます。
(LoadModule、AddHandler等)
326:nobodyさん
06/06/29 14:25:15
FastCGIってuse strictにしなくちゃいけなかったりするんですか?
327:274
06/06/29 14:26:35
>>321
> apache2 workerとmod_perlって合性悪いんじゃなかったっけ?
すいません。
報告が悪かったです。
>310でmod_perlと書きましたが正確にはmod_perl-2.0.2です。
mod_perl-2.0.2+PersistentPerl-2.22+fcgi-2.4.0+mod_fastcgi-2.4.2です。
328:274
06/06/29 14:28:01
>>326
そんなことはないです。
use strictにした方が間違いを防げるというだけです。
329:nobodyさん
06/06/29 14:55:42
> ただ言えることは、nicky.cgi改が一本物でサイズ約160KB、CPUが非力という条件のため、
なにその巨大なウンコ。
330:nobodyさん
06/06/29 15:00:14 BE:238789139-#
apache1.3(win32)にmod_fastcgi組み込んだら
スクリプトにアクセスした瞬間数十MBのerrorlog吐いてプロセスが暴走した
なんで
331:nobodyさん
06/06/29 15:00:33
ゴミを使ってオナニーベンチをするスレはここですか?
332:nobodyさん
06/06/29 15:11:40
>>330
URLリンク(perldoc.jp)
1.まずはここのサンプルCGIがFastCGIで動くようする。(手順通りにインスコすれば動くはず)
2.自分のスクリプトを動かす。
このような手順でやらないと何が間違いかエラーログだけではわからないと思う。
333:nobodyさん
06/06/29 15:15:19 BE:353760858-#
use CGI::Fastとかを加えないと動きもしないの?
334:nobodyさん
06/06/29 15:20:52
>>333
FastCGIの場合、CGI::FastまたはFCGIの無限ループを実行させるので、
use CGI::Fast;
か
use FCGI;
は必須です。
335:nobodyさん
06/06/29 15:32:42
>>333
FastCGIはいい情報あまりありませんが、
CGI::Fastなら
URLリンク(perldoc.jp)
や
URLリンク(www.drk7.jp)
の下の方にあるFastCGI サンプル CGI のソースが参考になると思います。
FCGIなら本家の
URLリンク(www.fastcgi.com)
(特にサンプルプログラム)
ここが参考になると思います。
手取り足取りのようなマニュアルはおそらく無いと思います。
336:nobodyさん
06/06/29 15:33:54 BE:238787993-#
>>334-335
すみません迷惑かけて
本当にありがとうございます
大変参考になります
337:335
06/06/29 15:50:27
URLリンク(www.drk7.jp)
ここには短いソースで取ったFastCGI VS mod_perl のベンチが最後の方に載っています。
(ab -n 100 -c 10)
結果はやはり小差でFastCGIの勝ちです。
338:nobodyさん
06/06/29 16:33:16
>>337
この比較は、
lighttpd + FastCGI vs mod_perl + Apache1.3
で、httpd自体が違うんで、単純なmod_perl対FastCGIでは無いんです。
ただ、この lighttpd + FastCGI という組み合わせも面白そうですよね。
これなら、dagでrpmから入れられるし。
339:335
06/06/29 17:01:24
>>338
確かにその通りのようですね。
しかし、この結果を見るとlighttpd + FastCGIはApache + FastCGIより速いのかな?
と思います。
単体で圧勝するのは周知の事実のようですが。
340:nobodyさん
06/06/29 18:24:12
>>339
> しかし、この結果を見るとlighttpd + FastCGIはApache + FastCGIより速いのかな?
> と思います。
この点は、微妙ですね。
同じ-c 10 で比較すると、274の結果では大差が付いているものの、337のサイトでは小差。
mod_perlの処理結果を元に比較すれば、Apache + FastCGIの方が速い様に見えます。
しかし、274のベンチは、かなりサイズの大きなソースを実行した結果ですが、337にある
サイトの結果は、Hello Worldの世界。
>>298の言う原因で-c が増えると mod_perl が遅くなるというのであれば、むしろ274のベンチ
の -c 1 あたりと比較する方が妥当とも考えられます。
と言うことで、やってみないと何とも言えない様に思います。
ただ、静的コンテンツについては lighttpd の方が速いそうなので、僅かに lighttpd の勝ち
かなという気もしています。
まあ、差が出たとしても、意味のある差は出ない様に思いますが。
341:nobodyさん
06/06/29 21:19:22
> まあ、差が出たとしても、意味のある差は出ない様に思いますが。
ということで、速度に関して議論することは不毛であるという結論になりました。
342:nobodyさん
06/06/29 21:33:27
って、またPerl VS Javaみたいなことやるの?
343:nobodyさん
06/06/29 21:50:21
Java なんか使うやつはばかです。
344:nobodyさん
06/06/29 21:57:00
おいおい、始まったよ。
345:nobodyさん
06/06/29 21:59:44
Perlは過去の遺物です。
346:nobodyさん
06/06/30 00:30:58
>>345
その言葉は廃れつつあります。
むしろPHPが過去の遺物になりつつあります。
347:nobodyさん
06/06/30 00:40:29
>>346
その変わりに、純国産言語Rubyがあちらで盛り上がって逆輸入されている模様。
RubyのFastCGI対応は容易だそうです。
348:nobodyさん
06/06/30 06:48:26
>>345
> Perlは過去の遺物です。
君の理論で行くとJavaScriptも過去の遺物なのかな?(笑)
349:nobodyさん
06/06/30 09:22:45 BE:141503982-#
専門板の人って煽り耐性ないね
350:nobodyさん
06/06/30 13:09:19
>>349
基本的に技術者志向の人はまじめだからね。
351:nobodyさん
06/06/30 19:15:37
構ったところで知識が頭から抜け落ちるわけでも無し
352:nobodyさん
06/06/30 21:21:51
それは無いものは抜け落ちないよな。
353:nobodyさん
06/06/30 22:24:25
ひょっとして漏れの髪の毛のこと?
354:353
06/06/30 22:30:18
>>352
本当にどうも有難うございます。
355:310
06/06/30 23:06:24
K6-2 475MHz
512MB
Vine3.2最小インストール+コンパイル環境
+Apache2.0.58ソース(preforkでコンパイル)+mod_perl-2.0.2ソース+PersistentPerl-2.22ソース+fcgi-2.4.0ソース+mod_fastcgi-2.4.2ソース
テストソースnicky.cgi改(約160KB)
1パラメータセット終わる度に、
SpeedyCGI、mod_speedycgiはテストソースをtouch、
fastcgi、Registry、PerlRunはhttpdを再起動してキャッシュをリセット。
Registryは-c 40以降、PerlRunは-c 100以降でswapが発生したため、1パラメータ終わる度にPCを再起動。
以下、結果報告。
356:310
06/06/30 23:10:19
ab -n 10 -c 1
CGI perlcc -B SpeedyCGI mod_speedycgi fastcgi Registry PerlRun html
1回目 0.45 1.24 2.60 2.51 2.13 0.44 0.31 191.98
2回目 0.45 1.25 7.15 8.39 7.57 8.17 0.36 232.50
3回目 0.45 1.24 7.05 8.40 7.57 8.15 0.37 244.87
4回目 0.45 1.24 7.01 8.39 7.70 8.06 0.37 245.72
5回目 0.45 1.24 7.04 8.54 7.70 8.04 0.36 241.94
平均 0.45 1.24 6.17 7.25 6.53 6.57 0.35 231.40
Requests per second
ab -n 100 -c 10
CGI perlcc -B SpeedyCGI mod_speedycgi fastcgi Registry PerlRun html
1回目 0.45 1.21 5.59 7.94 6.41 1.36 0.34 248.19
2回目 0.44 1.22 6.52 8.21 7.61 4.10 ABORT 259.18
3回目 0.45 1.22 6.62 8.03 7.60 5.99 0.34 256.66
4回目 0.45 1.22 6.61 8.03 7.60 4.18 0.33 253.06
5回目 0.45 1.23 6.63 7.82 7.63 7.26 0.34 250.21
平均 0.45 1.22 6.39 8.01 7.37 4.58 0.34 253.46
Requests per second
357:310
06/06/30 23:20:33
ab -n 200 -c 20
CGI perlcc -B SpeedyCGI mod_speedycgi fastcgi Registry PerlRun html
1回目 ABORT 1.19 5.39 7.72 6.90 ABORT ABORT 258.46
2回目 ABORT 1.18 6.48 7.93 7.60 2.36 ABORT 258.21
3回目 ABORT 1.19 6.60 8.04 7.61 5.50 ABORT 264.66
4回目 ABORT 1.20 6.55 7.92 7.58 2.72 ABORT 255.30
5回目 ABORT 1.18 6.59 7.89 7.58 3.45 ABORT 263.01
平均 #DIV/0! 1.19 6.32 7.90 7.45 3.51 #DIV/0! 259.93
Requests per second
ab -n 400 -c 40
CGI perlcc -B SpeedyCGI mod_speedycgi fastcgi Registry PerlRun html
1回目 ABORT 1.17 5.46 7.57 5.11 ABORT ABORT 255.63
2回目 ABORT 1.21 6.39 7.77 7.44 ABORT ABORT 257.08
3回目 ABORT 1.17 6.50 7.79 7.43 ABORT ABORT 258.36
4回目 ABORT 1.17 6.47 7.77 7.45 1.11 ABORT 260.97
5回目 ABORT 1.17 6.53 7.92 7.10 ABORT ABORT 257.69
平均 #DIV/0! 1.18 6.27 7.76 6.91 1.11 #DIV/0! 257.95
358:310
06/06/30 23:29:44
すいません。
フライングしました。
後はもう少し待ってください。
359:310
06/06/30 23:40:39
ab -n 1000 -c 100
CGI perlcc -B SpeedyCGI mod_speedycgi fastcgi Registry PerlRun html
1回目 ABORT 1.16 5.51 7.48 6.14 ABORT ABORT 242.47
2回目 ABORT ABORT 6.33 7.66 7.19 ABORT ABORT 244.29
3回目 ABORT ABORT 6.50 7.71 7.22 ABORT ABORT 249.26
4回目 ABORT ABORT 6.47 7.72 7.10 ABORT ABORT 246.59
5回目 ABORT ABORT 6.45 7.82 7.25 3.05 ABORT 241.51
平均 #DIV/0! 1.16 6.25 7.68 6.98 3.05 #DIV/0! 244.82
Requests per second
ab -n 1500 -c 150
CGI perlcc -B SpeedyCGI mod_speedycgi fastcgi Registry PerlRun html
1回目 ABORT ABORT 5.39 7.49 6.35 ABORT ABORT 235.70
2回目 ABORT ABORT 6.26 7.70 6.89 ABORT ABORT 237.14
3回目 ABORT ABORT 6.46 7.63 6.82 ABORT ABORT 232.74
4回目 ABORT ABORT 6.39 7.66 6.83 ABORT ABORT 225.48
5回目 ABORT ABORT 6.40 7.67 7.11 3.75 ABORT 226.65
平均 #DIV/0! #DIV/0! 6.18 7.63 6.80 3.75 #DIV/0! 231.54
Requests per second
360:nobodyさん
06/06/30 23:53:02 BE:53064432-#
mod_speedycgi ハヤスギ ワロタ
361:310
06/07/01 00:14:11
ab -n 2000 -c 200
CGI perlcc -B SpeedyCGI mod_speedycgi fastcgi Registry PerlRun html
1回目 ABORT 1.17 ABORT 7.56 6.44 ABORT ABORT 228.41
2回目 ABORT ABORT 6.25 7.79 6.96 ABORT ABORT 230.36
3回目 ABORT ABORT 6.36 7.77 6.73 ABORT ABORT 225.48
4回目 ABORT ABORT 6.38 7.74 6.93 ABORT ABORT 234.54
5回目 ABORT ABORT 6.30 7.63 6.98 6.48 ABORT 233.99
平均 #DIV/0! 1.17 6.32 7.70 6.81 6.48 #DIV/0! 230.56
Requests per second
以上、報告終わり。
362:nobodyさん
06/07/01 03:18:50
>>310
ご苦労様でした。
URLリンク(www.drk7.jp)
あたりを見て、SpeedyCGIより、FastCGIの方が速いのかと思っていたんですが、
mod_speedycgiを入れると、
mod_speedycgi > FastCGI > SpeedyCGI
という順番の様ですね。
perlだけ使うんであれば、導入の手間、速度の両面で、FastCGIを使うメリットは
無いのかな。
363:nobodyさん
06/07/01 04:59:21
無いと思いますけどね。
364:nobodyさん
06/07/01 10:53:26
こうなると、lighttpd+SpeedyCGIが気になって仕方ない。
lighttpd用のmod_s;peedycgiみたいなのは無いよね?
365:nobodyさん
06/07/01 11:12:27
lighttpdは確かに速いようですが、ボトルネックはCGIにあるのでlighttpdでスピードが上がる要素はほとんど無いと思う。
366:nobodyさん
06/07/01 12:00:43
K6-2 475MHz
512MB
Vine3.2最小インストール+コンパイル環境
+Apache2.0.58ソース(preforkでコンパイル)+mod_perl-2.0.2ソース+PersistentPerl-2.22ソース+fcgi-2.4.0ソース+mod_fastcgi-2.4.2ソース
1パラメータセット終わる度に、
SpeedyCGI、mod_speedycgiはテストソースをtouch、
fastcgi、Registry、PerlRunはhttpdを再起動してキャッシュをリセット。
テストソース hello world
ごく小さなソースでのベンチも必要だと感じたので測定。
workerはとるつもりはありません。
その暇があれば、lighttpdを測定する方が有益と思います。
Cのcgiと以前話が出た、fastcgi c VS fastcgi perl を入れました。
またこのソースではRegistry、PerlRunのswapは発生せず。
367:355
06/07/01 12:03:41
ソース
hello.html
<HTML>
Hello, world!
</HTML>
hello.pl
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "Hello, world!\n";
print "</HTML>";
hello.c
#include <stdio.h>
void main(void)
{
printf("Content-type: text/html\n\n");
printf("<HTML>\n");
printf("Hello, world!\n");
printf("</HTML>");
}
368:355
06/07/01 12:05:28
fast_hello.pl
#!/usr/bin/perl
use FCGI;
while (FCGI::accept >= 0)
{
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "Hello, world!\n";
print "</HTML>";
}
fast_hello.c
#include "fcgi_stdio.h"
#include <stdio.h>
void main(void)
{
while (FCGI_Accept() >= 0)
{
printf("Content-type: text/html\n\n");
printf("<HTML>\n");
printf("Hello, world!\n");
printf("</HTML>");
}
}
369:355
06/07/01 12:07:54
以下、結果報告。
370:355
06/07/01 12:14:24
ab -n 10 -c 1
CGI c CGI perl perlcc -B SpeedyCGI mod_speedycgi fastcgi c fastcgi perl Registry PerlRun html
1回目 80.62 26.17 13.50 20.71 16.41 16.34 9.77 1.65 2.41 270.10
2回目 81.39 26.74 13.84 35.79 123.85 185.42 121.37 94.43 54.39 277.01
3回目 82.48 26.91 13.86 36.50 123.57 178.26 121.73 95.35 12.15 268.12
4回目 81.96 27.03 13.90 36.66 123.49 182.54 122.29 96.74 57.00 267.32
5回目 81.82 26.66 13.87 36.59 109.58 181.85 122.36 97.30 57.03 272.57
平均 81.65 26.70 13.79 33.25 99.38 148.88 99.50 77.09 36.60 271.02
Requests per second
371:355
06/07/01 12:15:04
ab -n 100 -c 10
CGI c CGI perl perlcc -B SpeedyCGI mod_speedycgi fastcgi c fastcgi perl Registry PerlRun html
1回目 80.35 24.59 12.53 32.28 112.21 181.51 79.98 7.38 7.14 287.30
2回目 76.72 24.56 12.80 34.48 121.06 182.21 121.81 74.02 44.14 278.04
3回目 79.79 24.38 12.74 33.25 119.92 181.57 120.37 85.51 42.99 280.69
4回目 76.24 24.42 13.22 33.15 122.28 179.48 121.18 85.56 30.75 287.75
5回目 76.19 24.48 12.75 33.24 116.35 182.61 118.93 87.59 48.18 288.21
平均 77.86 24.49 12.81 33.28 118.36 181.48 112.45 68.01 34.64 284.40
Requests per second
372:355
06/07/01 12:17:41
ab -n 100 -c 10
CGI c CGI perl perlcc -B SpeedyCGI mod_speedycgi fastcgi c fastcgi perl Registry PerlRun html
1回目 80.35 24.59 12.53 32.28 112.21 181.51 79.98 7.38 7.14 287.30
2回目 76.72 24.56 12.80 34.48 121.06 182.21 121.81 74.02 44.14 278.04
3回目 79.79 24.38 12.74 33.25 119.92 181.57 120.37 85.51 42.99 280.69
4回目 76.24 24.42 13.22 33.15 122.28 179.48 121.18 85.56 30.75 287.75
5回目 76.19 24.48 12.75 33.24 116.35 182.61 118.93 87.59 48.18 288.21
平均 77.86 24.49 12.81 33.28 118.36 181.48 112.45 68.01 34.64 284.40
Requests per second
373:355
06/07/01 12:18:55
すいません。
>371と>372は同じものです。
374:355
06/07/01 12:31:33
ab -n 200 -c 20
CGI c CGI perl perlcc -B SpeedyCGI mod_speedycgi fastcgi c fastcgi perl Registry PerlRun html
1回目 78.10 24.62 12.69 31.51 114.04 184.03 95.03 10.00 8.64 292.87
2回目 81.17 24.66 12.73 33.03 119.16 185.93 118.80 90.98 55.16 293.11
3回目 77.62 24.74 13.25 32.99 114.92 192.23 119.23 79.47 44.99 280.26
4回目 78.70 24.81 12.88 32.10 118.08 188.86 119.64 77.49 48.46 286.11
5回目 79.50 24.73 12.98 33.11 115.42 182.41 117.86 62.33 46.55 284.11
平均 79.02 24.71 12.91 32.55 116.32 186.69 114.11 64.05 40.76 287.29
Requests per second
375:355
06/07/01 12:33:33
ab -n 400 -c 40
CGI c CGI perl perlcc -B SpeedyCGI mod_speedycgi fastcgi c fastcgi perl Registry PerlRun html
1回目 80.57 24.42 12.50 31.78 110.56 176.86 100.96 16.91 12.96 293.94
2回目 80.33 24.47 12.56 33.84 118.34 180.34 113.21 21.93 23.52 287.48
3回目 78.31 25.03 12.71 32.34 116.58 183.24 110.40 81.42 55.92 300.39
4回目 79.41 25.16 12.49 33.90 124.34 183.00 106.40 75.04 56.51 293.20
5回目 77.44 24.50 12.55 32.24 120.68 183.12 109.45 81.47 46.63 300.58
平均 79.21 24.72 12.56 32.82 118.10 181.31 108.08 55.35 39.11 295.12
Requests per second
376:355
06/07/01 12:38:01
ab -n 1000 -c 100
CGI c CGI perl perlcc -B SpeedyCGI mod_speedycgi fastcgi c fastcgi perl Registry PerlRun html
1回目 78.12 24.91 12.97 30.99 91.33 174.89 92.12 20.86 16.17 287.40
2回目 80.17 25.31 12.80 32.12 109.90 174.87 94.91 25.45 18.14 281.79
3回目 78.44 24.65 12.57 32.41 112.69 170.94 101.65 46.86 54.87 274.96
4回目 78.01 23.84 12.96 32.05 113.81 166.39 102.72 95.56 46.12 283.29
5回目 78.69 24.87 12.52 32.35 113.24 166.31 101.21 74.98 34.28 283.35
平均 78.69 24.72 12.76 31.98 108.19 170.68 98.52 52.74 33.92 282.16
Requests per second
377:355
06/07/01 12:40:23
ab -n 1500 -c 150
CGI c CGI perl perlcc -B SpeedyCGI mod_speedycgi fastcgi c fastcgi perl Registry PerlRun html
1回目 76.39 24.19 12.50 31.27 99.27 172.32 88.22 18.96 17.69 275.84
2回目 72.94 24.22 12.56 31.99 112.01 166.82 96.86 27.05 21.28 277.10
3回目 73.62 24.78 12.62 32.71 114.98 163.69 97.89 71.29 40.18 273.88
4回目 73.88 23.90 12.61 32.49 112.21 164.86 98.73 75.77 21.71 256.73
5回目 74.24 24.13 12.69 33.07 114.19 167.17 98.56 75.81 40.84 255.67
平均 74.21 24.24 12.60 32.31 110.53 166.97 96.05 53.78 28.34 267.84
Requests per second
378:355
06/07/01 12:42:34
ab -n 2000 -c 200
CGI c CGI perl perlcc -B SpeedyCGI mod_speedycgi fastcgi c fastcgi perl Registry PerlRun html
1回目 75.00 24.42 12.59 31.47 109.51 170.30 87.57 21.46 17.50 250.27
2回目 75.09 24.05 12.51 31.69 116.31 169.27 91.84 37.49 32.77 261.21
3回目 73.87 24.67 12.60 32.76 113.69 164.81 92.60 74.82 46.47 260.43
4回目 73.51 24.43 12.59 32.68 113.51 170.00 92.98 74.82 45.72 260.72
5回目 73.26 24.08 12.88 32.72 112.25 165.43 93.40 71.43 43.67 261.65
平均 74.15 24.33 12.63 32.26 113.05 167.96 91.68 56.00 37.23 258.86
Requests per second
379:355
06/07/01 12:43:06
以上、報告終わり。
380:nobodyさん
06/07/01 12:44:06
平均は真ん中3つも出してくれよ。
381:355
06/07/01 12:56:02
>>380
了解
今から出します。
382:355
06/07/01 13:07:11
MAX、MINを除外した平均値
CGI c CGI perl perlcc -B SpeedyCGI mod_speedycgi fastcgi c fastcgi perl Registry PerlRun html
ab -n 10 -c 1 81.72 26.77 13.86 36.29 118.88 180.88 121.80 95.51 41.18 270.26
ab -n 100 -c 10 77.58 24.49 12.76 33.21 119.11 181.76 120.16 81.70 39.29 285.25
ab -n 200 -c 20 78.77 24.71 12.86 32.71 116.14 186.27 118.63 73.10 46.67 287.70
ab -n 400 -c 40 79.35 24.67 12.54 32.81 118.53 182.15 108.75 59.46 42.02 295.84
ab -n 1000 -c 100 78.42 24.81 12.78 32.17 111.94 170.73 99.26 49.10 32.85 282.81
ab -n 1500 -c 150 73.91 24.18 12.60 32.40 112.80 166.28 97.77 58.04 27.72 268.82
ab -n 2000 -c 200 74.13 24.31 12.59 32.36 113.15 168.23 92.47 61.25 40.72 260.79
Requests per second
383:nobodyさん
06/07/01 13:13:38
うわ、ありがとうございます。
やっぱり不安定なやつの救済にはならなかったかorz
384:355
06/07/01 13:29:33
MAX、MINを除外した平均値(データ数2以下の場合通常の平均)
prefork
nicky.cgi改
CGI perlcc -B SpeedyCGI mod_speedycgi fastcgi Registry PerlRun html
ab -n 10 -c 1 0.45 1.24 7.03 8.39 7.61 8.08 0.36 239.77
ab -n 100 -c 10 0.45 1.22 6.58 8.00 7.60 4.76 0.23 253.31
ab -n 200 -c 20 abort all 1.19 6.54 7.91 7.59 2.06 abort all 259.89
ab -n 400 -c 40 abort all 1.17 6.45 7.78 7.32 1.11 abort all 257.71
ab -n 1000 -c 100 abort all 1.16 6.42 7.70 7.17 3.05 abort all 244.45
ab -n 1500 -c 150 abort all abort all 6.35 7.65 6.85 3.75 abort all 231.70
ab -n 2000 -c 200 abort all 1.17 4.22 7.71 6.87 6.48 abort all 230.92
Requests per second
385:355
06/07/01 13:38:10
MAX、MINを除外した平均値(データ数2以下の場合通常の平均)
worker
nicky.cgi改
CGI perlcc -B SpeedyCGI fastcgi Registry PerlRun html
ab -n 10 -c 1 0.45 1.24 6.91 7.50 7.88 0.34 221.72
ab -n 100 -c 10 0.45 1.21 6.44 7.49 4.14 0.33 242.03
ab -n 200 -c 20 abort all 1.19 6.37 7.37 3.69 0.22 239.23
ab -n 400 -c 40 abort all 1.17 6.36 7.24 1.39 0.12 233.45
ab -n 1000 -c 100 abort all 1.17 6.50 7.08 3.16 abort all 214.85
ab -n 1500 -c 150 abort all 1.18 6.50 6.75 3.70 abort all 217.76
ab -n 2000 -c 200 abort all 1.19 6.29 6.89 3.85 abort all 219.70
Requests per second
386:nobodyさん
06/07/01 13:40:29
>>335
またまた、ご苦労様です。
これだけあると、見るのも大変だけど、作る方は、もっと大変なんでしょうね。(^^;
これを見ると、mod_perl,fastcgiは、同時接続数が増えた際のレスポンスの落ち込みが
他と比べて大きいですね。
fastcgiでは、大きなソースだと、その差が見えずらくなりますが。
この中では、fastcgi cが一番速いですが、cで書くんだったら、fastcgiを使わずに
module作った方が良いかなと言う気もします。
開発・導入コスト、スピード、メンテナンス性を考えると、Apache API 使いたいとか
言うのでなければ、mod_speedycgiって、とても良い選択肢ですね。
387:nobodyさん
06/07/01 13:57:12 HcFO9A5X BE:309277-#
よくわかってないのですが、
mod_speedycgiとspeedy(perperl)って何が違うんですか?
388:355
06/07/01 14:00:16
>>386
mod_speedycgiは1つだけ欠点が。
worker環境では動きませんでした。
運用可能なのは、Apache1(確認)とApache2のprefork(確認)のみと思われます。
389:nobodyさん
06/07/01 14:12:54
>>387
SpeedyCGIは
httpd→SpeedyCGIフロントエンド起動→SpeedyCGIバックエンド呼び出し
こういう感じになります。
mod_speedycgiはSpeedyCGIフロントエンドがアパッチプロセスに埋め込まれて常駐します。
httpd内でSpeedyCGIフロントエンド呼び出し→SpeedyCGIバックエンド呼び出し
こういう感じかな。
小さいソースでSpeedyCGIが伸びないところをみると、SpeedyCGIフロントエンド起動はコストが高いのかも(インタープリタ起動のコストの2/3ぐらい?)。
390:nobodyさん
06/07/01 20:49:09
パフォーマンス悪かろうが何だろうが、それでも mod_perl を使うけどな(´Д`)
391:nobodyさん
06/07/01 21:20:12
mod_perlはApache Software Foundationのお膝元ってのが大きい。
392:nobodyさん
06/07/01 21:28:46
>>390
それはそれで個人の自由だからいいんでない。
393:nobodyさん
06/07/01 21:47:44
>>389
Hello Worldで、SpeedyCGIが伸びないのは、mod_cgi経由だからかなという気がしています。
perlを使うと言う前提で考えれば、通常のcgiと比較して、何が省略できて、逆に何が余分に
掛かるのかと言う話なんですよね、多分。
mod_cgiを通すから、コストが掛かるのか、純粋にspeedyの起動に時間が掛かるのかは分か
らないのですが。
mod_perlが同時接続数が増えると成績悪くなるのは、余分に掛かるものが、無視できなくなっ
たためなのかな。
ちなみに、両方のテストと共、PerlRunには酷なテストでしたね。
大元のスクリプトのは毎回呼び出すけど、useしたものはメモリーに置くという方式なので、
速度的にメリットを出せる部分が全然使われてません。
意味がなくても、use CGI;use DBI;use Templateあたりを追加したHelloWorldなソースで比
べると、CGIよりも良い成績が出るのではないかと思っています。
大きなソースの場合、アプリの機能を、ほとんどモジュール側に持って行けば、それなりに
速くなる筈です。殆どの機能をモジュール側に持って行ったら、PerlRun使わずに、Registry
使えよという話になるんですが。
まあ、このPerlRunとCGIの差が、mod_perlを使った際に、余分に掛かる物の量なんでしょうね。
394:355
06/07/01 22:37:21
>>393
> 意味がなくても、use CGI;use DBI;use Templateあたりを追加したHelloWorldなソースで比
> べると、CGIよりも良い成績が出るのではないかと思っています。
useしたものはメモリーに置くということは知りませんでした。
基本的にできるだけ同じ条件で取る方向で測定したので、知っていても同じ条件で取ったと思います。
インタープリタをプロセス内にあることのアドバンテージは起動コストの高い>382で出ていると思います。(hello world)
395:355
06/07/01 22:40:01
×インタープリタを
○インタープリタが
396:nobodyさん
06/07/01 23:38:12
mod_perlではスワップ発生してたりしないかな?
397:393
06/07/02 00:05:08
>>394
> useしたものはメモリーに置くということは知りませんでした。
出鱈目な事を言っているといけないので、資料を当たってみました。
下記の "Apache::PerlRun--a closer look" が参考になると思います。
URLリンク(perl.apache.org)
という事で、スクリプトの書き方によって、PerlRunもRegistryに近い速度を出せるそうです。
まあ、ベンチを取る時に、全体のコード量と、useする比率をどの程度にするのが妥当かと
いうのは、非常に難しい問題なのですが。
398:355
06/07/02 00:14:54
>>396
>mod_perlではスワップ発生してたりしないかな?
一応ベンチ取ったときに書き込みましたが、長すぎて読みにくかったかな。
>384の場合のみ発生しています。
Registryは-c 40からPerlRunは-c 100からです。
399:355
06/07/02 01:06:21
すいません。
一部訂正。
エクセルを使ったMAX、MINを除外した平均値の算出に誤り。
=IF(COUNT(B3:B7)>2,(SUM(B3:B7)-MAX(B3:B7)-MIN(B3:B7))/3,AVERAGE(B3:B7))
データが4点の場合2で割らないといけませんが、3の決めうちで割ってしまっています。
=IF(COUNT(B3:B7)>2,(SUM(B3:B7)-MAX(B3:B7)-MIN(B3:B7))/(COUNT(B3:B7)-2),AVERAGE(B3:B7))
でデータ数-2で割るように修正したデータを載せます。
>382、>384、>385のうち>382だけはこの影響は受けません。
ABORTがないため3の決めうちで問題ないからです。
不注意申し訳ないです。
400:355
06/07/02 01:18:46
MAX、MINを除外した平均値
prefork
nicky.cgi改
CGI perlcc -B SpeedyCGI mod_speedycgi fastcgi Registry PerlRun html
ab -n 10 -c 1 0.45 1.24 7.03 8.39 7.61 8.08 0.36 239.77
ab -n 100 -c 10 0.45 1.22 6.58 8.00 7.60 4.76 0.34 253.31
ab -n 200 -c 20 abort all 1.19 6.54 7.91 7.59 3.09 abort all 259.89
ab -n 400 -c 40 abort all 1.17 6.45 7.78 7.32 1.11 abort all 257.71
ab -n 1000 -c 100 abort all 1.16 6.42 7.70 7.17 3.05 abort all 244.45
ab -n 1500 -c 150 abort all abort all 6.35 7.65 6.85 3.75 abort all 231.70
ab -n 2000 -c 200 abort all 1.17 6.33 7.71 6.87 6.48 abort all 230.92
Requests per second
401:355
06/07/02 01:27:29
MAX、MINを除外した平均値(データ数2以下の場合通常の平均)
worker
nicky.cgi改
CGI perlcc -B SpeedyCGI fastcgi Registry PerlRun html
ab -n 10 -c 1 0.45 1.24 6.91 7.50 7.88 0.34 221.72
ab -n 100 -c 10 0.45 1.21 6.44 7.49 4.14 0.33 242.03
ab -n 200 -c 20 abort all 1.19 6.37 7.37 5.54 0.33 239.23
ab -n 400 -c 40 abort all 1.17 6.36 7.24 4.17 0.35 233.45
ab -n 1000 -c 100 abort all 1.17 6.50 7.08 4.75 abort all 214.85
ab -n 1500 -c 150 abort all 1.18 6.50 6.75 5.55 abort all 217.76
ab -n 2000 -c 200 abort all 1.19 6.29 6.89 5.78 abort all 219.70
Requests per second
402:nobodyさん
06/07/02 03:23:34
最後にlighttpd+FastCGI
K6-2 475MHz
512MB
Vine3.2最小インストール+コンパイル環境
+lighttpd-1.4.11ソース+fcgi-2.4.0ソース
テストソース hello world(>367-368)
fast_hello.pl、nicky.cgi改はFastCGIソース
hello.html、nicky.htmlは同等のhtml
以下、結果報告。
403:nobodyさん
06/07/02 03:24:37
ab -n 10 -c 1
fast_hello.pl nicky.cgi改 hello.html nicky.html
1回目 80.17 7.43 404.65 294.84
2回目 80.22 7.50 438.85 290.78
3回目 81.09 7.50 433.39 294.58
4回目 82.52 7.59 403.80 284.79
5回目 82.24 7.60 443.26 299.15
3点平均 81.18 7.53 425.63 293.40
Requests per second
ab -n 100 -c 10
fast_hello.pl nicky.cgi改 hello.html nicky.html
1回目 82.15 7.37 545.05 419.07
2回目 81.17 7.45 581.38 362.70
3回目 81.97 7.40 558.21 375.57
4回目 78.28 7.44 577.86 394.92
5回目 80.37 7.47 548.81 422.58
3点平均 81.17 7.43 561.63 396.52
Requests per second
ab -n 200 -c 20
fast_hello.pl nicky.cgi改 hello.html nicky.html
1回目 79.99 7.50 554.36 399.54
2回目 79.05 7.47 530.38 394.03
3回目 79.49 7.44 540.64 391.67
4回目 81.20 7.48 488.14 410.85
5回目 80.41 7.42 532.57 371.96
3点平均 79.96 7.46 534.53 395.08
Requests per second
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5317日前に更新/192 KB
担当:undef