06/06/17 14:32:11
じゃあ、無意味じゃないベンチでいいよ。
240:nobodyさん
06/06/17 14:37:42
>>239
例えばどんな条件?
241:nobodyさん
06/06/17 15:20:32
>>225
そのmod_perlはまさかpreforkじゃあるめぇな?是非workerでのベンチも宜しく。
242:225
06/06/17 15:37:55
>>241
> そのmod_perlはまさかpreforkじゃあるめぇな?是非workerでのベンチも宜しく。
まさかのpreforkだよ。
Apache1.3.33なのでworkerは使えないはず。
ボランティアではないから、Apache2インスコは勘弁してくれ。
243:225
06/06/17 15:40:36
まあ、時間ができた時にやってもいいな。
今日はもう時間がない。
無期限でというならやってもいいよ。
244:nobodyさん
06/06/17 16:48:09
ほら、やっぱり飽和させないと>ベンチ
245:nobodyさん
06/06/17 16:49:21 uEg75/Hh
いろいろ参考になります。ありがトン。
ところで、perlccでperlスクリプトをバイナリにしとくのって
cgiが速くなるのでしょうか。やってみればいいんでしょうけど。
246:nobodyさん
06/06/17 17:42:44 PIdwd3B2
SpeedyCGIってWindowsでは動かないのか?
247:nobodyさん
06/06/17 18:13:28
>>133の続きマダー?
248:nobodyさん
06/06/17 19:57:24
URLリンク(www.drk7.jp)
によると、FastCGIは、Segmentation Fault に悩まされる事がある様だけど、
ぶち当たった事がある人いる?
249:nobodyさん
06/06/17 23:26:08
なんかmod_perlというとmixiやhatenaが出てくるけど、
老舗/.もわるれないでほしいなぁ。
250:nobodyさん
06/06/18 05:24:04
糞遅いcrc計算とかmd5計算とかどうよ
251:nobodyさん
06/06/18 05:31:43
いやぁ、どうもこうもないですよ
252:nobodyさん
06/06/18 08:57:02
>>234
>>235
>>239
同じWebサーバを使い、同じPerlインタプリタと同じコンパイル済みのコードをメモリ上に
常駐させて処理するんだから、その処理時間は、mod_perl,SpeedyCGI,FastCGIのどれも
掛かる時間は一緒。
せいぜい差が出るのは、起動の際の時間。
コードの量が増えれば、起動時間の差が占める割合が低くなるから、コードの規模が
大きくなるに従って、三者の差は無くなって行く。
凝ったコードでベンチを取っても、「CGIは遅いが、mod_perl,SpeedyCGI,FastCGIはほとんど
差が出ない」という結果が出るだけ。
だから、「最小限のコード」でベンチを取るのは正解。
ただ、処理時間の「差」を見るのは良いが、「比率」を見てしまうと、間違いの基。
あとは、メモリを喰いすぎてswapを起こして遅くならないかとか、マルチ*な環境を有効に
使えるかとか、一度に多くのリクエストが集中した時に、適切に捌けるかと言った比較を
するのは意味がある。
253:nobodyさん
06/06/18 11:01:42
>>252
> あとは、メモリを喰いすぎてswapを起こして遅くならないかとか、
> マルチ*な環境を有効に使えるかとか、一度に多くのリクエストが
> 集中した時に、適切に捌けるかと言った比較をするのは意味がある。
よく意味がわかりません。
254:nobodyさん
06/06/18 11:12:02
>>252
> だから、「最小限のコード」でベンチを取るのは正解。
そうかな、むりやり差を出すのが正解とは思わないが。
> あとは、メモリを喰いすぎてswapを起こして遅くならないかとか
mod_perlは自分に対してのswapは、許してないよ。
プロセスごとkillされる。
255:nobodyさん
06/06/20 22:59:20
誰かPerlの本格的コンパイラ作らんかな。
できるはずなんだけど。
Basicのようにスクリプト、実行ファイル両立方式になればなあ。
一々グローバル変数初期化しなくてもよくなる。
スピードも上がる。
絵に描いた餅ですまそ。
256:nobodyさん
06/06/21 02:12:20
妄想するのは構わないがリサーチもせんと書き込むな
257:nobodyさん
06/06/21 07:25:59 vwMWqBxm BE:151564-#
perlccってあんまりはやらんですよね。
258:255
06/06/21 10:21:51
確かに妄想なんだがリサーチしようがないだろう。
似たような事例にGCC-JAVAがあるのは知ってる。
これ、Javaソースからネイティブコードにコンパイルする。
でもJava自体にJITコンパイラがあるから、Javaでは無視されている。
GCC-PERLがあればなあ。
259:nobodyさん
06/06/21 18:48:07
>リサーチしようがないだろう。
>リサーチしようがないだろう。
>リサーチしようがないだろう。
URLリンク(www.google.co.jp)
260:nobodyさん
06/06/21 18:50:21 BE:238789139-#
PARはPerlのDLL全部ぶち込んで
スクリプトをZIP圧縮してるだけだし
261:nobodyさん
06/06/21 19:23:28
>>259
perlccばっかりやん。
役にたたんのはわかってるんでねえ?
262:nobodyさん
06/06/21 19:26:27
gcc-perlってある意味理想でねえ?
263:nobodyさん
06/06/22 16:38:10
perlccはバイトコードに変換してるだけだからね。
バイトコード間でもバージョンが違うと動かないし。
264:nobodyさん
06/06/23 02:29:54 ybv8oJFI
漏れが>>245で、2006/06/17(土) 16:49:21にperlccのこと
質問したのに、無視しといて、>>257が質問したら、急に
レスが付くって、本当にありがとう。
265:nobodyさん
06/06/23 06:47:43
ここにはレスしなければならないという義務が存在するのか?レスをするのもしないのも自由。
大人は質問に答えたりしない
それが基本だ お前たちはその基本をはきちがえているから
今朽ち果てて こんな船にいるのだ
無論中には 答える大人もいる
しかし それは答える側にとって
都合のいい内容だからそうしているのであって
そんなものを信用するってことは
つまりのせられているってことだ
なぜそれがわからない・・・・?
なぜ・・・・ そのことに気付かない・・・・?
266:nobodyさん
06/06/23 12:15:30 BE:132660735-#
カイジ厨乙
267:243
06/06/23 12:38:21
>>264
今度、ベンチとるときにperlccもやるつもりだったよ。(-Bオプションのみ)
レスはしなかったが。
268:nobodyさん
06/06/23 15:46:55 6y25kE0L
mod_perlのPerlRegistry + Apache::DBIな永遠DBI接続みたいなもんは
mod_speedycgiにあるのかな?
DBをあつかってるシステムならPerlRegistry+Apache::DBIがベストだと思ってたけど
ApacheとDBのプロセスで食いつぶれるメモリの配慮でツカレタよ。
なんかmod_speedycgiよさげだね。
269:nobodyさん
06/06/23 15:51:08
最大メモリ使用量 積めるだけ
270:nobodyさん
06/06/23 22:15:44
>>268
フロントコントローラしてくれる手軽なFWがあれば便利なんだけど。
perl -MCPAN -e "Bundle::Maypole" したら、あまりにも大袈裟なんで、めげた。
271:nobodyさん
06/06/25 04:11:20
>>245
バイトコードへの変換はそれほどコストが掛かる訳じゃないので
perlccでバイトコードへ変換してもそれほど高速にはなりません。
とはいえ実測では1割程度の速度アップが見られました。
誰もが初めからレス見てると思うなよ、ガラスの十代め。
272:245
06/06/25 09:47:47 HMa92uFN
>>271
誰をガラスの十代って言ってるのかとおもたらこの漏れのことか。
とてもご親切にありがとう。これから「ガラスの十代」ググってきまつ。
273:nobodyさん
06/06/25 09:56:40
涙で見えなくてカに「゛」を打ち忘れるなよ。
274:267
06/06/25 22:58:06
workerのベンチをある程度とれたので公開。
測定環境
K6-2 475MHz
SDRAM 512MB
Vine3.2最小構成+α
Apache2.0.58、mod_perl、SpeedyCGIはソースからコンパイル。
httpd.conf、コマンドラインスイッチはデフォルトのまま使用(Alias等のみhttpd.confに追加)。
mod_speedycgiはworkerで動かない模様(エラーログにスレッド下で動かしたとでる)なのでとっていない。
ノーマルCGIとperlcc -Bは一度クラッシュすると数分間CPU全開になるため、1回目で×の場合2回目以降はとっていない。
mod_perl、SpeedyCGIはクラッシュ後すぐに回復するのでその後も継続。
mod_perl、SpeedyCGIは1回目に必ず初期化が起こる条件で測定。
(mod_perlはApache再起動、SpeedyCGIはソースをtouch)
(これはリソースの解放の意図も含む)
以下、結果レポート。
275:267
06/06/25 22:59:21
ab -n 20 -c 1
CGI perlcc -B SpeedyCGI mod_perl worker
1回目 0.45 1.24 2.33 2.37
2回目 0.45 1.25 6.90 7.87
3回目 0.45 1.25 6.90 7.95
4回目 0.45 1.25 6.91 7.95
5回目 0.45 1.25 6.95 7.89
平均 0.45 1.25 6.00 6.81
Requests per second
ab -n 20 -c 10
CGI perlcc -B SpeedyCGI mod_perl worker
1回目 0.44 1.14 1.87 0.59
2回目 0.44 1.16 5.53 4.28
3回目 0.43 1.16 5.53 5.52
4回目 0.37 1.13 5.13 4.82
5回目 0.44 1.16 5.09 4.61
平均 0.42 1.15 4.63 3.96
Requests per second
ab -n 20 -c 20
CGI perlcc -B SpeedyCGI mod_perl worker
1回目 ABORT 0.97 1.75 0.59
2回目 ABORT 1.00 4.64 4.60
3回目 ABORT 0.97 4.77 ABORT
4回目 ABORT 0.95 5.43 3.01
5回目 ABORT 0.95 4.86 4.31
平均 #DIV/0! 0.97 4.29 3.13
Requests per second
276:267
06/06/25 23:00:12
ab -n 20 -c 40
CGI perlcc -B SpeedyCGI mod_perl worker
1回目 ABORT 0.69 1.13 ABORT
2回目 ABORT 0.50 5.19 ABORT
3回目 ABORT 0.60 5.29 5.05
4回目 ABORT 0.54 5.57 0.80
5回目 ABORT 0.69 4.99 5.05
平均 #DIV/0! 0.60 4.43 3.63
Requests per second
ab -n 20 -c 100
CGI perlcc -B SpeedyCGI mod_perl worker
1回目 ABORT 0.51 1.25 ABORT
2回目 ABORT ABORT 4.48 1.88
3回目 ABORT ABORT 4.39 0.85
4回目 ABORT ABORT 2.32 0.92
5回目 ABORT ABORT 3.99 2.42
平均 #DIV/0! 0.51 3.29 1.52
Requests per second
ab -n 20 -c 150
CGI perlcc -B SpeedyCGI mod_perl worker
1回目 ABORT 0.54 1.14 ABORT
2回目 ABORT ABORT 2.23 0.40
3回目 ABORT ABORT 1.57 1.14
4回目 ABORT ABORT 4.77 1.28
5回目 ABORT ABORT 4.73 0.97
平均 #DIV/0! 0.54 2.89 0.95
Requests per second
277:267
06/06/25 23:00:54
ab -n 20 -c 200
CGI perlcc -B SpeedyCGI mod_perl worker
1回目 ABORT 0.50 1.08 ABORT
2回目 ABORT ABORT 5.10 1.76
3回目 ABORT ABORT 1.12 0.66
4回目 ABORT ABORT 1.19 0.69
5回目 ABORT ABORT 1.18 0.64
平均 #DIV/0! 0.50 1.93 0.94
Requests per second
278:267
06/06/25 23:02:49
以上で全て。
ABORT時のメッセージはどれも
The timeout specified has expired (70007)
で同じ。
279:267
06/06/25 23:26:46
追記
使用ソース
運用中nicky.cgi改(SpeedyCGI、mod_perl対応)
280:nobodyさん
06/06/25 23:39:37 9F1oBnAV BE:101344-#
ab -n 20 -c 1とかのオプションってどういう意味なんでしたっけ?
281:nobodyさん
06/06/25 23:40:32 BE:397980195-#
URLリンク(www.atmarkit.co.jp)
ここら辺どぞ
282:nobodyさん
06/06/25 23:49:53
>>232,>>275を比べると、両者で測定条件が違いそうだけど、prefork,workerの差は、
あまりないと言う事かな?
それにしても、SpeedyCGIは強いね。
283:282
06/06/26 00:27:02
>>282
測定条件は違います。
前回:Vine3.2フルインストール(Apache1.3.33、mod_perl含む)+SpeedyCGIソース
今回:Vine3.2最小インストール+コンパイル環境+Apache2.0.58ソース(workerでコンパイル)+mod_perlソース+SpeedyCGIソース
なぜこのようになったかというと、Apache2環境のアクセラレータがディストリのものではうまく揃わなかったからです。
Vine、Debianを試しましたがApache1しか揃いません。
>prefork,workerの差は、あまりないと言う事かな?
前回がApache1だし、-c 10の場合しかとってないので、
次回:Vine3.2最小インストール+コンパイル環境+Apache2.0.58ソース(preforkでコンパイル)+mod_perlソース+SpeedyCGIソース
で同条件のベンチを取ってみます。
cが大きくなった場合が違う?
今度はmod_speedycgiもとれるかと。
余裕があればFastCGIも追加します。
284:267
06/06/26 00:30:33
↑トリップ282×→267○
285:nobodyさん
06/06/26 07:53:28
>>283
これ読んで気づいたけど、今回のS;peedyCGIは、mod_speedycgiではなかったんですね。
それから、mod_perl workerはRegistryだと思うけど、PerlRunの結果と、1回で良いから、
同一内容のhtmlを静的コンテンツとして取り出した際の値も併記してもらえれば嬉しい
です。
286:267
06/06/26 09:34:03
>>285
了解。
実運用のNicky!のデータを吸い込ませたので、同一内容のhtmlは元々有ります。
ただ、mod_perlと併用した場合とかなると条件をどうするか面倒なのでできれば静的コンテンツ単体で取りたいです。
複雑なものは、基本的なものが揃ってから。
後、ディストリはGentooがよかったかな。
ちょっと構築に時間がかかるけど。
287:nobodyさん
06/06/26 20:13:13
-n 20 -c 200って変じゃない?
200並列全体で20回のリクエストでしょ?
更に-c 20以上はmod_perlとかだとワーカを再利用しない初期化速度を計測しているような気がする。
288:267
06/06/26 20:30:46
> -n 20 -c 200って変じゃない?
http.confはいじってないのでMaxClients150のままです。
MaxClients150でc 200のときにどうなるのか興味があったので、あえて200を試しました。
> 更に-c 20以上はmod_perlとかだとワーカを再利用しない初期化速度を計測しているような気がする。
すいませんが、よく意味がわかりません。
新しくプロセスを起こしてしまっているという意味でしょうか?
私はデータを提供しただけなので、問題があれば自分で反論を証明するデータを提出してください。
少なくとも「気がする」というような反論は勘弁してもらいたいです。
289:267
06/06/26 20:41:23
あと、データ提供時に説明不足な点がありました。
perlcc -Bの時に2回目からクラッシュするパターンが多いですが、
実はこれは1回目が終わったあと動作が異常に重くなっていました。
恐らくCPU全開が数分間続くパターンに入っていたと思います。
次回検証します。
後、mod_perlの1回目がロースコアかつクラッシュが多い点について。
私見ですが、mod_perlはperlインタープリタを複製するのに、Apacheのプロセスを複製する必要があります。
当然1回目の起動コストは高くなると思います。
290:nobodyさん
06/06/26 22:49:50
>>288
>>287 が言っている事は、
-n 20 -c 200 だと、200回の同時接続要求を出すのに、全体のリクエスト数が
それ以下の20回と言うのはおかしい。nの値は、cより大きい筈ではないか、
ではないかと思います。
もし、同時接続200を20回繰り返すという意図なら、-n 4000 -c 20 という感じか
なと。(abが、リクエスト完了の後、すぐに次のリクエストを発行すれば、-n 4000
が、この意図を満たすのに適当な値ではないのですが)
ちなみに、n < c の場合、少なくとも、c回のリクエストは発行する様です。
291:nobodyさん
06/06/27 00:20:58
こんな場所に匿名で貼られたオナニーベンチなんかだれも信用しないし、
べつにどんな方法でどうでもいいんじゃないかな。
292:nobodyさん
06/06/27 03:14:50 I9hdLSDQ BE:189656-#
>>291
嘘をつくメリットもないので、
参考にはなると思いますよ。
293:nobodyさん
06/06/27 03:21:02
ひろゆ子、このスレにいたのか・・・
294:nobodyさん
06/06/27 03:27:58
>同時接続200を20回繰り返すという意図なら、-n 4000 -c 20 という感じかな
-n:リクエスト数
-c:同時接続数
で、-n 20 -c 200 とか思ってたけど、奥深いんやね
295:nobodyさん
06/06/27 04:02:48
>>292
嘘をつくメリットがないと、参考になるというのは、すごくはつみみですね。
296:245
06/06/27 04:46:08 z6n+0wh9
動機がないと犯人にしづらいというのと同じだろ。
297:267
06/06/27 05:02:55
>>287
>>290
失礼。
>290のいう通りの間違い。
やり直します。
298:nobodyさん
06/06/27 10:09:21 BE:176880454-#
ab -n 20 -c 20 までの結果を見ても
mod_perlはでかいメモリ間コピーをするから遅いってのが分かるじゃん
299:nobodyさん
06/06/27 10:39:42
>>291
そもそも、ベンチの結果なんて取り方によって変わって来るわけで、
267が書いている結果を、そのまま鵜呑みにする事は間違った判断
だと思う。その意味では、私も「信用」はしていない。
しかし、オナニーベンチの積み重ねで、一般的な傾向は見えると思う
ので、「参考」になるとは思っている。
また、今までCGI、SpeedyCGI,FastCGI,mod_perlを比較したベンチを
目にする機会があまりなかったので、ネット上の情報を見て、
CGI << SpeedyCGI < FastCGI < mod_perl(Registry)
だと思い込んでいたが、SpeedyCGI,FastCGI,mod_perlの速度は大差
がなく、順番だって怪し事が分かった事は、とても良かったと思う。
ちなみに、このスレを最初から読めば、267が匿名とは言い難い気がする。
300:nobodyさん
06/06/27 11:17:41
十分参考になってるよ。
ありがと>>267
301:nobodyさん
06/06/27 11:32:54
俺も感謝してるぜ。難癖付けるやつはどこにでもいるだろうから気にしないで欲しい。
302:nobodyさん
06/06/27 11:34:55 BE:72171432-#
難癖つけてるのは一人。
それもmod_perl厨w
303:nobodyさん
06/06/27 18:14:29
>>268
URLリンク(perldoc.jp)
のFAQには、
> ・データベースへの接続を持続させたままにするにはどうすればよいですか?
>
> グローバルの値は実行をまたがって保持されるので、これを行う一番よい方法は接続を
> グローバル変数に格納し、実行のたびにその変数が既に定義されているかをチェックする
> ことです。
と書いてある。
304:nobodyさん
06/06/28 01:04:03
> ちなみに、このスレを最初から読めば、267が匿名とは言い難い気がする。
URLリンク(dictionary.goo.ne.jp)
> 自分の実名を隠してあらわさないこと。また、実名を隠して別の名を用いること。
匿名とは何か、定義を教えていただきたい。
305:nobodyさん
06/06/28 01:51:08
>>304
> 匿名とは何か、定義を教えていただきたい。
自分の実名を隠してあらわさないこと。また、実名を隠して別の名を用いること。
306:nobodyさん
06/06/28 02:08:26
難癖厨
307:268
06/06/28 03:14:36
>>303
アザース
mod_speedycgiもメモリ使用量が肥大しないようなので
今動かしてるシステムをmod_speedycgiに移行させる予定。
mod_speedycgiのレポートはこれからかな?
ググみたけど障害系のレポートが見つからなかったのが不安
308:nobodyさん
06/06/28 09:43:30 BE:247632847-#
専門系板の名物だな
309:nobodyさん
06/06/28 18:03:20
>>307
mod_speedycgiが入ってないのは、worker下ではエラーになったからです。
preforkで取るつもりです。
現在は、workerを取り直し中です。
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
404:402
06/07/02 03:27:00
ab -n 400 -c 40
fast_hello.pl nicky.cgi改 hello.html nicky.html
1回目 80.74 7.38 501.38 385.98
2回目 80.67 7.38 538.61 389.09
3回目 81.04 7.38 524.94 388.81
4回目 81.28 7.39 530.10 364.66
5回目 81.20 7.39 547.67 386.51
3点平均 80.99 7.38 531.22 387.10
Requests per second
ab -n 1000 -c 100
fast_hello.pl nicky.cgi改 hello.html nicky.html
1回目 79.60 7.16 523.19 386.82
2回目 80.89 6.91 532.83 394.17
3回目 80.15 6.83 559.98 403.73
4回目 81.76 6.95 527.91 386.09
5回目 80.55 7.17 548.08 387.12
3点平均 80.53 7.01 536.27 389.37
Requests per second
ab -n 1500 -c 150
fast_hello.pl nicky.cgi改 hello.html nicky.html
1回目 73.97 6.97 531.91 390.80
2回目 74.34 6.50 546.51 392.37
3回目 74.77 6.94 528.98 393.63
4回目 73.94 6.52 520.37 392.40
5回目 73.49 6.96 541.37 387.22
3点平均 74.08 6.81 534.09 391.86
Requests per second
405:402
06/07/02 03:33:58
ab -n 2000 -c 200
fast_hello.pl nicky.cgi改 hello.html nicky.html
1回目 72.94 6.76 508.09 387.18
2回目 72.54 6.75 519.62 387.63
3回目 72.72 6.77 517.59 383.83
4回目 72.96 6.43 528.62 381.39
5回目 72.59 6.27 509.80 388.59
3点平均 72.75 6.65 515.67 386.21
Requests per second
406:402
06/07/02 03:38:35
MAX、MINを除外した平均値
lighttpd
hell world、nicky.cgi改
fast_hello.pl nicky.cgi改 hello.html nicky.html
ab -n 10 -c 1 81.18 7.53 425.63 293.40
ab -n 100 -c 10 81.17 7.43 561.63 396.52
ab -n 200 -c 20 79.96 7.46 534.53 395.08
ab -n 400 -c 40 80.99 7.38 531.22 387.10
ab -n 1000 -c 100 80.53 7.01 536.27 389.37
ab -n 1500 -c 150 74.08 6.81 534.09 391.86
ab -n 2000 -c 200 72.75 6.65 515.67 386.21
Requests per second
407:402
06/07/02 03:39:08
以上、報告終了。
408:nobodyさん
06/07/02 03:41:42
>>390
メモリ食うからpreforkだと起動コストが高くなるってだけ。workerにすればmod_perlが最速。
・・・だといいな。
409:nobodyさん
06/07/02 06:47:26 rDIMAYNl
はげしく乙です!!!!!!!!!!!!!!!!!! >>407
410:nobodyさん
06/07/02 06:48:00 rDIMAYNl
すごすぎて、もう一回書いちゃおう。
禿げ上がるほど乙です!!! >>407
411:nobodyさん
06/07/02 10:25:42
>>402
お疲れ様でした。
lighttpdの静的コンテンツの出力は、噂通りに速いですね。
ただ、FastCGIのhelloWorldな動的コンテンツでは、Apacheの方が速い。
でも、この差はソースが大きくなると見えなくなるので、実質問題にならない
差ですね。
RoR界隈では、lighttpd+FastCGIが流行っている様ですが、動的コンテンツ
の速度はApacheとほとんど同じだけど、静的コンテンツの速度が速いので
トータルで速くなると言う事なのか、インストールが簡単なのか、それとも他
の理由があるのか、どうなんでしょう。
ところで、lighttpdは、普通のcgiは出来ないんでしょうか?
412:402
06/07/02 11:51:36
>>411
lighttpdは普通のcgiもできます。
測定しなかったのは興味がなかったのと、遅いので時間がかかるのがいやというだけです。
ちょっとワガママが入ってます。
413:nobodyさん
06/07/02 12:07:51
>>412
通常のCGIは、どうでも良かったりしますが、lighttpd + SpeedyCGIは興味があるかなと。
414:402
06/07/02 12:13:08
>>413
了解です。
lighttpd + SpeedyCGIも追加します。
415:nobodyさん
06/07/02 15:51:41
測定に使ってるマシンのスペックはどうなんだろう。ターゲットマシンだけじゃなくて、クライアントのPCもそれなりに高性能じゃないといけないと思うけど。
416:nobodyさん
06/07/02 16:01:25
ポカーン
417:nobodyさん
06/07/02 16:38:15 BE:212257038-#
"差"を計ってるのにスペックとな
418:nobodyさん
06/07/02 16:46:53
(○口○*) ポーカン
419:nobodyさん
06/07/02 18:19:12
>>415
クライアントの差が出るとすると、-c 1 より -c 10 の方が高い成績を出している
l静的コンテンツ取得の所位じゃない?
リクエストの応答を受けてから、次のリクエストまでの時間を多少稼げる。
ただ、動的コンテンツ取得については、さほど意味のある値ではないと思う。
420:402
06/07/02 20:18:01
>>415
すいません。
急用で外出していました。
測定条件の記入漏れです。
localhostで測定しています。
つまり、サーバーマシン=クライアントマシンです。
421:nobodyさん
06/07/02 20:37:17
abってすごく負荷かかるんだよ。ターゲットマシンとサーバマシンは分けるのが普通。
まあ、簡易に測定する場合は同一マシンでやっちゃうこともあるけど。
422:nobodyさん
06/07/02 21:00:23
分けてもカニるチップなLANカードじゃパケットの取りこぼしと再送の誤差が入るし。
423:402
06/07/02 21:05:35
すいません。
まずかったかな。
424:402
06/07/02 21:18:01
まあ、あれこれ言っても今更仕方がないし傾向をみるためだけのものと思ってください。
どのみちベンチは個々の環境に左右されるので。
後、もう少し待ってください。
lighttpdのSpeedyCGIとCGIのベンチ終わります。
425:nobodyさん
06/07/02 21:32:03
別にいいんでね?>localhost
マシンの性能計ってるわけじゃないし
426:nobodyさん
06/07/02 22:04:59
エビにどれだけ喰われてるかが気になるが、
427:nobodyさん
06/07/02 22:13:04
200クライアントとか安ルータでは厳しい。
428:nobodyさん
06/07/02 22:15:55
直結でもしない限り、ルータでレスポンス低下とかね。
429:nobodyさん
06/07/02 22:20:09
K6-2 475MHz
512MB
Vine3.2最小インストール+コンパイル環境
+lighttpd-1.4.11ソース+fcgi-2.4.0ソース
テストソース
S hello world(>367-368)
L nicky.cgi改
以下、結果報告。
430:429
06/07/02 22:23:16
ab -n 10 -c 1
CGI S CGI L SpeedyCGI S SpeedyCGI L
1回目 29.65 0.46 34.28 2.37
2回目 29.65 0.46 40.63 7.34
3回目 29.64 0.46 42.76 7.34
4回目 29.64 0.46 42.71 7.35
5回目 29.49 0.46 42.47 7.36
3点平均 29.64 0.46 41.94 7.34
Requests per second
ab -n 100 -c 10
CGI S CGI L SpeedyCGI S SpeedyCGI L
1回目 27.93 0.45 39.92 5.53
2回目 28.49 ABORT 40.25 6.87
3回目 27.07 0.45 38.74 6.85
4回目 27.88 0.45 41.55 6.76
5回目 27.55 0.45 39.25 6.72
3点平均 27.79 0.45 39.81 6.78
Requests per second
ab -n 200 -c 20
CGI S CGI L SpeedyCGI S SpeedyCGI L
1回目 27.83 ABORT 38.94 5.63
2回目 29.22 ABORT 40.63 6.58
3回目 27.79 ABORT 39.02 6.82
4回目 28.04 ABORT 40.86 6.96
5回目 28.65 ABORT 37.50 6.69
3点平均 28.17 #DIV/0! 39.53 6.70
Requests per second
431:429
06/07/02 22:30:12
ab -n 400 -c 40
CGI S CGI L SpeedyCGI S SpeedyCGI L
1回目 27.78 ABORT 40.24 5.86
2回目 27.71 ABORT 39.33 6.95
3回目 27.92 ABORT 39.44 6.66
4回目 27.50 ABORT 40.26 6.71
5回目 27.52 ABORT 39.55 6.76
3点平均 27.67 #DIV/0! 39.74 6.71
Requests per second
ab -n 1000 -c 100
CGI S CGI L SpeedyCGI S SpeedyCGI L
1回目 28.61 ABORT 37.56 6.03
2回目 28.16 ABORT 40.09 6.42
3回目 27.91 ABORT 39.45 6.54
4回目 27.26 ABORT 36.94 6.55
5回目 27.66 ABORT 39.12 6.60
3点平均 27.91 #DIV/0! 38.71 6.50
Requests per second
ab -n 1500 -c 150
CGI S CGI L SpeedyCGI S SpeedyCGI L
1回目 27.98 ABORT 38.02 6.11
2回目 28.02 ABORT 38.09 6.67
3回目 27.50 ABORT 38.17 6.48
4回目 27.03 ABORT 36.71 6.48
5回目 26.88 ABORT 37.58 6.47
3点平均 27.50 #DIV/0! 37.90 6.48
Requests per second
432:429
06/07/02 22:31:23
ab -n 2000 -c 200だけもう少しお待ちを。
433:429
06/07/02 22:38:08
×fcgi-2.4.0ソース
○PersistentPerl-2.22ソース
434:429
06/07/02 22:44:58
ab -n 2000 -c 200
CGI S CGI L SpeedyCGI S SpeedyCGI L
1回目 26.36 ABORT 37.97 6.41
2回目 27.70 ABORT 38.01 6.90
3回目 27.72 ABORT 38.17 6.99
4回目 26.38 ABORT 35.61 7.00
5回目 26.89 ABORT 38.00 6.89
3点平均 26.99 #DIV/0! 37.99 6.93
Requests per second
435:429
06/07/02 22:50:29
MAX、MINを除外した平均値
lighttpd
S(hell world)、L(nicky.cgi改)
CGI S CGI L SpeedyCGI S SpeedyCGI L fastcgi S fastcgi L html S html L
ab -n 10 -c 1 29.64 0.46 41.94 7.34 81.18 7.53 425.63 293.40
ab -n 100 -c 10 27.79 0.45 39.81 6.78 81.17 7.43 561.63 396.52
ab -n 200 -c 20 28.17 abort all 39.53 6.70 79.96 7.46 534.53 395.08
ab -n 400 -c 40 27.67 abort all 39.74 6.71 80.99 7.38 531.22 387.10
ab -n 1000 -c 100 27.91 abort all 38.71 6.50 80.53 7.01 536.27 389.37
ab -n 1500 -c 150 27.50 abort all 37.90 6.48 74.08 6.81 534.09 391.86
ab -n 2000 -c 200 26.99 abort all 37.99 6.93 72.75 6.65 515.67 386.21
Requests per second
436:429
06/07/02 22:51:24
以上、報告終了。
437:nobodyさん
06/07/02 22:53:09
windows版のApacheをインストールして、 ab.exeを使えばいい。
同時接続数100とかでやると、タスクマネージャのCPU使用率がぐわっとあがるのがわかる。
438:nobodyさん
06/07/02 22:57:54
>>437
どのアクセラレータもその影響をうけるんだから、比較には問題なくない?
あと、>427も言ってるが今度はルータの影響受けるんでPC間直結になると思うが。
439:429
06/07/02 23:06:24
lighttpd+FastCGIの補足。
この組み合わせの動的呼び出しは、方法が見つからなかったのでlighttpd.confに記述してlighttpdと同時に対象CGIを起動。
1回目のキャッシュクリアはせず。
このため、1回目の起動でスコアが落ちてません。
3点平均でご勘弁を。
またSpeedyCGI Lのab -n 2000 -c 200のスコアが変だったのでSpeedyCGI L全部取り直しましたが同じでした。???
440:429
06/07/02 23:09:26
>>439
> 1回目のキャッシュクリアはせず。
方法がよくわからなかったと言うのが本当のところです。
lighttpd再起動でよかったのかな?
441:nobodyさん
06/07/02 23:12:25
>>438
影響どころか気絶するルータもある
442:nobodyさん
06/07/02 23:17:36
>>437
ネットワークを酷使すればCPU使用率急上昇は普通。
そのCPU使用率はab.exeのものと確認済み?
443:nobodyさん
06/07/03 01:27:55
この初心者スレの存在意義って何だろう?
444:nobodyさん
06/07/03 01:45:16
Speedyが同時多発接続でgdgdになってきてるのはエビに食われてるからだと思うんだよね。
445:nobodyさん
06/07/03 01:58:48
>>429
度々、御苦労様です。
静的コンテンツについては、lighttpdが圧勝、動的コンテンツについては、hello Worldで見る
分には、mod_cgi下で動く、通常のCGIとSpeedyCGIについては、lighttyがやや速く、mod_fastcgi
下では、Apacheがやや速いという結果の様ですね。
スクリプトが大きくなると、その差は消えてしまいますが。
lighttpdは、静的コンテンツについては魅力的だけど、mod_speedycgiが無いから、perl使う
分には、Apache使っていた方が良いかなと思いました。
ちなみに、Hello Worldでテストする分には、mod_speedycgiより、PHPの方が速いんですが、
ソースが大きくなるにつれて、perlに抜かれちゃうんですよね。
446:nobodyさん
06/07/03 12:04:55
>>444
> Speedyが同時多発接続でgdgdになってきてるのはエビに食われてるからだと思うんだよね。
んだな。
が、他クライアントをつなぐと今度はNICにCPU食われる。
結局はNICのCPU消費とどっちが大きいかだけの違いでねえ?
いいんでねえ、localhost。
447:nobodyさん
06/07/03 12:54:22
NIC食うからねえCPU。
URLリンク(www.nicmania.net)
448:nobodyさん
06/07/03 19:21:39
> この初心者スレの存在意義って何だろう?
それは、何だ、Javaと並ぶ巨大宗教Perlの莫大な遺産の活用じゃない。
449:nobodyさん
06/07/03 22:39:17
CPU100%にならないように気をつけながらベンチマークとるのが普通なんだが。
まあ、まるで役にたたないとは言わないが、仕事でやるなら最初からやり直させるな。
450:nobodyさん
06/07/03 22:47:49
はぁ?
451:nobodyさん
06/07/03 22:49:14
ベンチとるときはCPU振り切れるのが普通。
452:nobodyさん
06/07/03 22:49:51
それがベンチ
453:nobodyさん
06/07/03 22:50:43
>>448
つーか、
スレリンク(php板)
あたりに書くつもりだった誤爆じゃない?
書き込み時刻を見ると、なんとなく辻褄が合う。
スルーしなくっちゃ。
ここのスレは、おそらく住人が10人以下の人里離れた小さな村。
普通の初心者は近付かない。
454:nobodyさん
06/07/03 22:56:10
>>449
> CPU100%にならないように気をつけながらベンチマークとるのが普通なんだが。
処理をフル回転で速く終わらせ、スコアを競うのがベンチマークw
455:nobodyさん
06/07/03 23:04:14
>>453
センセー、質問。
「なぜに他のスレとの辻褄まで調べてるんですか?」
456:nobodyさん
06/07/03 23:06:38
だから、クライアントのCPUが100%にならないように、に決まってるだろ。そんなのいちいち説明しなくてもわかりそうなもんだが。
457:nobodyさん
06/07/03 23:06:39
>>455
調べる事が好きだから。
458:nobodyさん
06/07/03 23:09:05
>>456
>449のカキコでは誰もそうは思わんよ。
459:nobodyさん
06/07/03 23:11:27
>>457
一番スルーしてなくない?
460:nobodyさん
06/07/03 23:12:36
>>459
若干の自己矛盾を感じている。orz
461:nobodyさん
06/07/03 23:15:01
>>460
ウケルー
メチャ、センスある
462:nobodyさん
06/07/04 02:20:16
>447のサイトのメインP、Pen4 2.4Gだよ。
エビとニクどっちが食うんだろう?
463:nobodyさん
06/07/04 02:21:17
↑メインP→メインPC
464:nobodyさん
06/07/05 12:19:01
マシンのベンチを取るスレはここですか?
465:nobodyさん
06/07/05 18:20:09
↑ベンチをすれば当然マシンのベンチでもあるなw
466:nobodyさん
06/07/06 02:34:15
>>445
>ちなみに、Hello Worldでテストする分には、mod_speedycgiより、PHPの方が速いんですが、
PHPの環境は?まさか普通のapacheモジュール版と比較したりしてないよね?
467:nobodyさん
06/07/07 20:11:33 hqAFRSkq
WebProg板のスレだというのに、1日書き込みがないだけで気になる。
468:nobodyさん
06/07/07 23:42:15
>>466
まさかの普通のapacheモジュール版ですが、このケースで比較対象として問題あります?
469:nobodyさん
06/07/07 23:55:24
>>468
ノープロブレム。
文脈からして、当然そうだよな。
470:nobodyさん
06/07/08 00:11:01
mod_speedycgiのHello WorldにはCのHello Worldも負けてるのになあ。
471:nobodyさん
06/07/08 11:43:01
>>470
PHPは、短いソースでは速いですね。
ちなみに、apxs -g -n hello とかで出来る、hello worldなソースをmake;make installすると、
私がちょっとテストした環境で、mod_speedycgiの2.5倍程度の速度が出ました。
Cを使うなら、handler書くのが良いのかなと思いました。
そこからすると、mod_perlも、Registry使わずに、handlerな形にすると、順位に変動が
ある様な気もしています。
まあ、アプリが大きくなれば吸収されてしまう差なので、速度の為だけにそうする必要が
あるケースは稀でしょうが。
472:nobodyさん
06/07/08 16:05:57
このスレを見て、MovableTypeでspeedyCGIを使いたいと思って
apache1.3の環境でspeedyCGIを入れ、mt.cgiの先頭を書き換えて実行してみました。
1回目は無事表示されるんですが、リロードするとInternalServerErrorが。
何かインストールで失敗してるんでしょうか…?
473:nobodyさん
06/07/08 16:45:31
ここはそういうスレではないです
474:nobodyさん
06/07/08 18:54:22 uy7Z+OsL BE:341069-#
>>472
mtの前に、hello.cgiとか動かしてみればいいんでないすか。
475:nobodyさん
06/07/08 19:13:56
>>471
何か内容が反対に受け取られてるような気が?
補足すると
mod_speedycgiのHello WorldにはCのHello Worldも負けてるのに
比較対照がノーマルPHPなわけはないだろう。
こう言いたかったのよ。
476:472
06/07/08 19:20:32
>>473
質問スレではないかもしれないとは思ったのですが、
皆さんはかなりお詳しいと思い、悩んだのですが思い切って質問させていただきました。
気分を害しましたら、ごめんなさい。
>>474
レスありがとうございます。
「hello.cgi」というのは、要するにテスト用のcgiを作成して、ということでよろしいですか?
googleなどでヒットするhello.cgiを試しに作ってみて、先頭部分を# !/usr/bin/speedyと
書き換えてみましたところ、無事リロードしても表示されました。
となると、問題はmt.cgiなのでしょうか…?
googleでいろいろ調べまくったのですが、どうも有益な情報が見つかりません。
movabletypeでspeedyCGIを動かしている方々、どうぞお知恵を拝借ください…。
477:nobodyさん
06/07/08 19:56:46
>>476
>1回目は無事表示されるんですが、リロードするとInternalServerErrorが。
グローバル変数の初期化ができてない典型のように思えますが、
そのmtはmod_perlやFastCGIでは正常に動き、SpeedyCGIのみ動かない状態でしょうか?
mtは触ったことがないですが、mod_perlかどうか判定してコードを切り替えているという事は聞いた事があります。
≠mod_perlの判定のためCGI用のコードが実行されている?
後、mtはSpeedyCGIよりFastCGIの方が情報が多いので楽かも。
URLリンク(as-is.net)
ここが有名。
478:nobodyさん
06/07/08 20:47:04 BE:53064623-#
MTのコードちょっと覗いてみたら
mod_perl用に条件分岐しまくりワロタ
479:471
06/07/08 20:48:33
>>475
mod_speedycgiのHello WorldにはCGI/CのHello Worldも負けてるのに
比較対照がCGI/PHPなわけはないだろう。
と言う意味で解釈していたのですが、これで良いんですよね?
処理系の速度としては、C > perl > PHP というのは周知の事実。
PHPが速いと言われるのは、Apacheのmoduleとして動かしているからで、
この起動速度は、PHPが速く、小さいコードでは、その差が効いてPHPが
速い。
この先は触れていないんですが、、コードが大きくなると、処理系の遅さが
効いてきて、perl系に抜かれるという意味で書いてました。
480:475
06/07/08 20:58:10
>>479
すまそ。
正確に把握されてたのね...
481:472
06/07/08 21:07:45
>>477
レスありがとうございます。
FastCGIは試していないのですが、mod_perlをインストールする際にエラーが出て
インストールできなかったので、他の方法がないのかと探していてこのスレへたどりつきました。
ここを見ていると、mod_perlはいまいち評価が高くないように感じ、speedyCGIを試していたところでした。
>グローバル変数の初期化ができてない典型のように思えますが、
まさにそうだと思うのですが、対処法がわかりません…。
参考サイトを見ながら、FastCGIの導入を勉強してみます。
レスどうもありがとうございました。大変助かりました。
482:477
06/07/08 21:22:44
>>481
あえてSpeedyCGIを試すなら、mod_perl判定フラグをtrueにすればいいのではないかと思いますが。
SpeedyCGIとFastCGIはメモリ消費も速度も近いので、楽な方を選ぶべきだと思います。
483:477
06/07/08 21:49:31
>>481
後、忘れていました。
FastCGIはScriptAliasがかかっているDirでは正常に動かないです。
mtのインスコ先にScriptAliasがかかっている場合は外してしまって、
変わりに
Alias /cgi-bin/ "......."
<Location /cgi-bin/>
AddHandler cgi-script .cgi
fastcgi-script .fcgi
.....
</Location>
のような感じで設定したらいいです。
484:477
06/07/08 21:50:32
×fastcgi-script .fcgi
○AddHandler fastcgi-script .fcgi
485:477
06/07/09 00:58:13
後、
×<Location /cgi-bin/>
○<Location /cgi-bin>
もう一つ、
URLリンク(as-is.net)
の通りにやるなら、
AddHandler fastcgi-script .fcgi
これは要らないです。
間違いだらけ、本当にすいません。
486:477
06/07/09 01:02:01
また間違いました。
AddHandler fastcgi-script .fcgi
やっぱり要ります。
連投しまくり、すいません。
487:472
06/07/09 01:17:20
>>477
477さん、いろいろとありがとうございます。
あれからひたすら何度も試しているのですが、実は全然うまくいきません(つД`)
Apache1.3にfcgiとmod_FastCGIを適用させようとしているんですが、エラーが…。
httpd.confに以下の内容を書き込んでapacheを再起動します。
LoadModule fastcgi_module libexec/apache/mod_fastcgi.so
AddModule mod_fastcgi.c
<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
FastCGIConfig -maxClassProcesses 4 -minProcesses 1
FastCgiIpcDir /tmp
</IfModule>
すると、
Syntax error on line 206 of /usr/local/apache/conf/httpd.conf:
Invalid command 'LoadModule', perhaps mis-spelled or defined by a module not included in the server configuration
とエラーが返されます。サイトの説明通りにやっているんですが…。
488:477
06/07/09 01:43:44
>>487
> LoadModule fastcgi_module libexec/apache/mod_fastcgi.so
エラーログの指摘だとこの行のエラーですよね。
多分、>487さんの環境では、
LoadModule fastcgi_module modules/mod_fastcgi.so
これでいいんではないかと思います。
489:487
06/07/09 02:10:48
>477さん
いろいろとありがとうございます(つД`)2chでこんなに親切にされたの初めてです。
477さんのおっしゃるとおり試してみたのですが、またエラーが出てしまいました。
明日改めてfastcgiを入れ直してみようかと思います。
それで、もしよろしければこちらの板でずっと続けてしまうと皆さんにご迷惑をおかけしているような
気もしますので、メールで教えていただけませんでしょうか…。
もう、藁にもすがる思いなんです…。
メアド欄にアドレスを入れましたので、もしよろしければお返事ください。
本当にありがとうございました。