2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

【激速】mod_perl SpeedyCGI FastCGI【激速】

1 :nobodyさん:2006/06/05(月) 20:01:09 ID:+YcYjDiD.net
mod_perl
http://perl.apache.org/

SpeedyCGI
http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod

前スレ
mod_perlを使おう!
http://pc8.2ch.net/test/read.cgi/php/1005122528/

ー二三ヘ( ゚∀゚)ノ

2 :nobodyさん:2006/06/05(月) 20:05:13 ID:???.net ?#
僕の肛門も高速化されそうです

3 :nobodyさん:2006/06/05(月) 20:31:26 ID:???.net
mod_perlを04Webserverで使用してみたいのですが、
mod_perl.dllの仕様、使い方について解説されている
ページとか有りませんか?

4 :nobodyさん:2006/06/05(月) 23:59:14 ID:???.net
そんな馬鹿なことせずに apache 使えばよろし。

5 :nobodyさん:2006/06/06(火) 21:19:24 ID:???.net
SpeedyCGI使えばPerl側だけの問題で済ませるやん。

6 :nobodyさん:2006/06/07(水) 16:43:05 ID:2I/qpjTz.net
前スレに書いちゃって、誘導されてきました。前スレ995です。
↓こういう質問なんですが・・・。


mod_perlを設定中な者ですが、一つどこのサイトにも明示的には書いてない気が
して、あきらかにしたいんですが、、、

ModPerl::Registry を使って .cgiを動かしても、その.cgiファイル内からuseしたり使
っているモジュールは、別途PerlRequireで指定のスクリプト内でuseしてロードしな
ければならないのでしょうか?

現在実験している環境だと、PerlRequire経由でuseでロードしないモジュールは、
perl-statusの "Loaded Modules"には出てきません。僕の勝手な想像では、
「ModPerl::Registryが呼び出した.cgiがuseしているモジュール」は、適宜ロード
されて、perl-statusにも表示されるんじゃないかと予想していたんですが、それは
ちがうんでしょうかね?

当方の設定ミスなのか、仕様なのかがいまいちはっきり分らないので、聞いてみます。。。

7 :nobodyさん:2006/06/08(木) 20:07:46 ID:???.net
どのタイミングで、どのプロセスが、モジュールを読みこんでいるのか?
どのプロセスが読み込み済みのモジュールをチェックしようとしているのか?

ってのを意識しながら動作検証するといいといいんじゃない?


8 :nobodyさん:2006/06/13(火) 00:27:19 ID:???.net
mod_perl時の場合END{}はプロセスが終了した時のみに実行されますが
mod_perl時にPerl/CGIのEND{}と同様の事をしたい場合どうするのが一番良いのでしょうか。

9 :nobodyさん:2006/06/13(火) 00:58:15 ID:???.net
>>8
mod_perlにそういうhookが用意されていないと無理

10 :nobodyさん:2006/06/13(火) 01:02:12 ID:???.net
たいていオブジェクト指向バリバリで書くからsub DESTROYでも用意しておけばいいんじゃね?

11 :8:2006/06/13(火) 02:41:06 ID:???.net
了解です、ありがとうございます。
取りあえず
*CORE::GLOBAL::exit = sub { hogehoge(); \&Apache::exit } if$ENV{MOD_PERL};
のようにしてexitをオーバーライドしてexitの前に割り込ませる事にしました。
どんな処理でも必ずexitされるわけではないですけど。

12 :nobodyさん:2006/06/13(火) 05:42:25 ID:dXS5mc+F.net ?#
mod_perlをapacheで走らせてるときに、
apacheのerror_logに任意のテキストを出力したりすることって
出来るんでしょうか?

13 :nobodyさん:2006/06/13(火) 06:11:59 ID:???.net
stderrにprintしる!

14 :nobodyさん:2006/06/13(火) 06:30:45 ID:Nn2106Uk.net
mod_perlなら
http://search.cpan.org/~gozer/mod_perl-1.29/Log/Log.pm
これ。

mod_perl2なら
http://search.cpan.org/~pgollucci/mod_perl-2.0.2/docs/api/Apache2/Log.pod
これかな?

15 :nobodyさん:2006/06/13(火) 06:49:31 ID:dXS5mc+F.net ?#
おぉ、どうもですー。

16 :nobodyさん:2006/06/13(火) 12:49:11 ID:???.net
Log4perl とか使えば、あんなことやこんなことできるんでは?

17 :nobodyさん:2006/06/13(火) 20:23:39 ID:???.net
前スレから疑問なんだけど、なぜにSpeedyCGIではなくmod_perlなの?
両方使ったが、
1.体感スピード
  同じ
2.メモリ消費
  愕然とするほどの差
3.導入の障害
  圧倒的にSpeedyCGI有利

どちらもPerl専用アクセラレータだけどわざわざ選ぶメリットが見つけられん。

18 :nobodyさん:2006/06/13(火) 20:36:37 ID:???.net
Apachモジュールをperlで書けるからでしょ。

19 :nobodyさん:2006/06/13(火) 20:39:24 ID:???.net
> 2.メモリ消費
>   愕然とするほどの差

何か間違えてない?

20 :nobodyさん:2006/06/13(火) 21:03:44 ID:???.net
>>18
> Apachモジュールをperlで書けるからでしょ。
でしょうね。
アクセラレータとして使うメリットはみつけられない。

>>19
> > 2.メモリ消費
> >   愕然とするほどの差
>
> 何か間違えてない?
そのままお返しします。
mod_perlをはじめて使った時は感動したが、後で愕然とした。
しかも太る一方。
topコマンドを叩いたら、10MB超のアパッチプロセスが10個以上並んでいた。
そのまま使い続けたが、他のアプリがスワップしはじめガリガリいいだしたのでSpeedyCGIに変えた。


21 :nobodyさん:2006/06/13(火) 21:05:17 ID:???.net
しかも太る一方。
topコマンドを叩いたら、10MB超のアパッチプロセスが10個以上並んでいた。

↑間違い
topコマンドを叩いたら、10MB超のアパッチプロセスが10個以上並んでいた。
しかも太る一方。

22 :nobodyさん:2006/06/13(火) 22:00:36 ID:???.net
> mod_perlをはじめて使った時は感動したが、後で愕然とした。
> しかも太る一方。
> topコマンドを叩いたら、10MB超のアパッチプロセスが10個以上並んでいた。

apache の設定がわからんからといって、mod_perl のせいにしてはいかんよね。

23 :nobodyさん:2006/06/13(火) 22:09:37 ID:???.net
>>22
めちゃくちゃ言うなあ。
mod_perlをoffにしてapache再起動したら、通常のサイズに戻ったが。

逆にそちらではどれくらいのサイズなんだ?

24 :nobodyさん:2006/06/13(火) 22:13:19 ID:???.net
>>23
> めちゃくちゃ言うなあ。

どこらへんが滅茶苦茶なのだろう。

> mod_perlをoffにしてapache再起動したら、通常のサイズに戻ったが。

そうでしょうね。

> 逆にそちらではどれくらいのサイズなんだ?

アプリケーションの規模によるよね。

25 :23:2006/06/13(火) 22:15:54 ID:???.net
mod_perlでApacheが太るからわざわざリバースプロキシ使ってるんではなかったのか?
mod_perlに限らずmod_php、mod_ruby等もメモリの食いっぷりがすごいが。

26 :22, 24:2006/06/13(火) 22:19:13 ID:???.net
mod_perl 等を使う時は、フロントエンドとバックエンドに分けて使う。
フロントエンドで画像等をさばき、それ以外のものをバックエンドに送る。

バックエンド側で起動する perl のプロセスは、積んでいるメモリで決める。
そこらへん、mixi なり hatena bookmark なりの資料探して読むとわかるとおもう。

27 :23:2006/06/13(火) 22:20:52 ID:???.net
>>24
あほくさ。

> > mod_perlをoffにしてapache再起動したら、通常のサイズに戻ったが。
>
> そうでしょうね。

設定正しいって事やないか。
Apacheでmod_perlのメモリの制御はできん。

> > 逆にそちらではどれくらいのサイズなんだ?
>
> アプリケーションの規模によるよね。
使った事がないんだな。
そんな単純な食い方はしない。

28 :nobodyさん:2006/06/13(火) 22:22:51 ID:???.net ?#
(・∀・)ニヤニヤ

29 :nobodyさん:2006/06/13(火) 22:23:13 ID:???.net
> Apacheでmod_perlのメモリの制御はできん。

メモリの使用量でなく、プロセスの数を調整する。
で、定期的に再起動するようなオプションあるよね。

30 :23:2006/06/13(火) 22:26:21 ID:???.net
>>26
当然そういうことだが。
言葉がうわすべりしてないか?
mod_perlでリバースプロキシ使うのは、
1.mod_perlでApacheが太り、静的サービスの反応が鈍る。
2.解決策として静的サービスには別のApacheを使う。
こういうことなんだが。

何も別マシンにリバースプロキシかけなくても静的サービスのスピード向上はできるよ。

31 :nobodyさん:2006/06/13(火) 22:27:36 ID:???.net
>>30
別マシンとはひとことも言っていませんね。


32 :23:2006/06/13(火) 22:28:56 ID:???.net
>>29
> メモリの使用量でなく、プロセスの数を調整する。
> で、定期的に再起動するようなオプションあるよね。

面白いこと言うな。
プロセスの数は調整できんよ。
ある回数起動したらプロセス死ぬ設定はできるが、プロセスの数は運まかせになるよ。

33 :nobodyさん:2006/06/13(火) 22:33:31 ID:???.net
>>31
いいわけかっこ悪い。

34 :nobodyさん:2006/06/13(火) 22:34:30 ID:???.net
http://d.hatena.ne.jp/babie/20060201/p3

35 :nobodyさん:2006/06/13(火) 22:35:32 ID:???.net
>>33
どこらへんがいいわけなのだろう。

36 :nobodyさん:2006/06/13(火) 22:37:57 ID:???.net
>>34
で君はそのページをまねて、実際にどれくらい節約できた?

37 :nobodyさん:2006/06/13(火) 22:41:06 ID:???.net
>>35
(・∀・)ニヤニヤ

38 :nobodyさん:2006/06/13(火) 22:46:22 ID:???.net ?#
(´;ω;`)

39 :nobodyさん:2006/06/13(火) 22:47:05 ID:???.net
(´・ω・`)

40 :nobodyさん:2006/06/13(火) 22:49:19 ID:???.net
>>34
http://d.hatena.ne.jp/babie/20060201/p3
何やこれ。
1.Apacheが太るので子プロセスの数を制限する。
2.静的コンテンツのスピード確保にリバースプロキシを使う。
3.Apache自体をできるだけ太らせない。
当たり前のことやんか。
何も新しいものあらへん。

41 :40:2006/06/13(火) 22:50:40 ID:???.net
というか、これではやはりSpeedyCGI以下。

42 :nobodyさん:2006/06/13(火) 22:52:30 ID:???.net
>>41
どれでは?

43 :nobodyさん:2006/06/13(火) 22:55:14 ID:???.net
mod_perl使いたきゃ、
専用の鯖がいるってことでそ。

44 :nobodyさん:2006/06/13(火) 22:57:03 ID:???.net
>>34
http://d.hatena.ne.jp/babie/20060201/p3
>テスト機で試した。MaxClients 調整前はめっさ重くなる(SSHまで!)。
>MaxClients 調整後はなんとか耐えられる。

なんとか耐えられるんだってよ。

45 :nobodyさん:2006/06/13(火) 22:57:10 ID:???.net
>>43


46 :nobodyさん:2006/06/13(火) 22:57:44 ID:???.net ?#
mod_perl厨
必死すぎ
ワロタ

47 :nobodyさん:2006/06/13(火) 22:58:02 ID:???.net
静的なもんも、動的なもんも、とりあえず一台でさばけて、
なおかつcgiも速くなるってのはどれ?

48 :nobodyさん:2006/06/13(火) 22:58:52 ID:???.net
>>47
規模を書かないと話にならないのでは?

49 :nobodyさん:2006/06/13(火) 23:00:58 ID:???.net
>>48
規模によってmod_perlがSpeedyCGIを上回ることがあんの?

50 :nobodyさん:2006/06/13(火) 23:03:30 ID:???.net
>>48
規模が大きいほどmod_perl不利。
セッション数を捌けない。
規模が小さくてもやはり不利。
無用にApacheが圧迫されている。

51 :nobodyさん:2006/06/13(火) 23:06:35 ID:???.net
FastCGIって、mod_perlやSpeedyCGIに比べるとどんなん?

52 :nobodyさん:2006/06/13(火) 23:21:03 ID:???.net
優秀。
SpeedyCGI同様にプロセス数を自由に設定できる。
Apacheと別プロセスなので、それによってApacheのMaxClientsが制限を受けない。

1.SpeedyCGIは導入は容易。
Perl内部の問題で終わらせられる。
必要ならApacheモジュールもある。

2.FastCGIはアプリ起動用スクリプトと、Apacheの設定が必要。
ただし、ほぼ言語を問わず使用できるので、言語が混在しているサイトには有利。
最近lighttpdとの組み合わせが一部で人気?

スピードはどれも意味のある差はない。

53 :nobodyさん:2006/06/13(火) 23:23:19 ID:???.net
http://www.dmst.aueb.gr/dds/pubs/conf/2002-SANE-DynCont/html/dyncont.html

54 :52:2006/06/13(火) 23:26:56 ID:???.net
mod_perlは
1.メモリの管理が非常に下手。
2.導入時にmod_perl独自の制限がある。
(カレントDirがPerlとは違う。使えない文法がある)

以上の点でSpeedyCGI、FastCGIに比べ劣るが、逆に有利な点は不明。

55 :nobodyさん:2006/06/13(火) 23:28:50 ID:???.net
FastCGI安定してるなぁ。
応用も利きそうなのでいい感じかも

56 :nobodyさん:2006/06/13(火) 23:30:20 ID:???.net
>>53
古くね?

57 :nobodyさん:2006/06/13(火) 23:30:47 ID:???.net
なんかものすごい自演だらけの予感。

58 :52:2006/06/13(火) 23:31:48 ID:???.net
>>53
ベンチはそれほど意味がないよ。
引用先も、対象ベンチ次第でで結果がころころ変わっている。
しかし、mod_perlはベンチでも負けている記事が目立つ。

59 :nobodyさん:2006/06/13(火) 23:33:48 ID:???.net
>>57
同意。

60 :nobodyさん:2006/06/13(火) 23:37:01 ID:???.net
mod_perl って 3 系統くらいあった気がするけど、だれか違いを説明きぼん。

61 :nobodyさん:2006/06/13(火) 23:38:41 ID:???.net
このスレの住人ってなぜにmod_perlにしがみつくの?
mod_perlは一体どこがアドバンテージ?

62 :nobodyさん:2006/06/13(火) 23:39:34 ID:???.net
なにをもって「mod_perlにしがみつく」ということにしたいのだろう。

63 :nobodyさん:2006/06/13(火) 23:40:50 ID:???.net
>>62
(・∀・)

64 :nobodyさん:2006/06/13(火) 23:42:15 ID:???.net
>>62
(・∀・)ニヤニヤ

65 :nobodyさん:2006/06/13(火) 23:43:55 ID:???.net ?#
出来損ないには愛着が沸くもの

66 :nobodyさん:2006/06/13(火) 23:44:02 ID:???.net
もうmod_perl専用スレじゃないのにね。

67 :nobodyさん:2006/06/14(水) 00:04:43 ID:???.net
C/FastCGIとPerl/FastCGIってどのくらい速度が違うか実践した方います?
Cの方が早いだろうけどインタープリタ部分のコストを除いた純粋な言語の速度対決なら
C/CGI vs Perl/CGIほどの差は出ないと思うのですが実際のところどのぐらい違うでしょうか。

68 :nobodyさん:2006/06/14(水) 00:05:10 ID:???.net
> mod_perlは一体どこがアドバンテージ?

必死だが、答えられないmod_perl厨は逝ってよし。

69 :nobodyさん:2006/06/14(水) 00:07:07 ID:???.net
うーん、こうやって貼り付けたくなるほど出来損ないには愛着がわくなw
http://pc8.2ch.net/test/read.cgi/php/1149089424/2

70 :nobodyさん:2006/06/14(水) 00:12:22 ID:???.net
>>67
試してないので机上の空論ですまそ。

Cはコンパイル時に非常に長い時間をかけて最適化を行うので、一瞬でコンパイルする必要があるPerlコンパイラとはやはり根本的な差があると思う。
そうでなければ、Cが今だに強い理由はないと思う。
しかし、大きく差が詰まるのは間違いないよね。

71 :nobodyさん:2006/06/14(水) 00:14:07 ID:???.net
>> そうでなければ、Cが今だに強い理由はないと思う。

Web アプリの分野で?w

72 :nobodyさん:2006/06/14(水) 00:15:49 ID:???.net
>>72
まさか。
速度が必要な分野で。
OS、DB、科学技術計算。

73 :nobodyさん:2006/06/14(水) 00:17:39 ID:???.net

>>71

74 :nobodyさん:2006/06/14(水) 00:46:51 ID:???.net
>>67
Win上で同じくネイティブコードを吐く、VBとCの速度差にビビった経験があるな。
.NETでは言語間の速度差はほぼ無いようだが。

75 :nobodyさん:2006/06/14(水) 01:56:44 ID:???.net
本格的に大規模なサイトだと、重い処理はCで書いて、それをPerlやPHPから使うって言うのが解決策になってるんじゃないかな。
ヤフーとかもそうでしょう。

76 :nobodyさん:2006/06/14(水) 02:11:38 ID:???.net
まぁ各ファイルで共通の手続きはできるだけモジュールに括り出すんだな。

77 :nobodyさん:2006/06/14(水) 10:24:38 ID:???.net ?#
大抵はI/Oがボトルネックだから関係ないべ

78 :nobodyさん:2006/06/14(水) 12:24:45 ID:???.net
>>77
Cの処理速度にはまじでビビるよ。
I/Oかかえていても速い。

79 :nobodyさん:2006/06/14(水) 13:01:49 ID:???.net
CPUが直接食える状態になってるからな。

ボトルネックになるディスクI/Oを減らすために少しでもI/Oの速いメモリに溜め込むけど
その結果メモリを馬鹿食いと。

80 :nobodyさん:2006/06/14(水) 13:40:58 ID:???.net
>>79
mod_perlの馬鹿食いはそのせいだけじゃないよ。
mod_perlはApacheの全子プロセスに問答無用でPerlインタプリタを埋め込む。
コードのキャッシュも全子プロセスが持つ。
結果的に、同じコピーが大量に作られる。

SpeedyCGIを運用しているが、常駐インタープリタは2個で充分。
リクエストが多い時はまたされるだけ。
ちゃんと捌く。
mod_perl運用時に比べメモリ使用量は激減した。

mod_perlはアクセラレータとしては、仕様に大きな問題があると思う。

81 :nobodyさん:2006/06/14(水) 13:56:47 ID:???.net
preforkはアレだが、workerならある程度再利用が有効に効かない?

82 :nobodyさん:2006/06/14(水) 14:45:30 ID:???.net
>>81
その通りなんだけど、workerは1.3系列はダメじゃなかったかな?
効果もある程度だしね。
FastCGI、SpeedyCGIがインタープリタの数等、リソースを自由にコントロールできるのに対して仕様自体が???ではないの。

83 :nobodyさん:2006/06/14(水) 14:58:15 ID:???.net
原理的には、プロセス間通信のないmod_perlは速度的に優位なはずだが、
どこのベンチをみても有意な差がない。
というより、むしろ負け気味。
たとえ原理通りになっても、現実には無意味な程度だと思う。

84 :nobodyさん:2006/06/14(水) 18:02:41 ID:???.net
とりあえず、”アクセラレータ"としては、SpeedCGIか、FastCGIでってことでオケ?


85 :nobodyさん:2006/06/14(水) 19:12:48 ID:???.net
無茶な使いかたしなければmod_perlでもいんじゃね?

86 :nobodyさん:2006/06/14(水) 20:48:26 ID:???.net
http://d.hatena.ne.jp/babie/20060201/p3
>テスト機で試した。MaxClients 調整前はめっさ重くなる(SSHまで!)。
>MaxClients 調整後はなんとか耐えられる。

87 :nobodyさん:2006/06/14(水) 20:53:08 ID:???.net
>MaxClients 調整後はなんとか耐えられる。
>MaxClients 調整後はなんとか耐えられる。
>MaxClients 調整後はなんとか耐えられる。

88 :nobodyさん:2006/06/14(水) 23:00:35 ID:???.net
ベンチマークすら提示せずに否定に走られてもねぇ。

>>80
> mod_perlの馬鹿食いはそのせいだけじゃないよ。
> mod_perlはApacheの全子プロセスに問答無用でPerlインタプリタを埋め込む。
> コードのキャッシュも全子プロセスが持つ。
> 結果的に、同じコピーが大量に作られる。

これに関しては、何を言いたいのかさっぱりわかりませんね。


89 :nobodyさん:2006/06/14(水) 23:20:34 ID:???.net
このスレ見てるとmod_perlうんこな流れだけど
mixiやはてながmod_perlで運用してるのは何か理由があるの?

90 :nobodyさん:2006/06/14(水) 23:37:09 ID:nPkMVDT9.net
Apacheモジュールだからというだけで食いつきがいいような希ガス。
本物を見極められない哀れなmod_perler〜♪

91 :nobodyさん:2006/06/14(水) 23:56:11 ID:???.net
>>90
その本物とやらは、どんなものなんでしょう?

92 :nobodyさん:2006/06/15(木) 00:14:17 ID:???.net
まだ自分専用のスレと勘違いしたままのmod_perl厨カワイソス

93 :nobodyさん:2006/06/15(木) 00:17:47 ID:???.net
>>89
> このスレ見てるとmod_perlうんこな流れだけど
> mixiやはてながmod_perlで運用してるのは何か理由があるの?

理由が知りたいから、
「mod_perlは一体どこがアドバンテージ?」
mod_perl厨に聞きつづけてるんだが。
未だに返事はなし。

94 :nobodyさん:2006/06/15(木) 00:22:57 ID:???.net
「mod_perlは一体どこがアドバンテージ?」
これに返事もできない状態で
「mixiが...」
「はてなが...」
「ホリエモンの子飼いが...」

こんな話ばっかりやられてもねえ。
わからいなら、黙っとけ。

95 :nobodyさん:2006/06/15(木) 00:28:25 ID:???.net
>>88
> ベンチマークすら提示せずに否定に走られてもねぇ。
> 
> >>80
> > mod_perlの馬鹿食いはそのせいだけじゃないよ。
> > mod_perlはApacheの全子プロセスに問答無用でPerlインタプリタを埋め込む。
> > コードのキャッシュも全子プロセスが持つ。
> > 結果的に、同じコピーが大量に作られる。
> 
> これに関しては、何を言いたいのかさっぱりわかりませんね。

とてもユニークな意見やね。
どんなベンチとるんだろうか?
俺ならtopコマンド叩く程度しか思いつかんが。

96 :nobodyさん:2006/06/15(木) 00:48:36 ID:???.net
>>94
同意。

しかもmixiが重いって話になると、今度は
「それはMySQLのせいらしい。」
とくる。

「mixiやはてながやってるから正しいんだろう。」
これ以上のものは見えてこない。
うんざり。

97 :nobodyさん:2006/06/15(木) 02:30:04 ID:???.net
mixiがやろうと、はてながやろうと、間違ってると思えばその通りに発言できる。
それが、こういう場所の良さではないのか?

98 :nobodyさん:2006/06/15(木) 04:04:13 ID:???.net
>>85
”アクセラレータ"としてのmod_perl自体が無茶かと...


99 :nobodyさん:2006/06/15(木) 04:23:38 ID:???.net
実績があるからじゃないの。mixiやはてなクラスなら、フロントサーバとアプリケーションサーバを分けて運用するの、どのみち必須だろうし。

100 :nobodyさん:2006/06/15(木) 06:12:39 ID:???.net
あまりにもレス食いつきの良さに
なんだかアンチmod_perlが必死に見えるよ
落ち着こう

101 :nobodyさん:2006/06/15(木) 06:18:43 ID:???.net
ooとxxどっちが強いレベルだよ
どこにでもいる最強厨

102 :nobodyさん:2006/06/15(木) 06:25:27 ID:0MUuG1/E.net ?#
フロントとアプリサーバを分けるならいいけど、
フロントとしてつかうのであれば、
やっぱりmod_perlのメモリ量は気になるけどなぁ。
mod_perlの技術的なメリットがあるなら
きちんと知りたい昨今。


103 :nobodyさん:2006/06/15(木) 06:52:48 ID:???.net
lighthttpd+FastCGIが最速で終了。
スレタイがアフォすぎだな。

----- ここからまったり雑談スレになります -----

104 :nobodyさん:2006/06/15(木) 07:02:50 ID:0MUuG1/E.net ?#
http://www.drk7.jp/MT/archives/000917.html
たしかに。

105 :nobodyさん:2006/06/15(木) 07:31:47 ID:???.net
lighthttpdなんだよ

106 :nobodyさん:2006/06/15(木) 07:33:16 ID:???.net
>>102
お前はゲームでもやってろ

107 :nobodyさん:2006/06/15(木) 07:47:54 ID:???.net ?#
lighttpd+FastCGIもいいかと思ったんだけど設定がめんどくさそうなんだけど
SpeedyCGIは設定とか要らへんの?

108 :nobodyさん:2006/06/15(木) 08:31:41 ID:???.net
dagに、lighttpd,lighttpd-fastcgi があるけど、このrpm使えぱ設定とか
かなり楽になるのかな?

109 :nobodyさん:2006/06/15(木) 09:06:57 ID:???.net
>>107
SpeedyCGIは設定なし。
1.perlソースのグローバル変数を対応。
2.#!/usr/bin/perl等から#!/usr/bin/speedyや#!/usr/bin/perperl等に変更。
以上で終了。
Apacheは設定もできるが必要なし。
ただし、SpeedyCGIまたはPersistentPerl(中身はコマンド名以外同じ)が入っていること。
http://rintaro.dip.jp/program/nicky/index.html

110 :nobodyさん:2006/06/15(木) 09:20:47 ID:???.net ?#
すげー
windows用のバイナリは無いんですかね探してるんですけど

111 :109:2006/06/15(木) 10:06:20 ID:???.net
>>110
すまそ。
Linux以外でperl使った事ないです。

112 :nobodyさん:2006/06/15(木) 10:17:00 ID:???.net
>>107
> lighttpd+FastCGIもいいかと思ったんだけど設定がめんどくさそうなんだけど

ぐぐれば、そこらへんに落ちてると思う。

113 :nobodyさん:2006/06/15(木) 12:47:45 ID:???.net
>>112
落ちてはいるだろうけど、
1.lighttpdの導入および設定
2.FastCGIの設定およびアプリ起動スクリプト作成法
これ新しくマスターするの結構、手間がかかるよ。

114 :nobodyさん:2006/06/15(木) 15:36:14 ID:???.net
ところでworker+mod_perlのベンチってどっかにあるかね?

115 :nobodyさん:2006/06/15(木) 16:04:49 ID:???.net
>>83
>原理的には、プロセス間通信のないmod_perlは速度的に優位なはずだが、
>どこのベンチをみても有意な差がない。

プロセス間通信がないことは、応答時間の短縮にはつながっても
スループットにはあんまり影響しないってことじゃない?

116 :nobodyさん:2006/06/15(木) 18:41:07 ID:???.net
>>115
応答時間の短縮≠スループットの向上。
ちょっと理解に苦しむが、どういう意味?

117 :nobodyさん:2006/06/15(木) 18:53:08 ID:0MUuG1/E.net ?#
処理が早いだけで、
多くの処理がこなせるようになるわけじゃないってことすかね?


118 :nobodyさん:2006/06/15(木) 18:57:53 ID:???.net
理解に苦しむといわれても、そのまんまなんだけど。
プロセス間通信がないmod_perlのほうが速いはずだけどベンチマークとったら差がない、ということだから、
mod_perlのほうが応答時間は短くなるかもしれないけど、それはスループットには影響を与えないんだろうね、ちうこと。
応答時間の短縮=スループットの工場とは誰もいってないよ。
それを主張したら>>115とすごく矛盾してしまうんだけど。

119 :115:2006/06/15(木) 18:58:33 ID:???.net
そういう意味ならその通りだね。
話が脱線してるけど。

120 :nobodyさん:2006/06/15(木) 18:59:24 ID:???.net
↑115→116

121 :nobodyさん:2006/06/15(木) 19:03:12 ID:???.net
む?どこらへんが脱線してる?ふつうにmod_perlの話だと思うし、>>83の話からなんら飛躍してないと思うが。

122 :116:2006/06/15(木) 19:03:57 ID:???.net
>>118
言ってることはよくわかる。
しかし、ベンチの速度の話をしているときに、いきなりスループットは脱線だよ。
スループットが大きく影響するベンチもあれば、そうでないものもある。
ベンチ次第。

123 :116:2006/06/15(木) 19:07:09 ID:???.net
>>121
飛躍しているよ。
言っていることは、一般論としては正しいが、ベンチには反映されにくい。

124 :nobodyさん:2006/06/15(木) 19:52:51 ID:???.net
>>122
どんなベンチマークを想像してんだろ。
おれは ab -c 10 -n 1000 みたいなのを想像してたんだけど。
サーバーサイドの話なんだから、ふつうにスループット重視だと思うんだが、
サーバーサイドのベンチで、スループットじゃないベンチおしえてくれ。
つーか、ベンチマークの話のときにスループットだすのがなんで脱線なんだ。理解に苦しむ。

125 :116:2006/06/15(木) 20:35:31 ID:???.net
こういう事はあまり言いたくないが、スループットの意味を解って使っているのか?
スループットとは単位時間に処理できる量のことだ。
> mod_perlのほうが応答時間は短くなるかもしれないけど、それはスループットには影響を与えないんだろうね、ちうこと。
この話は、mod_perlはメモリを食うのでセッション数を捌けない。
だから、応答時間は短くても単位時間当たりの処理数はあがらない。

こういう意味なんだろうが、それは単純にベンチには出ない。
まずmod_perlへのリクエスト量が多く、mod_perlの処理に支障がある状態のベンチかどうか。
そうでなければ、何の関係もない。

くだらない話だ。

126 :nobodyさん:2006/06/15(木) 21:01:02 ID:???.net
>>125
どういうベンチの取り方だったらいいわけ?

127 :nobodyさん:2006/06/15(木) 21:44:18 ID:???.net
>>126
どういうベンチがいいとかいう問題じゃない。
ベンチは取った条件を考慮しないと、意味がない。

128 :nobodyさん:2006/06/15(木) 21:58:26 ID:???.net
SpeedyCGI,FastCGIを試してみようかなと思い、とりあえずrpmがあるかと調べてみたら、
dagに、

perl-CGI-SpeedyCGI-2.22-1.2.el4.rf.i386.rpm
perl-FCGI-0.67-1.c4.i386.rpm

がありました。
RHEL,CentOS,Fedoraだと、rpmでインストール出来る様ですね。

ちなみに、ファイルの更新日付は、SpeedyCGIが2005/12/25,FastCGIが2006/2/11。
upされたのは、比較的最近だったので、ちょっとびっくり。

129 :nobodyさん:2006/06/15(木) 22:35:45 ID:???.net ?#
http://daemoninc.com/SpeedyCGI/benchmarks/

130 :nobodyさん:2006/06/16(金) 03:06:13 ID:???.net
>>125
おいおい、今までの話で、「スループット」を誤用したところがあるか?なんでこんな心配されなきゃならん。
まず、
>ベンチの速度の話をしているときに、いきなりスループットは脱線だよ
を説明してくれ。

>こういう意味なんだろうが、それは単純にベンチには出ない。
>まずmod_perlへのリクエスト量が多く、mod_perlの処理に支障がある状態のベンチかどうか。
>そうでなければ、何の関係もない。
あれー、今はmod_perlのベンチマークの話だよね?mod_perlに負荷がかからないようなベンチを勝手に想像されてもなー。

>どういうベンチがいいとかいう問題じゃない。
>ベンチは取った条件を考慮しないと、意味がない。
じゃあどういうベンチマークテストで、どういう条件を考慮すればいいわけ?
おまえの話きいてると、逃げてるだけじゃん。

131 :nobodyさん:2006/06/16(金) 04:22:13 ID:???.net
喧嘩するときはbeか鳥付けないと誰の発言か確認できないよね

132 :nobodyさん:2006/06/16(金) 05:14:48 ID:???.net
>>127
だぁかぁらぁ、どういう条件よ?

133 :116:2006/06/16(金) 10:29:15 ID:???.net
>>130
>>132

mod_perlはそのベンチの条件でセッション数が飽和しているか?
これをふまえて発言しろ。

134 :nobodyさん:2006/06/16(金) 12:44:16 ID:???.net
>>130
> あれー、今はmod_perlのベンチマークの話だよね?mod_perlに負荷がかからないようなベンチを勝手に想像されてもなー。

「mod_perlに負荷がかからないような」ではなくて、
mod_perlにどれくらいの負荷がかかっていて、mod_perlがセッションさばけるかが問題ってことじゃねえ?
「mod_perlに負荷がかかって」いても>129のような軽い負荷だと関係ないっていうことかな。

135 :nobodyさん:2006/06/16(金) 16:44:07 ID:???.net
>>130
(・∀・)ニヤニヤ

136 :nobodyさん:2006/06/16(金) 18:48:56 ID:???.net
>>133
してない。
それで?

137 :nobodyさん:2006/06/16(金) 21:19:55 ID:???.net
>>136
beか鳥をつけた方がよくね?

138 :nobodyさん:2006/06/16(金) 21:22:19 ID:???.net
>>136
> してない。
> それで?

それだと>116氏や>134氏の言うとおりになるんじゃない?
> 「mod_perlに負荷がかかって」いても>129のような軽い負荷だと関係ないっていうことかな。

139 :nobodyさん:2006/06/16(金) 21:26:06 ID:???.net
> beか鳥をつけた方がよくね?

beも鳥もつけずにデマだけ並べるといいということ?

140 :nobodyさん:2006/06/16(金) 21:36:09 ID:???.net
>>139
>116や>134がデマってことは、
mod_perlのスコアがのびない理由はセッション数以外にも理由があるって理解でええの?

141 :140:2006/06/16(金) 21:37:17 ID:???.net
だとしたら、まだ出てない意見なんだけど?

142 :nobodyさん:2006/06/16(金) 21:40:51 ID:???.net
>>140
> >116や>134がデマってことは、

>116や>134は、デマなんですか?
はつみみです。

143 :140:2006/06/16(金) 21:49:45 ID:???.net
漏れは頭悪いんで、>139が誰に対してデマっていってるのかわからんのやけど。

144 :140:2006/06/16(金) 22:01:28 ID:???.net
それ以前に、>139=>142ってことでいいん?

145 :nobodyさん:2006/06/16(金) 22:02:25 ID:???.net
>>143
> 漏れは頭悪いんで、>139が誰に対してデマっていってるのかわからんのやけど。

そもそも、誰かの発言がデマであるというようなことは >>139 では述べられて
ないのでは?

146 :nobodyさん:2006/06/16(金) 22:03:25 ID:???.net
>>144
> それ以前に、>139=>142ってことでいいん?

どのように解釈しようと、各人の自由だと思いますよ。

147 :nobodyさん:2006/06/16(金) 22:08:18 ID:???.net
(・∀・)ニヤニヤ

148 :nobodyさん:2006/06/16(金) 22:12:47 ID:???.net
必死だな

149 :nobodyさん:2006/06/16(金) 22:36:39 ID:???.net
Perl厨わかなくなったと思えば次はmod_perl厨。
収まったと思えば今度は匿名理屈厨。
すごいな。
このスレは。

150 :nobodyさん:2006/06/16(金) 22:45:16 ID:???.net
(・∀・)ニヤニヤ 厨
必死だな 厨
>>149 みたいなの

も定期的に湧くな。

すごいな。
このスレは。


151 :nobodyさん:2006/06/16(金) 22:47:47 ID:???.net
オマエモナー

152 :nobodyさん:2006/06/16(金) 22:48:45 ID:???.net
さて、どこらへんの話からループすればいい?


153 :nobodyさん:2006/06/16(金) 22:48:57 ID:???.net ?#
煽り耐性なさ杉w

154 :nobodyさん:2006/06/16(金) 22:50:17 ID:???.net
>>150
お前が一番変。


155 :nobodyさん:2006/06/16(金) 22:52:21 ID:???.net
>>154
まあ、一番と順位づけをするためには、ベンチマーク等と同様に
客観的な基準が必要だよね。

- 何をもって「変」とするかの基準
- 上記「変」の順位付けの方法



156 :nobodyさん:2006/06/16(金) 22:53:23 ID:???.net
でたあ、客観厨。

157 :nobodyさん:2006/06/16(金) 22:54:27 ID:???.net
何をもって...とするかの基準。
だってよ。

158 :nobodyさん:2006/06/16(金) 22:56:08 ID:???.net
>>155
>> ベンチマーク等と同様に客観的な基準が必要だよね。

このへんで頭の悪さがばれる。

159 :nobodyさん:2006/06/16(金) 22:56:15 ID:???.net
クマー

160 :nobodyさん:2006/06/16(金) 22:57:54 ID:???.net
>>158
まあ、ベンチが客観的と信じるのは個人の自由だし。
ええんでない?

161 :nobodyさん:2006/06/16(金) 22:58:30 ID:???.net
だな。w

162 :nobodyさん:2006/06/16(金) 22:59:18 ID:???.net
>>160
んだな。
宗教の自由ってやつだ。

163 :nobodyさん:2006/06/16(金) 23:00:45 ID:???.net
そんな宗教もあるのか。

164 :nobodyさん:2006/06/16(金) 23:02:01 ID:???.net
まあほとんど宗教だわな。

165 :nobodyさん:2006/06/16(金) 23:02:50 ID:???.net
宗教に、ほとんどとか程度があるのか。
このスレすごいなー。w

166 :nobodyさん:2006/06/16(金) 23:04:07 ID:???.net
>>165
マジレスすんなよ。
おもろないやつ。

167 :nobodyさん:2006/06/16(金) 23:05:16 ID:???.net
マジレスっておいしいの?


168 :nobodyさん:2006/06/16(金) 23:14:23 ID:???.net
ここまで俺の自演

169 :nobodyさん:2006/06/16(金) 23:15:31 ID:???.net
いや、俺の自演だよ。

170 :nobodyさん:2006/06/16(金) 23:31:31 ID:???.net
mod_perl と SpeedyCGI どっちがいいの?

171 :nobodyさん:2006/06/16(金) 23:35:07 ID:???.net
>>170
mod_perl以外クソに決まってるだろ!

172 :nobodyさん:2006/06/16(金) 23:36:35 ID:???.net
>>171
マジレスすんなよ。
おもろないやつ。


173 :nobodyさん:2006/06/16(金) 23:38:52 ID:???.net
>>170
mod_perl以外を選ぶメリットは何もない。

174 :nobodyさん:2006/06/16(金) 23:41:09 ID:???.net
>>172
そのまま返す。
コピペだし。

175 :nobodyさん:2006/06/16(金) 23:41:20 ID:???.net
>>171 さん >>173 さん、ありがとうございます!


176 :nobodyさん:2006/06/16(金) 23:43:17 ID:???.net
>>175
わかってるようだな。
世界で一番優れた言語mod_perl!

177 :nobodyさん:2006/06/16(金) 23:45:16 ID:???.net
>>176
mod_perl って言語だったんですね!
明日早速会社のサーバに mod_perl 言語を入れて実稼働はじめます!

178 :nobodyさん:2006/06/16(金) 23:46:13 ID:???.net
>>175
いや、言語ではなく神だ。
まだまだだな。

179 :nobodyさん:2006/06/16(金) 23:48:01 ID:???.net
>>177
神を汚れたサーバに入れるなどおそれおおい。
神棚に飾っておけ。

180 :nobodyさん:2006/06/16(金) 23:49:07 ID:???.net
>>178-179
神などという抽象的な存在の話なら、板違いじゃないのかな。

181 :nobodyさん:2006/06/16(金) 23:53:19 ID:???.net
つまらんこというな。

182 :nobodyさん:2006/06/16(金) 23:54:01 ID:???.net
>>181
つまらんこというな。


183 :nobodyさん:2006/06/16(金) 23:54:12 ID:???.net ?#
面白いと思ってるのが痛い

184 :nobodyさん:2006/06/16(金) 23:56:18 ID:???.net
痛いと思ってるのが面白い


185 :nobodyさん:2006/06/16(金) 23:56:23 ID:???.net
このスレは脱線かバトル以外話題がないからな。
そんときだけ異様にのびる。

186 :nobodyさん:2006/06/16(金) 23:57:03 ID:???.net
> そんときだけ異様にのびる。

だって全部おれの自演だし

187 :nobodyさん:2006/06/16(金) 23:58:02 ID:???.net
俺の自演だって言ってるだろ。

188 :nobodyさん:2006/06/17(土) 00:01:32 ID:???.net
まあ、誰が何を主張しようと、言論の自由だもんね!

189 :nobodyさん:2006/06/17(土) 00:10:56 ID:???.net ?#
もっと有益な話をしてくれ

190 :nobodyさん:2006/06/17(土) 00:11:32 ID:???.net
煽り耐性なさ杉w


191 :nobodyさん:2006/06/17(土) 00:14:20 ID:???.net ?#
SpeedyCGIってlighttpdでも使えるん?
今実行できる環境にないので

192 :nobodyさん:2006/06/17(土) 00:16:56 ID:???.net
> SpeedyCGIってlighttpdでも使えるん?

使えないということにでもしたい?

193 :nobodyさん:2006/06/17(土) 00:19:17 ID:???.net ?#
ほぇ?

194 :nobodyさん:2006/06/17(土) 00:23:38 ID:???.net
> SpeedyCGIってlighttpdでも使えるん?
使えるよ。
Perlで完結するので、webサーバーは問わない。

195 :nobodyさん:2006/06/17(土) 00:25:33 ID:???.net ?#
>>194
ありがとう
バックエンドとか云うのは最初起動させとかなくていいの?
shebang行をspeedyに変えるだけでいいの?

196 :nobodyさん:2006/06/17(土) 00:25:51 ID:???.net
> Perlで完結するので、webサーバーは問わない。

デマですね。
/usr/bin/speedy は perl なのかと。

197 :194:2006/06/17(土) 00:27:22 ID:???.net
ただし、ActivePerlの場合は俺は知らん。
PC-UnixでPerlCGIが使えれば問題ない。
SpeedyCGIが入れられないとかいうなら別だが。

198 :nobodyさん:2006/06/17(土) 00:29:35 ID:???.net
> Perlで完結するので、webサーバーは問わない。



> ただし、ActivePerlの場合は俺は知らん。
> PC-UnixでPerlCGIが使えれば問題ない。
> SpeedyCGIが入れられないとかいうなら別だが。

とでは、異なる内容になっていますね。

199 :194:2006/06/17(土) 00:35:58 ID:???.net
>>195
> バックエンドとか云うのは最初起動させとかなくていいの?
> shebang行をspeedyに変えるだけでいいの?
変えるだけでOK。
最初に実行した時に勝手にインタプリタが常駐しネイティブコードもキャッシュされるよ。
ただし、デフォルト設定では1時間Callがなければ、すべて解放されてしまうので自分の環境に合わせてコマンドラインスイッチを。
http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod


>>196
> /usr/bin/speedy は perl なのかと。
CPANでインストールできるし、Perlドキュメントにも載ってますが...?
Perlの公式リリースと思っても間違いではないはず。


200 :nobodyさん:2006/06/17(土) 00:39:12 ID:???.net
> CPANでインストールできるし、Perlドキュメントにも載ってますが...?
> Perlの公式リリースと思っても間違いではないはず。

CPAN に登録されていることと、Perl の公式リリースは何ら関係がありませんね。
そもそも「Perlの公式リリース」とは、具体的に何ですか?

201 :nobodyさん:2006/06/17(土) 00:39:17 ID:???.net ?#
凄い
ありがとう
環境が整ったらコンパイルしてみます

202 :194:2006/06/17(土) 00:39:46 ID:???.net
>>198
こだわるね。
正確に言えば、ActivePerlの場合は俺は知らんが、それ以外ならPerlで完結してるよ。
これでいいんだべか?

203 :194:2006/06/17(土) 00:40:54 ID:???.net
しつこい人は苦手でね。
疑うなら、自分でどうぞ。

204 :nobodyさん:2006/06/17(土) 00:41:21 ID:???.net
> 正確に言えば、ActivePerlの場合は俺は知らんが、それ以外ならPerlで完結してるよ。

バックエンドプロセスへ通信するために起動される実行ファイルは
Perl なのかと。

205 :nobodyさん:2006/06/17(土) 00:42:30 ID:???.net
デマばかり流している >>194 氏がかわいそうなので、
間違いを指摘するのは、このくらいでやめてあげてください。

206 :194:2006/06/17(土) 00:44:43 ID:???.net
お好きにどうぞ。

207 :nobodyさん:2006/06/17(土) 00:45:18 ID:???.net
間違いを認めないのは、みっともないねぇ。

208 :194:2006/06/17(土) 00:47:06 ID:???.net
何とでもお好きなように。

209 :nobodyさん:2006/06/17(土) 00:50:36 ID:???.net
>>204
> バックエンドプロセスへ通信するために起動される実行ファイルは
> Perl なのかと。

つ、SpeedyCGIのバックエンドはwebサーバーと無関係。

210 :nobodyさん:2006/06/17(土) 00:56:47 ID:???.net
>>209
> > バックエンドプロセスへ通信するために起動される実行ファイルは
> > Perl なのかと。

は、

>>198
> Perlで完結するので、webサーバーは問わない。

に関しての発言ですね。

> つ、SpeedyCGIのバックエンドはwebサーバーと無関係。

shebang を speedy の変更した場合、
httpd から perl 以外のバイナリが呼び出されて SpeedyCGI の
バックエンドプロセスとやりとりをするわけだから、

> Perlで完結

ということにはならない。

211 :nobodyさん:2006/06/17(土) 01:03:48 ID:???.net
>>210
まあ理屈ではなんとでも言えるよな。
誰もそんなことに関心はないわけだが。

212 :nobodyさん:2006/06/17(土) 01:05:09 ID:???.net
>>211
> 誰もそんなことに関心はない

という思考をしていると思われる人が、
何で >>211 のような記述をしてるのか謎ですね。

213 :nobodyさん:2006/06/17(土) 01:05:55 ID:???.net
???

214 :nobodyさん:2006/06/17(土) 01:09:13 ID:???.net
>>210
ほとんどカラミ癖だなw

215 :nobodyさん:2006/06/17(土) 01:09:20 ID:???.net
as you like

216 :nobodyさん:2006/06/17(土) 01:11:10 ID:???.net ?#
> shebang を speedy の変更した場合、
日本語でおk

217 :nobodyさん:2006/06/17(土) 03:46:46 ID:v+LZ4Y9O.net
このスレッドも高速化されてますね。

218 :nobodyさん:2006/06/17(土) 04:07:05 ID:???.net
speedyCGI試してみたけど、確かに速いね。

最初、dagのrpmを入れてみたけど、mod_speedycgiが入っていないのでsourceから起こしてみた。
手始めにhello worldを表示するだけのスクリプトで試すと、通常のCGIと、CGI版speedyCGIは
大差が無かったが、mod_speedycgiだと5倍程度のスピードが出た。
次に、上記hello worldにuse CGI; use DBI を付けてみたら、CGI版speedyCGIは、10〜20倍程度、
mod_s;peedycgiだと、100〜150倍程度のスピードになった。

ちなみに、PHP5.0.4でhello worldを出力すると、mod_speedycgiより、2割位遅い感じ。
PEAR DBをrequireすると、use CGI; use DBIしたCGI版speedyCGIと同程度のスピード。

普通のCGIや、PHP使うのが馬鹿らしくなってきた。

219 :nobodyさん:2006/06/17(土) 09:36:53 ID:???.net
>>218
マジ?
http://tbox.jpn.org/wiki/linuzau/wiki.cgi?LinuxZaurus%B8%FE%A4%B1%A5%D3%A5%EB%A5%C9%2FApache%2BSpeedyCGI#i5
ここマシンがリナザウだけどノーマルSpeedyCGIよりかなりベンチが落ちてたんだけど。
自分でも使ったが、自分の場合は体感差はなかった。
Apacheの設定はほとんど無いに近いが。

220 :nobodyさん:2006/06/17(土) 09:43:47 ID:???.net
日本語でおk

221 :nobodyさん:2006/06/17(土) 09:49:36 ID:???.net
>>218
> 通常のCGIと、CGI版speedyCGIは大差が無かった

CGI版SpeedyCGIで鯖運用してるが、通常のCGIから劇的に速くなったよ。
どこもそういうことになってるみたいだが。
CGI版SpeedyCGIは1発目の動作は
インタープリタ起動→常駐→コンパイル→キャッシュ→実行
となるから、遅い。
次回からは
最初の4ステップがなくなり実行のみになるので、急激に速度が向上する。

2回以上実行した?

222 :nobodyさん:2006/06/17(土) 11:17:34 ID:???.net
>>219
自分でも信じられなかったので、2台のマシン(Opteron ?GHz CentOS4.3とPen2 200MHz RH9)
で試したけど、同じような傾向が出た。
ザウルスのサイトも見ているんだけど、本当にmod_speedycgiで動かしているのかなという
気がしている。お恥ずかしながら、私も最初、大差無しの結果を出していたが、原因は、
LoadModuleをしただけで、cgi-binの下でcgiとして動かしてしまっていた事。マニュアルにある
様に、ディレクトリ切って、SetHandlerしたら、桁が上がった。

#!/usr/bin/speedy
use CGI;
use DBI;

print << "EOT";
Conent-Type: text/html

<html>
<head>
<title>test speedy</title>
</head>
<body>
Hello World
</body>
</html>
EOT

を、遅いマシンの方で、ab -n 10 http://localhost/speedy/test3.scgi みたいな事を今やったら、
CGI 1726.281 [ms]
SpeedyCGI(CGI版): 44.240 [ms]
mod_speedycgi: 10.990 [ms]
てな感じになりました。(Time per requestの値)

223 :nobodyさん:2006/06/17(土) 11:19:33 ID:???.net ?#
shebangをspeedyに変えても
ApacheでSuExecは有効になるんですかね?

224 :nobodyさん:2006/06/17(土) 11:24:38 ID:???.net
>>223
実際にはやってないのですまそ。
SpeedyCGIはSuExecはOKだったはず。

225 :221:2006/06/17(土) 11:29:26 ID:???.net
ソースは
http://rintaro.dip.jp/program/nicky/index.html
ここを参考に作ったSpeedyCGI版nicky.cgi

ベンチ
ab -n 100 -c 10

     CGI   SpeedyCGI mod_speedycgi mod_perl
1回目  0.54    6.12    74.24    6.93
2回目  0.54    6.38    74.24    7.16
3回目  0.54    6.41    72.25    7.09
4回目  0.53    6.41    73.86    7.15
5回目  0.54    6.45    74.46    7.19

平均   0.538   6.354    73.81    7.104

あり得ない...
速い...

アパッチモジュール版SpeedyCGI最強。
>218は発見者
誰もmod_speedycgiは無視してたからな。

226 :nobodyさん:2006/06/17(土) 11:39:03 ID:???.net
>>221
上記のスクリプトから、use CGI; use DBI;を抜くと、

CGI: 49.640 [ms]
SpeedyCGI(CGI版): 43.361 [ms]
mod_speedycgi: 10.968 [ms]

という結果。
スクリプトの中身がほとんど無い状態だと、スピードに差が出なかった。
意味のあるスクリプトは、当然、ぐっと長くなるので、SpeedyCGI(CGI版)でも、劇的に
速くなったと感じられる筈。use CGI; use DBI;しただけで、150倍以上の差が出るので、
3桁の差が出る事も十分あり得そう。(普通のCGIが遅すぎるんだけど)
ちなみに、SpeedyCGIについては、2回立て続けにabし、2回目の結果を書いてます。

自分でも、速くなっている様だけど、???な所がある結果なので、追試して貰えれば、
何よりです。

227 :nobodyさん:2006/06/17(土) 11:47:46 ID:???.net ?#
おぉ凄い

228 :225:2006/06/17(土) 11:49:50 ID:???.net
>>226
確かに信じがたいよね。
検証します。

229 :218,222,226:2006/06/17(土) 11:59:40 ID:???.net
>>225
追試ありがとうございます。しかも、mod_perl付き。(^^)

それにしても、mod_speedycgi速いですね。

> 誰もmod_speedycgiは無視してたからな。

 私は、一昨日あたりから真面目に調べ出したんで詳しくないんだけど、何でmod_speedycgi
は無視されてたんでしょうか?
あと、FastCGIは、speedyCGIよりも速度的に有利みたいな記述を見かけるけど、比較対象は
speedyCGI(CGI版)なんでしょうか?

 これなら、Catalystを試してみても良いかなという気がして来た。

230 :nobodyさん:2006/06/17(土) 12:47:40 ID:???.net
とりあえず。
FastCGI:CGI一般
mod_perl, speedyCGI:perl用
って考えでok?




231 :nobodyさん:2006/06/17(土) 13:09:03 ID:???.net
> >218は発見者
> 誰もmod_speedycgiは無視してたからな。

アメリカ大陸を発見したような話か?

232 :225:2006/06/17(土) 13:40:36 ID:???.net
追試結果。
ぬかよろこびさせてすまそ。

>225の異常な高スコアはただのファイルとしてアクセスされていたためです。

修正後のベンチです。

      CGI  SpeedyCGI  mod_speedycgi mod_perl
1回目   0.45    5.89    7.36    6.35
2回目   0.45    6.06    7.36    6.34
3回目   0.44    6.05    7.37    6.38
4回目   0.45    6.03    7.18    6.4
5回目   0.44    5.92    7.39    6.12

平均    0.446   5.99    7.332    6.318
(Requests per second)

お騒がせして申し訳ない。

233 :nobodyさん:2006/06/17(土) 13:44:59 ID:???.net ?#
SpeedyCGI単体でも十分速いな

234 :nobodyさん:2006/06/17(土) 13:52:48 ID:???.net
print するだけって、とても無意味なベンチですね。

235 :nobodyさん:2006/06/17(土) 13:57:30 ID:???.net
完璧なベンチ希望。

236 :225:2006/06/17(土) 13:59:41 ID:???.net
俺は貴重な時間を割いたので、これ以上はゴメンです。
完璧ではないのは確かですが。
完璧なベンチは難しい。

237 :nobodyさん:2006/06/17(土) 14:00:00 ID:???.net
まずは「完璧なベンチ」の要件から定義していかないとね。

238 :218:2006/06/17(土) 14:31:37 ID:???.net
>>232

お騒がせしました。

そうすると、mod_speedycgiは確かに速いけど、実際のアプリではファイルやDBへの
アクセスがあるから、speedyCGI(CGI版)との速度差はほとんど無くなると言う事の様
ですね。(ほとんどがオンメモリーで済む処理だと差が出るけど)

ちなみに、テストに使った Hello world をhtmlにして同じサーバに入れてベンチ取った
所、4.298 [ms]でした。
mod_speedycgiは、10.968 [ms] だったので、この2.5倍程度しか掛かっていない、という
事は、ぼちぼち限界。

アクセラレータとして、mod_perl,FastCGI,SpeedyCGIの比較で、>>52

「スピードはどれも意味のある差はない。」

は、正論だったんだなと再認識しました。


239 :nobodyさん:2006/06/17(土) 14:32:11 ID:???.net
じゃあ、無意味じゃないベンチでいいよ。

240 :nobodyさん:2006/06/17(土) 14:37:42 ID:???.net
>>239
例えばどんな条件?

241 :nobodyさん:2006/06/17(土) 15:20:32 ID:???.net
>>225
そのmod_perlはまさかpreforkじゃあるめぇな?是非workerでのベンチも宜しく。

242 :225:2006/06/17(土) 15:37:55 ID:???.net
>>241
> そのmod_perlはまさかpreforkじゃあるめぇな?是非workerでのベンチも宜しく。

まさかのpreforkだよ。
Apache1.3.33なのでworkerは使えないはず。
ボランティアではないから、Apache2インスコは勘弁してくれ。

243 :225:2006/06/17(土) 15:40:36 ID:???.net
まあ、時間ができた時にやってもいいな。
今日はもう時間がない。
無期限でというならやってもいいよ。

244 :nobodyさん:2006/06/17(土) 16:48:09 ID:???.net
ほら、やっぱり飽和させないと>ベンチ

245 :nobodyさん:2006/06/17(土) 16:49:21 ID:uEg75/Hh.net
いろいろ参考になります。ありがトン。
ところで、perlccでperlスクリプトをバイナリにしとくのって
cgiが速くなるのでしょうか。やってみればいいんでしょうけど。

246 :nobodyさん:2006/06/17(土) 17:42:44 ID:PIdwd3B2.net
SpeedyCGIってWindowsでは動かないのか?

247 :nobodyさん:2006/06/17(土) 18:13:28 ID:???.net
>>133の続きマダー?


248 :nobodyさん:2006/06/17(土) 19:57:24 ID:???.net
http://www.drk7.jp/MT/archives/000863.html

によると、FastCGIは、Segmentation Fault に悩まされる事がある様だけど、
ぶち当たった事がある人いる?

249 :nobodyさん:2006/06/17(土) 23:26:08 ID:???.net
なんかmod_perlというとmixiやhatenaが出てくるけど、
老舗/.もわるれないでほしいなぁ。

250 :nobodyさん:2006/06/18(日) 05:24:04 ID:???.net
糞遅いcrc計算とかmd5計算とかどうよ

251 :nobodyさん:2006/06/18(日) 05:31:43 ID:???.net
いやぁ、どうもこうもないですよ

252 :nobodyさん:2006/06/18(日) 08:57:02 ID:???.net
>>234
>>235
>>239
同じWebサーバを使い、同じPerlインタプリタと同じコンパイル済みのコードをメモリ上に
常駐させて処理するんだから、その処理時間は、mod_perl,SpeedyCGI,FastCGIのどれも
掛かる時間は一緒。
せいぜい差が出るのは、起動の際の時間。
コードの量が増えれば、起動時間の差が占める割合が低くなるから、コードの規模が
大きくなるに従って、三者の差は無くなって行く。
凝ったコードでベンチを取っても、「CGIは遅いが、mod_perl,SpeedyCGI,FastCGIはほとんど
差が出ない」という結果が出るだけ。

だから、「最小限のコード」でベンチを取るのは正解。
ただ、処理時間の「差」を見るのは良いが、「比率」を見てしまうと、間違いの基。

あとは、メモリを喰いすぎてswapを起こして遅くならないかとか、マルチ*な環境を有効に
使えるかとか、一度に多くのリクエストが集中した時に、適切に捌けるかと言った比較を
するのは意味がある。

253 :nobodyさん:2006/06/18(日) 11:01:42 ID:???.net
>>252
> あとは、メモリを喰いすぎてswapを起こして遅くならないかとか、
> マルチ*な環境を有効に使えるかとか、一度に多くのリクエストが
> 集中した時に、適切に捌けるかと言った比較をするのは意味がある。

よく意味がわかりません。

254 :nobodyさん:2006/06/18(日) 11:12:02 ID:???.net
>>252
> だから、「最小限のコード」でベンチを取るのは正解。
そうかな、むりやり差を出すのが正解とは思わないが。

> あとは、メモリを喰いすぎてswapを起こして遅くならないかとか
mod_perlは自分に対してのswapは、許してないよ。
プロセスごとkillされる。

255 :nobodyさん:2006/06/20(火) 22:59:20 ID:???.net
誰かPerlの本格的コンパイラ作らんかな。
できるはずなんだけど。
Basicのようにスクリプト、実行ファイル両立方式になればなあ。
一々グローバル変数初期化しなくてもよくなる。
スピードも上がる。

絵に描いた餅ですまそ。

256 :nobodyさん:2006/06/21(水) 02:12:20 ID:???.net
妄想するのは構わないがリサーチもせんと書き込むな

257 :nobodyさん:2006/06/21(水) 07:25:59 ID:vwMWqBxm.net ?#
perlccってあんまりはやらんですよね。


258 :255:2006/06/21(水) 10:21:51 ID:???.net
確かに妄想なんだがリサーチしようがないだろう。
似たような事例にGCC-JAVAがあるのは知ってる。
これ、Javaソースからネイティブコードにコンパイルする。
でもJava自体にJITコンパイラがあるから、Javaでは無視されている。
GCC-PERLがあればなあ。

259 :nobodyさん:2006/06/21(水) 18:48:07 ID:???.net
>リサーチしようがないだろう。
>リサーチしようがないだろう。
>リサーチしようがないだろう。

http://www.google.co.jp/search?hl=en&q=Perl+Compiler

260 :nobodyさん:2006/06/21(水) 18:50:21 ID:???.net ?#
PARはPerlのDLL全部ぶち込んで
スクリプトをZIP圧縮してるだけだし

261 :nobodyさん:2006/06/21(水) 19:23:28 ID:???.net
>>259
perlccばっかりやん。
役にたたんのはわかってるんでねえ?

262 :nobodyさん:2006/06/21(水) 19:26:27 ID:???.net
gcc-perlってある意味理想でねえ?

263 :nobodyさん:2006/06/22(木) 16:38:10 ID:???.net
perlccはバイトコードに変換してるだけだからね。
バイトコード間でもバージョンが違うと動かないし。

264 :nobodyさん:2006/06/23(金) 02:29:54 ID:ybv8oJFI.net
漏れが>>245で、2006/06/17(土) 16:49:21にperlccのこと
質問したのに、無視しといて、>>257が質問したら、急に
レスが付くって、本当にありがとう。

265 :nobodyさん:2006/06/23(金) 06:47:43 ID:???.net
ここにはレスしなければならないという義務が存在するのか?レスをするのもしないのも自由。
大人は質問に答えたりしない
それが基本だ  お前たちはその基本をはきちがえているから
今朽ち果てて  こんな船にいるのだ
無論中には 答える大人もいる
しかし それは答える側にとって
都合のいい内容だからそうしているのであって
そんなものを信用するってことは
つまりのせられているってことだ
なぜそれがわからない・・・・?
なぜ・・・・ そのことに気付かない・・・・?


266 :nobodyさん:2006/06/23(金) 12:15:30 ID:???.net ?#
カイジ厨乙

267 :243:2006/06/23(金) 12:38:21 ID:???.net
>>264
今度、ベンチとるときにperlccもやるつもりだったよ。(-Bオプションのみ)
レスはしなかったが。

268 :nobodyさん:2006/06/23(金) 15:46:55 ID:6y25kE0L.net
mod_perlのPerlRegistry + Apache::DBIな永遠DBI接続みたいなもんは
mod_speedycgiにあるのかな?
DBをあつかってるシステムならPerlRegistry+Apache::DBIがベストだと思ってたけど
ApacheとDBのプロセスで食いつぶれるメモリの配慮でツカレタよ。

なんかmod_speedycgiよさげだね。

269 :nobodyさん:2006/06/23(金) 15:51:08 ID:???.net
最大メモリ使用量 積めるだけ

270 :nobodyさん:2006/06/23(金) 22:15:44 ID:???.net
>>268
フロントコントローラしてくれる手軽なFWがあれば便利なんだけど。
perl -MCPAN -e "Bundle::Maypole" したら、あまりにも大袈裟なんで、めげた。


271 :nobodyさん:2006/06/25(日) 04:11:20 ID:???.net
>>245
バイトコードへの変換はそれほどコストが掛かる訳じゃないので
perlccでバイトコードへ変換してもそれほど高速にはなりません。
とはいえ実測では1割程度の速度アップが見られました。

誰もが初めからレス見てると思うなよ、ガラスの十代め。

272 :245:2006/06/25(日) 09:47:47 ID:HMa92uFN.net
>>271
誰をガラスの十代って言ってるのかとおもたらこの漏れのことか。
とてもご親切にありがとう。これから「ガラスの十代」ググってきまつ。


273 :nobodyさん:2006/06/25(日) 09:56:40 ID:???.net
涙で見えなくてカに「゛」を打ち忘れるなよ。

274 :267:2006/06/25(日) 22:58:06 ID:???.net
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:2006/06/25(日) 22:59:21 ID:???.net
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:2006/06/25(日) 23:00:12 ID:???.net
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:2006/06/25(日) 23:00:54 ID:???.net
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:2006/06/25(日) 23:02:49 ID:???.net
以上で全て。
ABORT時のメッセージはどれも
The timeout specified has expired (70007)
で同じ。

279 :267:2006/06/25(日) 23:26:46 ID:???.net
追記
使用ソース
運用中nicky.cgi改(SpeedyCGI、mod_perl対応)


280 :nobodyさん:2006/06/25(日) 23:39:37 ID:9F1oBnAV.net ?#
ab -n 20 -c 1とかのオプションってどういう意味なんでしたっけ?

281 :nobodyさん:2006/06/25(日) 23:40:32 ID:???.net ?#
http://www.atmarkit.co.jp/flinux/rensai/apache15/apache15b.html
ここら辺どぞ

282 :nobodyさん:2006/06/25(日) 23:49:53 ID:???.net
>>232,>>275を比べると、両者で測定条件が違いそうだけど、prefork,workerの差は、
あまりないと言う事かな?

それにしても、SpeedyCGIは強いね。

283 :282:2006/06/26(月) 00:27:02 ID:???.net
>>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:2006/06/26(月) 00:30:33 ID:???.net
↑トリップ282×→267○

285 :nobodyさん:2006/06/26(月) 07:53:28 ID:???.net
>>283
これ読んで気づいたけど、今回のS;peedyCGIは、mod_speedycgiではなかったんですね。

それから、mod_perl workerはRegistryだと思うけど、PerlRunの結果と、1回で良いから、
同一内容のhtmlを静的コンテンツとして取り出した際の値も併記してもらえれば嬉しい
です。

286 :267:2006/06/26(月) 09:34:03 ID:???.net
>>285
了解。
実運用のNicky!のデータを吸い込ませたので、同一内容のhtmlは元々有ります。
ただ、mod_perlと併用した場合とかなると条件をどうするか面倒なのでできれば静的コンテンツ単体で取りたいです。
複雑なものは、基本的なものが揃ってから。

後、ディストリはGentooがよかったかな。
ちょっと構築に時間がかかるけど。

287 :nobodyさん:2006/06/26(月) 20:13:13 ID:???.net
-n 20 -c 200って変じゃない?
200並列全体で20回のリクエストでしょ?
更に-c 20以上はmod_perlとかだとワーカを再利用しない初期化速度を計測しているような気がする。

288 :267:2006/06/26(月) 20:30:46 ID:???.net
> -n 20 -c 200って変じゃない?
http.confはいじってないのでMaxClients150のままです。
MaxClients150でc 200のときにどうなるのか興味があったので、あえて200を試しました。

> 更に-c 20以上はmod_perlとかだとワーカを再利用しない初期化速度を計測しているような気がする。
すいませんが、よく意味がわかりません。
新しくプロセスを起こしてしまっているという意味でしょうか?

私はデータを提供しただけなので、問題があれば自分で反論を証明するデータを提出してください。
少なくとも「気がする」というような反論は勘弁してもらいたいです。



289 :267:2006/06/26(月) 20:41:23 ID:???.net
あと、データ提供時に説明不足な点がありました。

perlcc -Bの時に2回目からクラッシュするパターンが多いですが、
実はこれは1回目が終わったあと動作が異常に重くなっていました。
恐らくCPU全開が数分間続くパターンに入っていたと思います。
次回検証します。

後、mod_perlの1回目がロースコアかつクラッシュが多い点について。
私見ですが、mod_perlはperlインタープリタを複製するのに、Apacheのプロセスを複製する必要があります。
当然1回目の起動コストは高くなると思います。

290 :nobodyさん:2006/06/26(月) 22:49:50 ID:???.net
>>288
>>287 が言っている事は、
-n 20 -c 200 だと、200回の同時接続要求を出すのに、全体のリクエスト数が
それ以下の20回と言うのはおかしい。nの値は、cより大きい筈ではないか、
ではないかと思います。

もし、同時接続200を20回繰り返すという意図なら、-n 4000 -c 20 という感じか
なと。(abが、リクエスト完了の後、すぐに次のリクエストを発行すれば、-n 4000
が、この意図を満たすのに適当な値ではないのですが)

ちなみに、n < c の場合、少なくとも、c回のリクエストは発行する様です。


291 :nobodyさん:2006/06/27(火) 00:20:58 ID:???.net
こんな場所に匿名で貼られたオナニーベンチなんかだれも信用しないし、
べつにどんな方法でどうでもいいんじゃないかな。

292 :nobodyさん:2006/06/27(火) 03:14:50 ID:I9hdLSDQ.net ?#
>>291
嘘をつくメリットもないので、
参考にはなると思いますよ。


293 :nobodyさん:2006/06/27(火) 03:21:02 ID:???.net
ひろゆ子、このスレにいたのか・・・

294 :nobodyさん:2006/06/27(火) 03:27:58 ID:???.net
>同時接続200を20回繰り返すという意図なら、-n 4000 -c 20 という感じかな
-n:リクエスト数
-c:同時接続数
で、-n 20 -c 200 とか思ってたけど、奥深いんやね


295 :nobodyさん:2006/06/27(火) 04:02:48 ID:???.net
>>292
嘘をつくメリットがないと、参考になるというのは、すごくはつみみですね。

296 :245:2006/06/27(火) 04:46:08 ID:z6n+0wh9.net
動機がないと犯人にしづらいというのと同じだろ。

297 :267:2006/06/27(火) 05:02:55 ID:???.net
>>287
>>290

失礼。
>290のいう通りの間違い。
やり直します。

298 :nobodyさん:2006/06/27(火) 10:09:21 ID:???.net ?#
ab -n 20 -c 20 までの結果を見ても
mod_perlはでかいメモリ間コピーをするから遅いってのが分かるじゃん

299 :nobodyさん:2006/06/27(火) 10:39:42 ID:???.net
>>291
そもそも、ベンチの結果なんて取り方によって変わって来るわけで、
267が書いている結果を、そのまま鵜呑みにする事は間違った判断
だと思う。その意味では、私も「信用」はしていない。
しかし、オナニーベンチの積み重ねで、一般的な傾向は見えると思う
ので、「参考」になるとは思っている。

また、今までCGI、SpeedyCGI,FastCGI,mod_perlを比較したベンチを
目にする機会があまりなかったので、ネット上の情報を見て、

CGI << SpeedyCGI < FastCGI < mod_perl(Registry)

だと思い込んでいたが、SpeedyCGI,FastCGI,mod_perlの速度は大差
がなく、順番だって怪し事が分かった事は、とても良かったと思う。

ちなみに、このスレを最初から読めば、267が匿名とは言い難い気がする。


300 :nobodyさん:2006/06/27(火) 11:17:41 ID:???.net
十分参考になってるよ。
ありがと>>267

301 :nobodyさん:2006/06/27(火) 11:32:54 ID:???.net
俺も感謝してるぜ。難癖付けるやつはどこにでもいるだろうから気にしないで欲しい。

302 :nobodyさん:2006/06/27(火) 11:34:55 ID:???.net ?#
難癖つけてるのは一人。
それもmod_perl厨w

303 :nobodyさん:2006/06/27(火) 18:14:29 ID:???.net
>>268
http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod
のFAQには、

> ・データベースへの接続を持続させたままにするにはどうすればよいですか?
>
> グローバルの値は実行をまたがって保持されるので、これを行う一番よい方法は接続を
> グローバル変数に格納し、実行のたびにその変数が既に定義されているかをチェックする
> ことです。

と書いてある。

304 :nobodyさん:2006/06/28(水) 01:04:03 ID:???.net
> ちなみに、このスレを最初から読めば、267が匿名とは言い難い気がする。

http://dictionary.goo.ne.jp/search.php?MT=%C6%BF%CC%BE&search_history=&kind=&kwassist=0&mode=0&jn.x=44&jn.y=4

> 自分の実名を隠してあらわさないこと。また、実名を隠して別の名を用いること。

匿名とは何か、定義を教えていただきたい。

305 :nobodyさん:2006/06/28(水) 01:51:08 ID:???.net
>>304
> 匿名とは何か、定義を教えていただきたい。
自分の実名を隠してあらわさないこと。また、実名を隠して別の名を用いること。


306 :nobodyさん:2006/06/28(水) 02:08:26 ID:???.net
難癖厨

307 :268:2006/06/28(水) 03:14:36 ID:???.net
>>303
アザース

mod_speedycgiもメモリ使用量が肥大しないようなので
今動かしてるシステムをmod_speedycgiに移行させる予定。

mod_speedycgiのレポートはこれからかな?
ググみたけど障害系のレポートが見つからなかったのが不安

308 :nobodyさん:2006/06/28(水) 09:43:30 ID:???.net ?#
専門系板の名物だな

309 :nobodyさん:2006/06/28(水) 18:03:20 ID:???.net
>>307
mod_speedycgiが入ってないのは、worker下ではエラーになったからです。
preforkで取るつもりです。

現在は、workerを取り直し中です。

310 :274:2006/06/29(木) 02:24:13 ID:???.net
>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さん:2006/06/29(木) 02:28:32 ID:ZFDM74Ge.net ?#
わくわく。

312 :274:2006/06/29(木) 02:34:01 ID:???.net
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:2006/06/29(木) 02:38:35 ID:???.net
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:2006/06/29(木) 02:42:52 ID:???.net
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:2006/06/29(木) 02:45:25 ID:???.net
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:2006/06/29(木) 02:50:53 ID:???.net
報告忘れ。
ソースnicky.cgi改。

317 :nobodyさん:2006/06/29(木) 03:09:10 ID:???.net
そのスペックでもHTMLってこんなにさばけるんですね
それに感動しちゃった

318 :nobodyさん:2006/06/29(木) 03:13:09 ID:ZFDM74Ge.net ?#
RegistryとPerlRunってこんなに違うのかぁ。。   

319 :nobodyさん:2006/06/29(木) 07:09:29 ID:???.net
ん、PerlRunよりCGIが速いってのは何故だろう。

320 :nobodyさん:2006/06/29(木) 09:58:45 ID:npShM0+K.net
久々にPerlが活気の良くなりそうなスレですな。

321 :nobodyさん:2006/06/29(木) 10:52:53 ID:???.net
apache2 workerとmod_perlって合性悪いんじゃなかったっけ?
apache2でやるならmod_perl2と小耳にした。

322 :nobodyさん:2006/06/29(木) 10:58:14 ID:???.net
>>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さん:2006/06/29(木) 11:14:15 ID:???.net
キャッシュには載るんじゃね?

324 :nobodyさん:2006/06/29(木) 13:42:36 ID:???.net
>>321
>>232の結果と併せて見れば、どう転んでも、同時接続数が少ない時は、
mod_perl(Registry),mod_speedycgi,fastcgiは同じ程度の速度だが、同時
接続数が増えると、mod_perl(Registry)の速度低下が目立つが他は、大き
な影響を受けないという傾向は動かないと思える。

ところで、
http://pc8.2ch.net/test/read.cgi/php/1141214874/16

にある話は本当?

FastCGIが標準でApacheに搭載される様になれば、FastCGIへの移行を
考えるけど、取りあえずは、環境に応じて、mod_speedycgiとspeedyCGIを
使い分けるのが現実的な選択の様ね。


325 :274:2006/06/29(木) 14:17:43 ID:???.net
>>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さん:2006/06/29(木) 14:25:15 ID:???.net
FastCGIってuse strictにしなくちゃいけなかったりするんですか?

327 :274:2006/06/29(木) 14:26:35 ID:???.net
>>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:2006/06/29(木) 14:28:01 ID:???.net
>>326
そんなことはないです。
use strictにした方が間違いを防げるというだけです。

329 :nobodyさん:2006/06/29(木) 14:55:42 ID:???.net
> ただ言えることは、nicky.cgi改が一本物でサイズ約160KB、CPUが非力という条件のため、

なにその巨大なウンコ。

330 :nobodyさん:2006/06/29(木) 15:00:14 ID:???.net ?#
apache1.3(win32)にmod_fastcgi組み込んだら
スクリプトにアクセスした瞬間数十MBのerrorlog吐いてプロセスが暴走した
なんで

331 :nobodyさん:2006/06/29(木) 15:00:33 ID:???.net
ゴミを使ってオナニーベンチをするスレはここですか?

332 :nobodyさん:2006/06/29(木) 15:11:40 ID:???.net
>>330
http://perldoc.jp/docs/modules/CGI.pm-2.89/CGI/Fast.pod
1.まずはここのサンプルCGIがFastCGIで動くようする。(手順通りにインスコすれば動くはず)
2.自分のスクリプトを動かす。
このような手順でやらないと何が間違いかエラーログだけではわからないと思う。

333 :nobodyさん:2006/06/29(木) 15:15:19 ID:???.net ?#
use CGI::Fastとかを加えないと動きもしないの?

334 :nobodyさん:2006/06/29(木) 15:20:52 ID:???.net
>>333
FastCGIの場合、CGI::FastまたはFCGIの無限ループを実行させるので、
use CGI::Fast;

use FCGI;
は必須です。

335 :nobodyさん:2006/06/29(木) 15:32:42 ID:???.net
>>333
FastCGIはいい情報あまりありませんが、
CGI::Fastなら
http://perldoc.jp/docs/modules/CGI.pm-2.89/CGI/Fast.pod

http://www.drk7.jp/MT/archives/000917.html
の下の方にあるFastCGI サンプル CGI のソースが参考になると思います。

FCGIなら本家の
http://www.fastcgi.com/devkit/doc/fastcgi-prog-guide/ch3perl.htm#5002
(特にサンプルプログラム)
ここが参考になると思います。

手取り足取りのようなマニュアルはおそらく無いと思います。


336 :nobodyさん:2006/06/29(木) 15:33:54 ID:???.net ?#
>>334-335
すみません迷惑かけて
本当にありがとうございます
大変参考になります

337 :335:2006/06/29(木) 15:50:27 ID:???.net
http://www.drk7.jp/MT/archives/000917.html
ここには短いソースで取ったFastCGI VS mod_perl のベンチが最後の方に載っています。
(ab -n 100 -c 10)
結果はやはり小差でFastCGIの勝ちです。

338 :nobodyさん:2006/06/29(木) 16:33:16 ID:???.net
>>337
この比較は、

lighttpd + FastCGI vs mod_perl + Apache1.3

で、httpd自体が違うんで、単純なmod_perl対FastCGIでは無いんです。

ただ、この lighttpd + FastCGI という組み合わせも面白そうですよね。
これなら、dagでrpmから入れられるし。

339 :335:2006/06/29(木) 17:01:24 ID:???.net
>>338
確かにその通りのようですね。
しかし、この結果を見るとlighttpd + FastCGIはApache + FastCGIより速いのかな?
と思います。
単体で圧勝するのは周知の事実のようですが。

340 :nobodyさん:2006/06/29(木) 18:24:12 ID:???.net
>>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さん:2006/06/29(木) 21:19:22 ID:???.net
> まあ、差が出たとしても、意味のある差は出ない様に思いますが。

ということで、速度に関して議論することは不毛であるという結論になりました。


342 :nobodyさん:2006/06/29(木) 21:33:27 ID:???.net
って、またPerl VS Javaみたいなことやるの?

343 :nobodyさん:2006/06/29(木) 21:50:21 ID:???.net
Java なんか使うやつはばかです。

344 :nobodyさん:2006/06/29(木) 21:57:00 ID:???.net
おいおい、始まったよ。

345 :nobodyさん:2006/06/29(木) 21:59:44 ID:???.net
Perlは過去の遺物です。

346 :nobodyさん:2006/06/30(金) 00:30:58 ID:???.net
>>345
その言葉は廃れつつあります。
むしろPHPが過去の遺物になりつつあります。

347 :nobodyさん:2006/06/30(金) 00:40:29 ID:???.net
>>346
その変わりに、純国産言語Rubyがあちらで盛り上がって逆輸入されている模様。
RubyのFastCGI対応は容易だそうです。

348 :nobodyさん:2006/06/30(金) 06:48:26 ID:???.net
>>345
> Perlは過去の遺物です。
君の理論で行くとJavaScriptも過去の遺物なのかな?(笑)

349 :nobodyさん:2006/06/30(金) 09:22:45 ID:???.net ?#
専門板の人って煽り耐性ないね

350 :nobodyさん:2006/06/30(金) 13:09:19 ID:???.net
>>349
基本的に技術者志向の人はまじめだからね。

351 :nobodyさん:2006/06/30(金) 19:15:37 ID:???.net
構ったところで知識が頭から抜け落ちるわけでも無し

352 :nobodyさん:2006/06/30(金) 21:21:51 ID:???.net
それは無いものは抜け落ちないよな。

353 :nobodyさん:2006/06/30(金) 22:24:25 ID:???.net
ひょっとして漏れの髪の毛のこと?

354 :353:2006/06/30(金) 22:30:18 ID:???.net
>>352
本当にどうも有難うございます。

355 :310:2006/06/30(金) 23:06:24 ID:???.net
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:2006/06/30(金) 23:10:19 ID:???.net
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:2006/06/30(金) 23:20:33 ID:???.net
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:2006/06/30(金) 23:29:44 ID:???.net
すいません。
フライングしました。
後はもう少し待ってください。

359 :310:2006/06/30(金) 23:40:39 ID:???.net
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さん:2006/06/30(金) 23:53:02 ID:???.net ?#
mod_speedycgi ハヤスギ ワロタ

361 :310:2006/07/01(土) 00:14:11 ID:???.net
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さん:2006/07/01(土) 03:18:50 ID:???.net
>>310
ご苦労様でした。

http://www.drk7.jp/MT/archives/000863.html

あたりを見て、SpeedyCGIより、FastCGIの方が速いのかと思っていたんですが、
mod_speedycgiを入れると、

mod_speedycgi > FastCGI > SpeedyCGI

という順番の様ですね。

perlだけ使うんであれば、導入の手間、速度の両面で、FastCGIを使うメリットは
無いのかな。

363 :nobodyさん:2006/07/01(土) 04:59:21 ID:???.net
無いと思いますけどね。

364 :nobodyさん:2006/07/01(土) 10:53:26 ID:???.net
こうなると、lighttpd+SpeedyCGIが気になって仕方ない。
lighttpd用のmod_s;peedycgiみたいなのは無いよね?

365 :nobodyさん:2006/07/01(土) 11:12:27 ID:???.net
lighttpdは確かに速いようですが、ボトルネックはCGIにあるのでlighttpdでスピードが上がる要素はほとんど無いと思う。

366 :nobodyさん:2006/07/01(土) 12:00:43 ID:???.net
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:2006/07/01(土) 12:03:41 ID:???.net
ソース

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:2006/07/01(土) 12:05:28 ID:???.net
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:2006/07/01(土) 12:07:54 ID:???.net
以下、結果報告。

370 :355:2006/07/01(土) 12:14:24 ID:???.net
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:2006/07/01(土) 12:15:04 ID:???.net
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:2006/07/01(土) 12:17:41 ID:???.net
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:2006/07/01(土) 12:18:55 ID:???.net
すいません。
>371と>372は同じものです。

374 :355:2006/07/01(土) 12:31:33 ID:???.net
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:2006/07/01(土) 12:33:33 ID:???.net
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:2006/07/01(土) 12:38:01 ID:???.net
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:2006/07/01(土) 12:40:23 ID:???.net
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:2006/07/01(土) 12:42:34 ID:???.net
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:2006/07/01(土) 12:43:06 ID:???.net
以上、報告終わり。

380 :nobodyさん:2006/07/01(土) 12:44:06 ID:???.net
平均は真ん中3つも出してくれよ。

381 :355:2006/07/01(土) 12:56:02 ID:???.net
>>380
了解
今から出します。

382 :355:2006/07/01(土) 13:07:11 ID:???.net
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さん:2006/07/01(土) 13:13:38 ID:???.net
うわ、ありがとうございます。
やっぱり不安定なやつの救済にはならなかったかorz

384 :355:2006/07/01(土) 13:29:33 ID:???.net
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:2006/07/01(土) 13:38:10 ID:???.net
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さん:2006/07/01(土) 13:40:29 ID:???.net
>>335
またまた、ご苦労様です。
これだけあると、見るのも大変だけど、作る方は、もっと大変なんでしょうね。(^^;

これを見ると、mod_perl,fastcgiは、同時接続数が増えた際のレスポンスの落ち込みが
他と比べて大きいですね。
fastcgiでは、大きなソースだと、その差が見えずらくなりますが。

この中では、fastcgi cが一番速いですが、cで書くんだったら、fastcgiを使わずに
module作った方が良いかなと言う気もします。

開発・導入コスト、スピード、メンテナンス性を考えると、Apache API 使いたいとか
言うのでなければ、mod_speedycgiって、とても良い選択肢ですね。


387 :nobodyさん:2006/07/01(土) 13:57:12 ID:HcFO9A5X.net ?#
よくわかってないのですが、
mod_speedycgiとspeedy(perperl)って何が違うんですか?


388 :355:2006/07/01(土) 14:00:16 ID:???.net
>>386
mod_speedycgiは1つだけ欠点が。
worker環境では動きませんでした。
運用可能なのは、Apache1(確認)とApache2のprefork(確認)のみと思われます。

389 :nobodyさん:2006/07/01(土) 14:12:54 ID:???.net
>>387
SpeedyCGIは
httpd→SpeedyCGIフロントエンド起動→SpeedyCGIバックエンド呼び出し
こういう感じになります。
mod_speedycgiはSpeedyCGIフロントエンドがアパッチプロセスに埋め込まれて常駐します。
httpd内でSpeedyCGIフロントエンド呼び出し→SpeedyCGIバックエンド呼び出し
こういう感じかな。

小さいソースでSpeedyCGIが伸びないところをみると、SpeedyCGIフロントエンド起動はコストが高いのかも(インタープリタ起動のコストの2/3ぐらい?)。

390 :nobodyさん:2006/07/01(土) 20:49:09 ID:???.net
パフォーマンス悪かろうが何だろうが、それでも mod_perl を使うけどな(´Д`)

391 :nobodyさん:2006/07/01(土) 21:20:12 ID:???.net
mod_perlはApache Software Foundationのお膝元ってのが大きい。

392 :nobodyさん:2006/07/01(土) 21:28:46 ID:???.net
>>390
それはそれで個人の自由だからいいんでない。

393 :nobodyさん:2006/07/01(土) 21:47:44 ID:???.net
>>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:2006/07/01(土) 22:37:21 ID:???.net
>>393
> 意味がなくても、use CGI;use DBI;use Templateあたりを追加したHelloWorldなソースで比
> べると、CGIよりも良い成績が出るのではないかと思っています。

useしたものはメモリーに置くということは知りませんでした。
基本的にできるだけ同じ条件で取る方向で測定したので、知っていても同じ条件で取ったと思います。
インタープリタをプロセス内にあることのアドバンテージは起動コストの高い>382で出ていると思います。(hello world)


395 :355:2006/07/01(土) 22:40:01 ID:???.net
×インタープリタを
○インタープリタが

396 :nobodyさん:2006/07/01(土) 23:38:12 ID:???.net
mod_perlではスワップ発生してたりしないかな?

397 :393:2006/07/02(日) 00:05:08 ID:???.net
>>394
> useしたものはメモリーに置くということは知りませんでした。

出鱈目な事を言っているといけないので、資料を当たってみました。
下記の "Apache::PerlRun--a closer look" が参考になると思います。

http://perl.apache.org/docs/1.0/guide/porting.html#Apache__PerlRun__a_closer_look

という事で、スクリプトの書き方によって、PerlRunもRegistryに近い速度を出せるそうです。
まあ、ベンチを取る時に、全体のコード量と、useする比率をどの程度にするのが妥当かと
いうのは、非常に難しい問題なのですが。

398 :355:2006/07/02(日) 00:14:54 ID:???.net
>>396
>mod_perlではスワップ発生してたりしないかな?

一応ベンチ取ったときに書き込みましたが、長すぎて読みにくかったかな。
>384の場合のみ発生しています。
Registryは-c 40からPerlRunは-c 100からです。

399 :355:2006/07/02(日) 01:06:21 ID:???.net
すいません。
一部訂正。

エクセルを使った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:2006/07/02(日) 01:18:46 ID:???.net
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:2006/07/02(日) 01:27:29 ID:???.net
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さん:2006/07/02(日) 03:23:34 ID:???.net
最後に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さん:2006/07/02(日) 03:24:37 ID:???.net
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:2006/07/02(日) 03:27:00 ID:???.net
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:2006/07/02(日) 03:33:58 ID:???.net
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:2006/07/02(日) 03:38:35 ID:???.net
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:2006/07/02(日) 03:39:08 ID:???.net
以上、報告終了。

408 :nobodyさん:2006/07/02(日) 03:41:42 ID:???.net
>>390
メモリ食うからpreforkだと起動コストが高くなるってだけ。workerにすればmod_perlが最速。
・・・だといいな。

409 :nobodyさん:2006/07/02(日) 06:47:26 ID:rDIMAYNl.net
はげしく乙です!!!!!!!!!!!!!!!!!! >>407

410 :nobodyさん:2006/07/02(日) 06:48:00 ID:rDIMAYNl.net
すごすぎて、もう一回書いちゃおう。
禿げ上がるほど乙です!!! >>407

411 :nobodyさん:2006/07/02(日) 10:25:42 ID:???.net
>>402
お疲れ様でした。

lighttpdの静的コンテンツの出力は、噂通りに速いですね。
ただ、FastCGIのhelloWorldな動的コンテンツでは、Apacheの方が速い。
でも、この差はソースが大きくなると見えなくなるので、実質問題にならない
差ですね。

RoR界隈では、lighttpd+FastCGIが流行っている様ですが、動的コンテンツ
の速度はApacheとほとんど同じだけど、静的コンテンツの速度が速いので
トータルで速くなると言う事なのか、インストールが簡単なのか、それとも他
の理由があるのか、どうなんでしょう。

ところで、lighttpdは、普通のcgiは出来ないんでしょうか?

412 :402:2006/07/02(日) 11:51:36 ID:???.net
>>411
lighttpdは普通のcgiもできます。
測定しなかったのは興味がなかったのと、遅いので時間がかかるのがいやというだけです。
ちょっとワガママが入ってます。

413 :nobodyさん:2006/07/02(日) 12:07:51 ID:???.net
>>412
通常のCGIは、どうでも良かったりしますが、lighttpd + SpeedyCGIは興味があるかなと。

414 :402:2006/07/02(日) 12:13:08 ID:???.net
>>413
了解です。
lighttpd + SpeedyCGIも追加します。

415 :nobodyさん:2006/07/02(日) 15:51:41 ID:???.net
測定に使ってるマシンのスペックはどうなんだろう。ターゲットマシンだけじゃなくて、クライアントのPCもそれなりに高性能じゃないといけないと思うけど。

416 :nobodyさん:2006/07/02(日) 16:01:25 ID:???.net
ポカーン

417 :nobodyさん:2006/07/02(日) 16:38:15 ID:???.net ?#
"差"を計ってるのにスペックとな

418 :nobodyさん:2006/07/02(日) 16:46:53 ID:???.net
(○口○*) ポーカン

419 :nobodyさん:2006/07/02(日) 18:19:12 ID:???.net
>>415
クライアントの差が出るとすると、-c 1 より -c 10 の方が高い成績を出している
l静的コンテンツ取得の所位じゃない?
リクエストの応答を受けてから、次のリクエストまでの時間を多少稼げる。
ただ、動的コンテンツ取得については、さほど意味のある値ではないと思う。

420 :402:2006/07/02(日) 20:18:01 ID:???.net
>>415
すいません。
急用で外出していました。

測定条件の記入漏れです。
localhostで測定しています。
つまり、サーバーマシン=クライアントマシンです。

421 :nobodyさん:2006/07/02(日) 20:37:17 ID:???.net
abってすごく負荷かかるんだよ。ターゲットマシンとサーバマシンは分けるのが普通。
まあ、簡易に測定する場合は同一マシンでやっちゃうこともあるけど。

422 :nobodyさん:2006/07/02(日) 21:00:23 ID:???.net
分けてもカニるチップなLANカードじゃパケットの取りこぼしと再送の誤差が入るし。

423 :402:2006/07/02(日) 21:05:35 ID:???.net
すいません。
まずかったかな。

424 :402:2006/07/02(日) 21:18:01 ID:???.net
まあ、あれこれ言っても今更仕方がないし傾向をみるためだけのものと思ってください。
どのみちベンチは個々の環境に左右されるので。

後、もう少し待ってください。
lighttpdのSpeedyCGIとCGIのベンチ終わります。

425 :nobodyさん:2006/07/02(日) 21:32:03 ID:???.net
別にいいんでね?>localhost
マシンの性能計ってるわけじゃないし



426 :nobodyさん:2006/07/02(日) 22:04:59 ID:???.net
エビにどれだけ喰われてるかが気になるが、

427 :nobodyさん:2006/07/02(日) 22:13:04 ID:???.net
200クライアントとか安ルータでは厳しい。

428 :nobodyさん:2006/07/02(日) 22:15:55 ID:???.net
直結でもしない限り、ルータでレスポンス低下とかね。

429 :nobodyさん:2006/07/02(日) 22:20:09 ID:???.net
K6-2 475MHz
512MB
Vine3.2最小インストール+コンパイル環境
+lighttpd-1.4.11ソース+fcgi-2.4.0ソース

テストソース
S hello world(>367-368)
L nicky.cgi改

以下、結果報告。

430 :429:2006/07/02(日) 22:23:16 ID:???.net
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:2006/07/02(日) 22:30:12 ID:???.net
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:2006/07/02(日) 22:31:23 ID:???.net
ab -n 2000 -c 200だけもう少しお待ちを。

433 :429:2006/07/02(日) 22:38:08 ID:???.net
×fcgi-2.4.0ソース
○PersistentPerl-2.22ソース

434 :429:2006/07/02(日) 22:44:58 ID:???.net
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:2006/07/02(日) 22:50:29 ID:???.net
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:2006/07/02(日) 22:51:24 ID:???.net
以上、報告終了。

437 :nobodyさん:2006/07/02(日) 22:53:09 ID:???.net
windows版のApacheをインストールして、 ab.exeを使えばいい。
同時接続数100とかでやると、タスクマネージャのCPU使用率がぐわっとあがるのがわかる。

438 :nobodyさん:2006/07/02(日) 22:57:54 ID:???.net
>>437
どのアクセラレータもその影響をうけるんだから、比較には問題なくない?
あと、>427も言ってるが今度はルータの影響受けるんでPC間直結になると思うが。

439 :429:2006/07/02(日) 23:06:24 ID:???.net
lighttpd+FastCGIの補足。
この組み合わせの動的呼び出しは、方法が見つからなかったのでlighttpd.confに記述してlighttpdと同時に対象CGIを起動。
1回目のキャッシュクリアはせず。
このため、1回目の起動でスコアが落ちてません。

3点平均でご勘弁を。

またSpeedyCGI Lのab -n 2000 -c 200のスコアが変だったのでSpeedyCGI L全部取り直しましたが同じでした。???

440 :429:2006/07/02(日) 23:09:26 ID:???.net
>>439
> 1回目のキャッシュクリアはせず。
方法がよくわからなかったと言うのが本当のところです。
lighttpd再起動でよかったのかな?

441 :nobodyさん:2006/07/02(日) 23:12:25 ID:???.net
>>438
影響どころか気絶するルータもある

442 :nobodyさん:2006/07/02(日) 23:17:36 ID:???.net
>>437
ネットワークを酷使すればCPU使用率急上昇は普通。
そのCPU使用率はab.exeのものと確認済み?

443 :nobodyさん:2006/07/03(月) 01:27:55 ID:???.net
この初心者スレの存在意義って何だろう?

444 :nobodyさん:2006/07/03(月) 01:45:16 ID:???.net
Speedyが同時多発接続でgdgdになってきてるのはエビに食われてるからだと思うんだよね。

445 :nobodyさん:2006/07/03(月) 01:58:48 ID:???.net
>>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さん:2006/07/03(月) 12:04:55 ID:???.net
>>444
> Speedyが同時多発接続でgdgdになってきてるのはエビに食われてるからだと思うんだよね。
んだな。
が、他クライアントをつなぐと今度はNICにCPU食われる。
結局はNICのCPU消費とどっちが大きいかだけの違いでねえ?
いいんでねえ、localhost。

447 :nobodyさん:2006/07/03(月) 12:54:22 ID:???.net
NIC食うからねえCPU。
http://www.nicmania.net/

448 :nobodyさん:2006/07/03(月) 19:21:39 ID:???.net
> この初心者スレの存在意義って何だろう?

それは、何だ、Javaと並ぶ巨大宗教Perlの莫大な遺産の活用じゃない。

449 :nobodyさん:2006/07/03(月) 22:39:17 ID:???.net
CPU100%にならないように気をつけながらベンチマークとるのが普通なんだが。
まあ、まるで役にたたないとは言わないが、仕事でやるなら最初からやり直させるな。

450 :nobodyさん:2006/07/03(月) 22:47:49 ID:???.net
はぁ?

451 :nobodyさん:2006/07/03(月) 22:49:14 ID:???.net
ベンチとるときはCPU振り切れるのが普通。

452 :nobodyさん:2006/07/03(月) 22:49:51 ID:???.net
それがベンチ

453 :nobodyさん:2006/07/03(月) 22:50:43 ID:???.net
>>448
つーか、
http://pc8.2ch.net/test/read.cgi/php/1151250398/

あたりに書くつもりだった誤爆じゃない?
書き込み時刻を見ると、なんとなく辻褄が合う。
スルーしなくっちゃ。

ここのスレは、おそらく住人が10人以下の人里離れた小さな村。
普通の初心者は近付かない。

454 :nobodyさん:2006/07/03(月) 22:56:10 ID:???.net
>>449
> CPU100%にならないように気をつけながらベンチマークとるのが普通なんだが。

処理をフル回転で速く終わらせ、スコアを競うのがベンチマークw

455 :nobodyさん:2006/07/03(月) 23:04:14 ID:???.net
>>453
センセー、質問。
「なぜに他のスレとの辻褄まで調べてるんですか?」

456 :nobodyさん:2006/07/03(月) 23:06:38 ID:???.net
だから、クライアントのCPUが100%にならないように、に決まってるだろ。そんなのいちいち説明しなくてもわかりそうなもんだが。

457 :nobodyさん:2006/07/03(月) 23:06:39 ID:???.net
>>455
調べる事が好きだから。

458 :nobodyさん:2006/07/03(月) 23:09:05 ID:???.net
>>456
>449のカキコでは誰もそうは思わんよ。

459 :nobodyさん:2006/07/03(月) 23:11:27 ID:???.net
>>457
一番スルーしてなくない?

460 :nobodyさん:2006/07/03(月) 23:12:36 ID:???.net
>>459
若干の自己矛盾を感じている。orz

461 :nobodyさん:2006/07/03(月) 23:15:01 ID:???.net
>>460
ウケルー
メチャ、センスある

462 :nobodyさん:2006/07/04(火) 02:20:16 ID:???.net
>447のサイトのメインP、Pen4 2.4Gだよ。
エビとニクどっちが食うんだろう?

463 :nobodyさん:2006/07/04(火) 02:21:17 ID:???.net
↑メインP→メインPC

464 :nobodyさん:2006/07/05(水) 12:19:01 ID:???.net
マシンのベンチを取るスレはここですか?

465 :nobodyさん:2006/07/05(水) 18:20:09 ID:???.net
↑ベンチをすれば当然マシンのベンチでもあるなw

466 :nobodyさん:2006/07/06(木) 02:34:15 ID:???.net
>>445
>ちなみに、Hello Worldでテストする分には、mod_speedycgiより、PHPの方が速いんですが、
PHPの環境は?まさか普通のapacheモジュール版と比較したりしてないよね?

467 :nobodyさん:2006/07/07(金) 20:11:33 ID:hqAFRSkq.net
WebProg板のスレだというのに、1日書き込みがないだけで気になる。

468 :nobodyさん:2006/07/07(金) 23:42:15 ID:???.net
>>466
まさかの普通のapacheモジュール版ですが、このケースで比較対象として問題あります?

469 :nobodyさん:2006/07/07(金) 23:55:24 ID:???.net
>>468
ノープロブレム。
文脈からして、当然そうだよな。

470 :nobodyさん:2006/07/08(土) 00:11:01 ID:???.net
mod_speedycgiのHello WorldにはCのHello Worldも負けてるのになあ。

471 :nobodyさん:2006/07/08(土) 11:43:01 ID:???.net
>>470
PHPは、短いソースでは速いですね。
ちなみに、apxs -g -n hello とかで出来る、hello worldなソースをmake;make installすると、
私がちょっとテストした環境で、mod_speedycgiの2.5倍程度の速度が出ました。
Cを使うなら、handler書くのが良いのかなと思いました。
そこからすると、mod_perlも、Registry使わずに、handlerな形にすると、順位に変動が
ある様な気もしています。
まあ、アプリが大きくなれば吸収されてしまう差なので、速度の為だけにそうする必要が
あるケースは稀でしょうが。

472 :nobodyさん:2006/07/08(土) 16:05:57 ID:???.net
このスレを見て、MovableTypeでspeedyCGIを使いたいと思って
apache1.3の環境でspeedyCGIを入れ、mt.cgiの先頭を書き換えて実行してみました。

1回目は無事表示されるんですが、リロードするとInternalServerErrorが。
何かインストールで失敗してるんでしょうか…?

473 :nobodyさん:2006/07/08(土) 16:45:31 ID:???.net
ここはそういうスレではないです

474 :nobodyさん:2006/07/08(土) 18:54:22 ID:uy7Z+OsL.net ?#
>>472
mtの前に、hello.cgiとか動かしてみればいいんでないすか。

475 :nobodyさん:2006/07/08(土) 19:13:56 ID:???.net
>>471
何か内容が反対に受け取られてるような気が?
補足すると
mod_speedycgiのHello WorldにはCのHello Worldも負けてるのに
比較対照がノーマルPHPなわけはないだろう。

こう言いたかったのよ。

476 :472:2006/07/08(土) 19:20:32 ID:???.net
>>473
質問スレではないかもしれないとは思ったのですが、
皆さんはかなりお詳しいと思い、悩んだのですが思い切って質問させていただきました。
気分を害しましたら、ごめんなさい。

>>474
レスありがとうございます。
「hello.cgi」というのは、要するにテスト用のcgiを作成して、ということでよろしいですか?
googleなどでヒットするhello.cgiを試しに作ってみて、先頭部分を# !/usr/bin/speedyと
書き換えてみましたところ、無事リロードしても表示されました。
となると、問題はmt.cgiなのでしょうか…?

googleでいろいろ調べまくったのですが、どうも有益な情報が見つかりません。
movabletypeでspeedyCGIを動かしている方々、どうぞお知恵を拝借ください…。

477 :nobodyさん:2006/07/08(土) 19:56:46 ID:???.net
>>476
>1回目は無事表示されるんですが、リロードするとInternalServerErrorが。

グローバル変数の初期化ができてない典型のように思えますが、
そのmtはmod_perlやFastCGIでは正常に動き、SpeedyCGIのみ動かない状態でしょうか?

mtは触ったことがないですが、mod_perlかどうか判定してコードを切り替えているという事は聞いた事があります。
≠mod_perlの判定のためCGI用のコードが実行されている?

後、mtはSpeedyCGIよりFastCGIの方が情報が多いので楽かも。
http://as-is.net/blog/archives/001042.html
ここが有名。

478 :nobodyさん:2006/07/08(土) 20:47:04 ID:???.net ?#
MTのコードちょっと覗いてみたら
mod_perl用に条件分岐しまくりワロタ

479 :471:2006/07/08(土) 20:48:33 ID:???.net
>>475
mod_speedycgiのHello WorldにはCGI/CのHello Worldも負けてるのに
比較対照がCGI/PHPなわけはないだろう。

と言う意味で解釈していたのですが、これで良いんですよね?

処理系の速度としては、C > perl > PHP というのは周知の事実。
PHPが速いと言われるのは、Apacheのmoduleとして動かしているからで、
この起動速度は、PHPが速く、小さいコードでは、その差が効いてPHPが
速い。
この先は触れていないんですが、、コードが大きくなると、処理系の遅さが
効いてきて、perl系に抜かれるという意味で書いてました。

480 :475:2006/07/08(土) 20:58:10 ID:???.net
>>479
すまそ。
正確に把握されてたのね...

481 :472:2006/07/08(土) 21:07:45 ID:???.net
>>477
レスありがとうございます。
FastCGIは試していないのですが、mod_perlをインストールする際にエラーが出て
インストールできなかったので、他の方法がないのかと探していてこのスレへたどりつきました。
ここを見ていると、mod_perlはいまいち評価が高くないように感じ、speedyCGIを試していたところでした。

>グローバル変数の初期化ができてない典型のように思えますが、
まさにそうだと思うのですが、対処法がわかりません…。

参考サイトを見ながら、FastCGIの導入を勉強してみます。
レスどうもありがとうございました。大変助かりました。

482 :477:2006/07/08(土) 21:22:44 ID:???.net
>>481
あえてSpeedyCGIを試すなら、mod_perl判定フラグをtrueにすればいいのではないかと思いますが。
SpeedyCGIとFastCGIはメモリ消費も速度も近いので、楽な方を選ぶべきだと思います。

483 :477:2006/07/08(土) 21:49:31 ID:???.net
>>481
後、忘れていました。
FastCGIはScriptAliasがかかっているDirでは正常に動かないです。
mtのインスコ先にScriptAliasがかかっている場合は外してしまって、
変わりに
Alias /cgi-bin/ "......."
<Location /cgi-bin/>
AddHandler cgi-script .cgi
fastcgi-script .fcgi
.....
</Location>
のような感じで設定したらいいです。

484 :477:2006/07/08(土) 21:50:32 ID:???.net
×fastcgi-script .fcgi
○AddHandler fastcgi-script .fcgi

485 :477:2006/07/09(日) 00:58:13 ID:???.net
後、
×<Location /cgi-bin/>
○<Location /cgi-bin>
もう一つ、
http://as-is.net/blog/archives/001042.html
の通りにやるなら、
AddHandler fastcgi-script .fcgi
これは要らないです。

間違いだらけ、本当にすいません。

486 :477:2006/07/09(日) 01:02:01 ID:???.net
また間違いました。
AddHandler fastcgi-script .fcgi
やっぱり要ります。
連投しまくり、すいません。

487 :472:2006/07/09(日) 01:17:20 ID:???.net
>>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:2006/07/09(日) 01:43:44 ID:???.net
>>487
> LoadModule fastcgi_module libexec/apache/mod_fastcgi.so

エラーログの指摘だとこの行のエラーですよね。
多分、>487さんの環境では、
LoadModule fastcgi_module modules/mod_fastcgi.so
これでいいんではないかと思います。

489 :487:2006/07/09(日) 02:10:48 ID:???.net
>477さん
いろいろとありがとうございます(つД`)2chでこんなに親切にされたの初めてです。

477さんのおっしゃるとおり試してみたのですが、またエラーが出てしまいました。
明日改めてfastcgiを入れ直してみようかと思います。

それで、もしよろしければこちらの板でずっと続けてしまうと皆さんにご迷惑をおかけしているような
気もしますので、メールで教えていただけませんでしょうか…。
もう、藁にもすがる思いなんです…。
メアド欄にアドレスを入れましたので、もしよろしければお返事ください。
本当にありがとうございました。

490 :477:2006/07/09(日) 02:17:43 ID:???.net
メールしました。

491 :nobodyさん:2006/07/09(日) 09:09:57 ID:???.net ?#
もう放置しろよ

492 :nobodyさん:2006/07/09(日) 12:41:51 ID:???.net
>>489
うまく行ったら、どの辺で引っかかっていたのか、レポートよろ。

493 :nobodyさん:2006/07/11(火) 14:51:25 ID:EY3GIFAe.net
mod_perlに移行したら、cronで動かなくなりました。
どうしたらいいんでしょう?



494 :nobodyさん:2006/07/11(火) 18:03:59 ID:???.net
cronで何をうごかしてたん。

495 :nobodyさん:2006/07/11(火) 21:22:46 ID:EY3GIFAe.net
>>494
perlです。すいません、自己解決しました。

496 :nobodyさん:2006/07/12(水) 11:09:51 ID:???.net
SpeedyCGIで
CGI::Sessionを使うときに注意すべき点があれば
教えてください。

497 :nobodyさん:2006/07/12(水) 21:56:44 ID:???.net
CGI::Session->flush;

498 :nobodyさん:2006/07/18(火) 01:51:23 ID:???.net
保守

499 :nobodyさん:2006/07/19(水) 15:16:27 ID:???.net
mod-perlでSSIを使いたく、Apache::SSIをインストしたいんですが、
依存でApache::Constantsがないと言われます。

それで、cpanでApache::Constantsをインストしようとすると、

************* WARNING *************

Your Perl is configured to link against libgdbm,
but libgdbm.so was not found.
You could just symlink it to /usr/lib/libgdbm.so.2.0.0


************* WARNING *************
Enter `q' to stop search
Please tell me where I can find your apache src
[../apache_x.x/src]


と警告が二つ出てしまいます。/apache/src なんてどこにもないんだけど、これはなんでしょか?(-o-;



500 :nobodyさん:2006/07/19(水) 22:40:18 ID:???.net
/usr/local/src/apache_x.x/src
とかなんじゃね

501 :nobodyさん:2006/07/19(水) 22:46:09 ID:???.net
全くスレ違いだと思うが、

> ************* WARNING *************
> 
> Your Perl is configured to link against libgdbm,
> but libgdbm.so was not found.
> You could just symlink it to /usr/lib/libgdbm.so.2.0.0

Perlがgdbm前提でビルドされているのに、gdbmの実体がみつからない。
/usr/lib/libgdbm.so.2.0.0に実体へのシンボリックリンクを作れ。

> ************* WARNING *************
> Enter `q' to stop search
> Please tell me where I can find your apache src
> [../apache_x.x/src]
qを入力した後アパッチソースのパスを入力しろ。

以上で間違いないと思うが。

502 :499:2006/07/19(水) 22:51:32 ID:NWioDOXW.net
# locate apache_
/root/.cpan/build/mod_perl-1.29/src/modules/perl/apache_inc.h
/usr/share/doc/mod_perl-2.0.2/docs/devel/core/apache_integration.pod
/usr/share/doc/mod_perl-2.0.2/docs/user/porting/code/apache_mp3_2.diff
/usr/share/doc/mod_perl-2.0.2/docs/user/porting/code/apache_mp3_7.diff
/usr/share/doc/mod_perl-2.0.2/docs/user/porting/code/apache_mp3_9.diff
/var/www/icons/apache_pb.gif
/var/www/icons/apache_pb.png
/var/www/icons/apache_pb2.gif
/var/www/icons/apache_pb2.png
/var/www/icons/apache_pb2_ani.gif
/var/www/manual/images/apache_header.gif

なのですが・・・(-o-;

503 :499:2006/07/19(水) 22:55:32 ID:NWioDOXW.net
>>501
スレ違い失礼します。。
gdbmの実体とはlibgdbm.soですよね?見当たらないんですが。。(-o-;

gdbmってなんでしょ?調べてきます。perlは問題なく動いてはいるんですが。。


504 :501:2006/07/19(水) 23:56:28 ID:???.net
>>503
gdbmは最も単純なデータベース。
BarkleyDBと似たようなもの。
locate gdbmの結果は?

505 :501:2006/07/20(木) 00:02:01 ID:???.net
>>502
アパッチがディストリのものだと、どうすればいいかはケースバイケース。
自力でググるしかない。

506 :499:2006/07/20(木) 08:49:55 ID:YgRADElF.net
>>504
# locate gdbm
/usr/lib/libgdbm.so.2
/usr/lib/libgdbm.so.2.0.0
/usr/lib/python2.4/lib-dynload/gdbmmodule.so
/usr/local/man/man7/maildropgdbm.7
/usr/local/share/maildrop/html/maildropgdbm.html
/usr/local/src/maildrop-2.0.2/gdbmobj
/usr/local/src/maildrop-2.0.2/maildropgdbm.7
/usr/local/src/maildrop-2.0.2/maildropgdbm.html
/usr/local/src/maildrop-2.0.2/gdbmobj/.deps
/usr/local/src/maildrop-2.0.2/gdbmobj/Makefile
/usr/local/src/maildrop-2.0.2/gdbmobj/Makefile.am
/usr/local/src/maildrop-2.0.2/gdbmobj/Makefile.in
/usr/local/src/maildrop-2.0.2/gdbmobj/aclocal.m4
/usr/local/src/maildrop-2.0.2/gdbmobj/config.h
/usr/local/src/maildrop-2.0.2/gdbmobj/config.h.in
/usr/local/src/maildrop-2.0.2/gdbmobj/config.log
/usr/local/src/maildrop-2.0.2/gdbmobj/config.status
/usr/local/src/maildrop-2.0.2/gdbmobj/configure
/usr/local/src/maildrop-2.0.2/gdbmobj/configure.in
/usr/local/src/maildrop-2.0.2/gdbmobj/gdbmobj.c
/usr/local/src/maildrop-2.0.2/gdbmobj/gdbmobj.h
/usr/local/src/maildrop-2.0.2/gdbmobj/gdbmobj2.c


507 :501:2006/07/20(木) 09:01:09 ID:???.net
>>506
通常、
/usr/lib/libgdbm.so.2は
/usr/lib/libgdbm.so.2.0.0へのシンボリックリンク。
#cd /usr/lib
#ln -s libgdbm.so.2 libgdbm.so
で解決するかと。

508 :499:2006/07/20(木) 09:15:28 ID:YgRADElF.net
続き
/usr/local/src/maildrop-2.0.2/gdbmobj/gdbmobj3.c
/usr/local/src/maildrop-2.0.2/gdbmobj/libtool
/usr/local/src/maildrop-2.0.2/gdbmobj/stamp-h1
/usr/local/src/maildrop-2.0.2/gdbmobj/testgdbm.C
/usr/local/src/maildrop-2.0.2/gdbmobj/testsuite
/usr/local/src/maildrop-2.0.2/gdbmobj/testsuite.txt
/usr/local/src/maildrop-2.0.2/gdbmobj/.deps/gdbmobj.Plo
/usr/local/src/maildrop-2.0.2/gdbmobj/.deps/gdbmobj2.Plo
/usr/local/src/maildrop-2.0.2/gdbmobj/.deps/gdbmobj3.Plo
/usr/local/src/maildrop-2.0.2/gdbmobj/.deps/testgdbm.Po
/usr/local/src/maildrop-2.0.2/maildrop/maildropgdbm.7
/usr/local/src/maildrop-2.0.2/maildrop/maildropgdbm.html
/usr/share/doc/gdbm-1.8.0
/usr/share/doc/gdbm-1.8.0/COPYING
/usr/share/doc/gdbm-1.8.0/NEWS
/usr/share/doc/gdbm-1.8.0/README
/usr/share/doc/man-pages-ja-20060115/translation_lists/GNU_gdbm.translation_list
/usr/share/man/ja/man3/gdbm.3.gz
/usr/share/mime/application/x-gdbm.xml

です

509 :499:2006/07/20(木) 13:36:45 ID:???.net
501さん、色々とありがとうございます。

FedoraCore5なんですが、ググってもそれらしい情報が探し出せない(-o-;
Apache::SSIってあんまり使われてないのかな;;


510 :501:2006/07/20(木) 22:00:08 ID:???.net
# yum install httpd-devel

> ************* WARNING *************
> Enter `q' to stop search
> Please tell me where I can find your apache src
> [../apache_x.x/src]
ここで'q'を打った後、
/usr/include/httpd

/usr/lib/httpd/build
を入力。

これでいいかも。
断っておくがFedoraCoreほとんど知りません。
RPMの中身からの憶測なので違ったらすまそ。

511 :nobodyさん:2006/07/23(日) 03:21:11 ID:???.net
mod_perlからmod_speedycgiに引越中。
環境も整ってきたので、適当にベンチとってみました。
予想以上の結果にビックリしてます。
実際運用している物と同じシステムで負荷の高い(DBIでSELECT)メインスクリプトに
5つほどライブラリでばらしています。

ab -n 1000 -c 10
PerlRun+DBI           10.60 [#/sec]
PerlRegistry+DBI         44.74[#/sec]
PerlRegistry+Apache::DBI   103.67[#/sec]
mod_speedycgi+DBI       219.51[#/sec]

数回とりましたが、おおよそこんなもん
速度とメモリ使用量はすばらしいんだけどな〜 mod_speedycgiがわからない事だらけ。
DBIの扱いにクセとかあるのかな?なんとかDBI接続できてるんだけど不安定(同一ソースで成功したり失敗したり)
デバッグは大変だと思う、たんに-wをつけていてもerror_logに入ってこないヶ所も多々あるように感じる。
DBIのエラーや不都合をさぐるのに$sth->errstrも効果無い?のでDBI->trace()でさぐってます。
ググってそれなりの資料が出てくる日まで、速度とメモリ使用量のメリットをあきらめてmod_perlにもどそうかと検討中ですw

512 :nobodyさん:2006/07/23(日) 05:14:39 ID:???.net
>>511
SpeedyCGIはデフォだと1時間でキャッシュが捨てられるから、不安定なのはその辺じゃない?

513 :nobodyさん:2006/07/23(日) 05:18:43 ID:???.net
正確には1時間アクセスがないと、だな。
パラメータ指定するか、wgetをcron経由で起動すればすむけど。

514 :nobodyさん:2006/07/23(日) 11:26:54 ID:???.net ?#
http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod
ここにも定義されてるのをチェックするって書いてあるしな

515 :nobodyさん:2006/07/23(日) 12:00:15 ID:???.net
で、511は、↑にある

> ・データベースへの接続を持続させたままにするにはどうすればよいですか?
> グローバルの値は実行をまたがって保持されるので、これを行う一番よい方法は
> 接続をグローバル変数に格納し、実行のたびにその変数が既に定義されているか
> をチェックすることです。

をやっているの?


516 :nobodyさん:2006/07/23(日) 12:09:39 ID:???.net
> ab -n 1000 -c 10
> PerlRun+DBI           10.60 [#/sec]
> PerlRegistry+DBI         44.74[#/sec]
> PerlRegistry+Apache::DBI   103.67[#/sec]
> mod_speedycgi+DBI       219.51[#/sec]

これって非常に不思議な結果なのだけど、それぞれどんな設定なのかな?

517 :511:2006/07/23(日) 16:22:12 ID:???.net
>512-513
テスト中の出来事なので1時間以内にキャッシュにアクセスしています。
wgetをcron経由の技は違うシーンでパクらせて頂きます。

>514
use CGI::SpeedyCGI;
my $sp = CGI::SpeedyCGI->new;
print "Running under speedy=", $sp->i_am_speedy ? 'yes' : 'no', "\n";

↑はチェック済みでyesが出ました。↓はこの後に試してみます。

if (eval {require CGI::SpeedyCGI} && CGI::SpeedyCGI->i_am_speedy) {

>515
use vars qw($dbh);
unless (defined($dbh)) {
$dbh = DBI->connect(***, ****);
}
ちなみに↓も試しました。
$dbh = DBI->connect_cached(***, ****);
use varsでもmy $dbhでも同じ状況です。
更新後に成功して2回目でDBIがコケる事がよくあります。
キャッシュがカギか!と思わせてたまに、2回目も問題なくクリアしたりとさっぱり原因がわかりません。

518 :nobodyさん:2006/07/23(日) 16:24:33 ID:???.net
>516
【環境】
Fedora Core5
↓ソースからインストール
httpd-2.0.58 prefork
PostgreSQL8.1.4 DBI-1.51 DBD-Pg-1.49 CGI-SpeedyCGI-2.22 mod_perl-2.0

【mod_perlのhttpd.conf】
LoadModule perl_module modules/mod_perl.so
<Files *.pl>
SetHandler perl-script
PerlModule Apache::DBI     #ベンチでApache::DBI以外はコメントアウト
PerlHandler Apache::Registry  #PerlRunの場合はApache::PerlRun
PerlSendHeader On
PerlInitHandler Apache::StatINC
Options +ExecCGI
</Files>
PerlFreshRestart On

【mod_speedycgiのhttpd.conf】
LoadModule speedycgi_module modules/mod_speedycgi.so
<IfModule mod_speedycgi2.c>
AddHandler speedycgi-script .pl
<Location />
Options ExecCGI
</Location>
</IfModule>

↑どこかの板からパクったのをそのままベンチで使用

519 :nobodyさん:2006/07/23(日) 16:46:30 ID:???.net
> ↑どこかの板からパクったのをそのままベンチで使用

各値が適切かどうか検証もせずに?

520 :nobodyさん:2006/07/23(日) 17:32:07 ID:???.net
>>519
検証する必要のある値はどのあたりでしょうか?


521 :520:2006/07/23(日) 17:54:05 ID:???.net
追伸
パクる←表現がおかしかったです。
書き方をマネしたと解釈してください。
パスはチェック済みです。
mod_speedycgi.soやmod_speedycgi2.cがどのような動きをするかはまるで分かりません。
とりあえず試して問題なければOKなレベルでmod_speedycgiを動かしています。

522 :nobodyさん:2006/07/24(月) 00:09:47 ID:???.net
>>517

> use CGI::SpeedyCGI;
> my $sp = CGI::SpeedyCGI->new;

mod_speedycgiの下でSpeedyCGIを呼び出すという不自然なコードになってない?
一度httpd.confからmod_speedycgiの設定を外し、SpeedyCGIのみでどうなるか確認すべきではない?

523 :nobodyさん:2006/07/27(木) 22:44:38 ID:???.net
511がどうしているか、とっても気になる。

524 :nobodyさん:2006/07/27(木) 23:27:34 ID:???.net
馬鹿は放置でいいんじゃね?

525 :nobodyさん:2006/08/01(火) 20:45:09 ID:PBUCPfNT.net
最近落ち着いてきたスレ

526 :nobodyさん:2006/08/02(水) 06:54:06 ID:???.net
落ち着いたというか、アフォベンチ厨がいなくなっただけっしょ?

527 :nobodyさん:2006/08/02(水) 15:58:35 ID:???.net
釣ろうと必死だね

528 :nobodyさん:2006/08/02(水) 22:12:09 ID:???.net
釣り釣られの関係が成立することがあったとして、何か問題なんかね。

529 :nobodyさん:2006/08/03(木) 00:02:46 ID:???.net
まあ>526のようなあからさまな釣りは良くはないわな。

530 :nobodyさん:2006/08/03(木) 01:29:14 ID:???.net
問題だろw

531 :nobodyさん:2006/08/16(水) 04:31:26 ID:???.net
mod_perl2を使ってみたんですがApache2::Reloadで更新された.plファイルを
正常に再読込しません。Ver1.99の時は問題ありませんでした。
ReloadDebugをonにしてみると該当する.plに対してチェックが掛かってることは
確認しました。相対パスが駄目なのかと思い絶対パスにしてみたけど改善されず。
結局%INCのファイルを独自に検査して更新があったらdeleteするというルーチン
組み込んで希望の動作が出来てますが出来ればReloadで済ましたいです。
環境はFedora core5 mod_perl-2.0.2-5.1 perl-5.8.8-5です。

532 :nobodyさん:2006/08/16(水) 15:33:50 ID:???.net
Apache2のバージョンは何ですか?

533 :nobodyさん:2006/08/16(水) 15:38:54 ID:???.net
>>530
Apache2::Reload関係のhttpd.confをさらすべき。
後、Ver1.99の時とhttpd.confは同じもの?

534 :531:2006/08/18(金) 12:39:47 ID:???.net
情報が不足していてすみません。Apacheのバーションはhttpd-2.2.2-1.0です。
検証は出来るだけ最小設定で行いました。
<VirtualHost *>
略(ServerName、DocumentRootのみ設定)
PerlModule Apache2::Reload
</VirtualHost>

以下のオプションを色々変えたりコメントアウトしながら検証しました。
# PerlInitHandler Apache2::Reload
# PerlSetVar ReloadDirectories "/home ./"
# PerlSetVar ReloadDebug On
# PerlSetVar ReloadAll Off
# PerlSetVar ReloadModules "module*"
Ver1.99の時は
PerlModule Apache::Reload
のみで期待通りの動作をしていました。

535 :nobodyさん:2006/08/18(金) 13:05:02 ID:???.net
>>534

http://d.hatena.ne.jp/naoya/20060108/1136692447

現在、mod_perl には互換性のない三つのバージョンが存在してます。

mod_perl 1.0 (1.29)
mod_perl 1.99
mod_perl 2.0 (2.0.2)

536 :nobodyさん:2006/08/18(金) 14:32:05 ID:???.net
>>531
> 正常に再読込しません。
正常じゃない状態がどういう状態なのかよくわからんのだが、
ttp://d.hatena.ne.jp/holidays-l/20060731/p2
こういうことなんジャマイカ?


537 :gan:2006/08/19(土) 06:24:16 ID:jPBCnjia.net
すれ違い課も知れませんが、SpeedyCGIについて教えていただけたら、、。
【環境概要】perl5.8.3、apache、Linux
【状態】speedyCGIのモジュールをCPANのコマンドラインからインストール済み
【使用可能か?】一回目のスクリプト実行は成功、しかし2度目の実行では
エラーになります。スクリプト常駐の寿命を5秒に設定しといて、一回スクリ
プトを実行させると成功、続けて5秒以内に他のページをアクセスすると
エラーとなりますが、5秒以上待てば(スクリプトが死ぬまで待って、新規に
スクリプトを読み込ませれば)成功します。あきらかにメモリ上に
存在するスクリプトを2回目以降呼び出すとエラー、という状況です。
【他にもモジュールを使用しているか?】
Net::amazonのモジュールを使用しており、エラーになる場合はこの
モジュールを利用して searach -> (asin => "xxxxxxxxx")とやると
以下のようなエラーが吐かれます(1度目は正常、2度目からエラー)
【エラーログ】
Premature end of script headers: mr.cgi, referer: http://airrack.jp/
Undefined subroutine &main:: called at /usr/lib/perl5/site_perl/5.8.3/Log/Log4perl.pm line 133.,
referer: http://hogehoge.jp/hoge
【エラーログに出てくるLog4perlについて】
Log4perl.pmというモジュールは、おそらくNet::Amazonがログをはくために
使っていると思われますが、詳細はよく分かりません。どちらのモジュールも最新
に上げています。
Log4perlモジュール内で変なキャッシュが残っているのでしょうか?
その場合モジュールをいじって直すしかないのでしょうか・・・。
googleで1日中検索しましたが情報がありませんでした。
かなり嵌ってしまいました。speedyCGIでNet::Amazon使ってらっしゃる方
で同様の状態になっている方いませんか?よろしければ情報いただけたら。。

よろしくお願いいたします。

538 :531:2006/08/19(土) 07:14:50 ID:???.net
535さん、536さんありがとうございます。
どうやら536さんの記事に諸に当てはまるようなので記事に書いてあるとおり
パッチを当てて再度検証しこちらで報告しようと思います。
今は酔っぱらい人間です。

539 :nobodyさん:2006/08/19(土) 13:45:18 ID:???.net
>>537
本人もわかってるようですが、グローバル変数の問題なのは間違いないでしょ。
まず基本的な事から確認。

メインのスクリプトにはグローバル変数の初期化処理がある?

540 :gan:2006/08/19(土) 18:55:37 ID:jPBCnjia.net
>>539
レスありがとうございます。
>メインのスクリプトにはグローバル変数の初期化処理がある?
グローバル変数の初期化処理があるというのは
メインのスクリプトにてmy $hogeとすることで初期化を行っています。
もしかしてmy $hoge=''とする必要があるのでしょうか?


541 :nobodyさん:2006/08/19(土) 19:18:24 ID:???.net
>>540
my $hoge;
では初期化されないです。
(通常のCGIならOK)

> もしかしてmy $hoge=''とする必要があるのでしょうか?
そうです。

542 :nobodyさん:2006/08/19(土) 22:02:30 ID:???.net
mod_perlだと
my $hoge;
でいいはずだけどSpeedyCGIだと違うの?
undefと空文字では意味合いが全く違うと思うんだけど。

543 :541:2006/08/20(日) 01:05:51 ID:???.net
>>540
>>542
漏れの間違い。
our $hoge;は×
my $hoge;は○

544 :nobodyさん:2006/08/20(日) 01:11:35 ID:???.net
このスレ読んでると mod_perl が最強と言うことなんでしょうか?

545 :nobodyさん:2006/08/20(日) 01:36:28 ID:???.net
ApacheAPI使いたいならね。

546 :gan:2006/08/20(日) 12:17:16 ID:9VgwFZeI.net
>>543
>> もしかしてmy $hoge=''とする必要があるのでしょうか?
>そうです。
全てmy $hoge='';としました!
しかし現象はまったく変わらずです。。。
使用しているモジュール(Net::Amazonなど)内の
キャッシュをクリア、みたいな処理が必要なのでしょうか・・



547 :nobodyさん:2006/08/20(日) 12:52:06 ID:???.net
>>546
そりゃそうでしょ。

>>541
はなんか勘違いしてると思われるので、アドバイスにしたがうのはどうかと思われます。
アドバイスは、ちゃんと理解しているひとからもらわないと余計に混乱してしまうだけです。

548 :gan:2006/08/20(日) 12:59:32 ID:9VgwFZeI.net
>>547さん
ありがとうございます。

>>>541 はなんか勘違いしてると思われるので、
>アドバイスにしたがうのはどうかと思われます。
いえいえ、人の質問に回答するだけでも立派だと思います。

>>547さん
自分で
>使用しているモジュール(Net::Amazonなど)内の
>キャッシュをクリア、みたいな処理が必要なのでしょうか・・
と書いておきながら実際のやり方が分からないのです。
Amazonを使う上でCache::Fileというモジュールを使用しています。
CGI::CacheというモジュールではspeedyCGIといっしょに使うときは
こんな風にしたほうがいいよ、みたいな説明が載っていたのですが、
Cache::Fileについては特には、、、。どなたかヒントいただけたら
幸いです。

549 :400:2006/08/20(日) 16:50:49 ID:???.net
データを整理してグラフにしました。
(一部データ追加)
興味があればのぞいてください。
http://rintaro.dip.jp/info/?c=pg&p=apbench

550 :nobodyさん:2006/08/20(日) 17:59:01 ID:???.net
>>548
・CGI起動だと正常に動作するのか。
・use strictしているか。
・フロントでpackage ???;と指定していないか。
・他にHTTP::***系のモジュールを読み込んでいないか。

551 :gan:2006/08/21(月) 01:42:09 ID:ZgHdKmUM.net
>>550
ご回答ありがとうございます。

>・CGI起動だと正常に動作するのか。
動作します。

>・use strictしているか。
しています。・・厳密に他の外部読み込みのライブラリ
(escape.plみたいなやつ)はやっていないものもあるかも。
これ全部やるべき?

>・フロントでpackage ???;と指定していないか。
・・これどういう意味でしょうか。。よろしければ詳しくお願いします。

>・他にHTTP::***系のモジュールを読み込んでいないか。
読み込んでいないと思いますが、、現在使用しているモジュールが
依存関係にあるモジュールを勝手に読み込んでいる可能性は否定
できません。チェック方法をご存知でしたら教えてくださいませ。

552 :245:2006/08/21(月) 06:54:11 ID:???.net
>>549
乙です。グラフにすると分かりやすいですね。FastCGIの優秀さに
改めて驚きました。

553 :nobodyさん:2006/08/22(火) 18:30:01 ID:???.net
>>551
おつです。
もっぱらmod_perl使ってたけど考え直してみようかな。

554 :nobodyさん:2006/08/22(火) 23:01:06 ID:???.net
初心者がベンチして、初心者に移行を促すスレはここですか?

555 :nobodyさん:2006/08/22(火) 23:07:44 ID:???.net
誤解を招きやすい数値を元に決定を行い、誤った方向にすすんでしまう良い見本でしょう。
2ch だし。

556 :nobodyさん:2006/08/22(火) 23:58:25 ID:???.net
> 2ch だし。

2ch だと何かまずいのかな?

557 :nobodyさん:2006/08/23(水) 00:01:58 ID:???.net
2ch は玉石混淆であることを言いたかっただけです。

558 :nobodyさん:2006/08/23(水) 01:13:42 ID:???.net
ならそう言えばいいのに。
誤解を招きやすい表現を使い、謝った方向にすすんでしまう良い見本ですね。

559 :nobodyさん:2006/08/23(水) 01:25:57 ID:???.net
誤った方向にすすんでしまうのは玉石混交でいうところの"石"なわけだが
(そうじゃないと意味が通じない)、それを分かった上でかきこんでいるのかなぁ。

A. 分かった上で書き込んでいる → 自ら石であることを認めている
B. 気づかずに書き込んでいる → やっぱり石

いえ、玉石混淆なのは分かってますからあえてこれ以上追求しませんが。

560 :gan:2006/08/23(水) 07:26:53 ID:1++KeXhR.net
551からその後です。
某サイトで、グローバル変数をすべてあぶりだす
方法を発見(%:: というハッシュに変数名が格納されている)
そこでspeedyCGIの下記のように
use CGI::SpeedyCGI;
my $sp = CGI::SpeedyCGI->new;
$sp->register_cleanup(\&clean_up);
---------
sub clean_up{
map { $$_=undef; } keys %::;}
とすると、2度目のアクセスもエラーが出なくなりました!!
・・が、書き出されるはずのHTMLが途中で終わってしまうという
現象が発生・・無差別にグローバル変数(300項目くらいでる)を
削除するとやはりまずいのか、、しかし影響のあるものがどれか
現在特定できず、、。どなたかアドバイスいただけたら。。

561 :nobodyさん:2006/08/23(水) 23:56:02 ID:???.net
> 現象が発生・・無差別にグローバル変数(300項目くらいでる)を
> 削除するとやはりまずいのか、、しかし影響のあるものがどれか
> 現在特定できず、、。どなたかアドバイスいただけたら。。

Perl 3 時代の糞スクリプトなら、ISP からもらえるチルダつきの
環境で動かしてりゃいいじゃん。

562 :gan:2006/08/24(木) 00:04:53 ID:p5O8tkz+.net
>Perl 3 時代の糞スクリプトなら、ISP からもらえるチルダつきの
>環境で動かしてりゃいいじゃん。


563 :nobodyさん:2006/08/24(木) 03:29:54 ID:???.net
ずっとここで乞食してないでまずuse strictしてそれでも駄目だったら質問しろよ。

564 :nobodyさん:2006/08/24(木) 09:58:19 ID:???.net
>>549
> データを整理してグラフにしました。
> (一部データ追加)
> 興味があればのぞいてください。
> http://rintaro.dip.jp/info/?c=pg&p=apbench

なんでworkerよりpreforkの方が速いの?誰か解説キボン

565 :245:2006/08/24(木) 13:10:59 ID:???.net
>>560
グローバル変数を削除する必要はありません。


566 :gan:2006/08/24(木) 19:16:32 ID:p5O8tkz+.net
>>565
そ、そうなんですか?
245さんはどうされてますか?

567 :nobodyさん:2006/08/24(木) 21:21:23 ID:???.net
> 245さんはどうされてますか?

腹を切るなり、首にひもをかけるなり、、、

568 :gan:2006/08/24(木) 21:40:44 ID:p5O8tkz+.net
>>567


569 :245:2006/08/25(金) 15:29:41 ID:???.net
いやまあ、気にせんでくれ。次行こう。

570 :nobodyさん:2006/09/11(月) 06:35:42 ID:???.net
mod_python 最強ということでよろしいか?

571 :nobodyさん:2006/09/22(金) 16:52:21 ID:???.net
つまりHTMLが最強ってことだろ?>>385



572 :nobodyさん:2006/10/05(木) 22:11:58 ID:???.net
>>497
ワロスw
http://pc8.2ch.net/test/read.cgi/php/1149505269/
スピード△
メモリ消費大
ApacheAPIをPerlで使えるのが長所

573 :572:2006/10/05(木) 22:12:58 ID:???.net
激しく誤爆

574 :nobodyさん:2006/10/06(金) 00:49:48 ID:???.net
どのスレと間違えたんだよ

575 :nobodyさん:2006/10/06(金) 01:19:18 ID:???.net
こんな糞スレ参考にすらならないのに。w

576 :nobodyさん:2006/10/06(金) 01:35:11 ID:???.net
検索であっさり見付かったw
http://pc8.2ch.net/test/read.cgi/hp/1154177468/493-
こんなところにまで乗り込まなくていいのに・・・

577 :nobodyさん:2006/10/06(金) 03:14:53 ID:???.net
そのスレでも似たような事が書いてあるけどmod_perl使うとメモリ数G載せないと駄目と
違う人から何回か聞いたんだけどどっかでそういうアホな情報載せてるページがあるの?

578 :nobodyさん:2006/10/06(金) 04:04:05 ID:???.net
mod_perlかFastCGIかなんてあんまり有意な差はないよ
それより、プレコンパイルになって起動に時間がかからなくなるってことは
中身の速さ=実際の速さに近くなるってことなんだよ?

つまり、DBで扱うテーブルやインデックスの設計とか効率的なSQL発行してるかとか
DBのネックは殆どディスクIOかメモリ不足だからRAIDにするとかメモリ増やすとか
(mod_perlで食うメモリなんてDBに食わせるメモリに比べたらささやかなんだよねorz)
HTMLのレンダリングとか処理自体が遅いなら
スクリプトのコーディングや使ってるCMS見直したほうが余程結果出せる・・・・

ちなみに576のリンク先のサイトもレスポンスヘッダ見ると
静的コンテンツはApache2、動的コンテンツはApache1.3+mod_perlだね
mod_perlだけで数Gとかリバースプロキシも知らない奴が言ってるとしか思えないっ

579 :578:2006/10/06(金) 04:14:08 ID:???.net
576のURLさかのぼって行ったらサーバーステータス見つけたよ
一日の転送量は6.6Gで平時のロードアベレージは0.5程度、メモリは2Gちょいでした
こういう事例を見れるのはおもしろい、もっとないかな

580 :nobodyさん:2006/10/06(金) 20:50:14 ID:???.net
>>578
> (mod_perlで食うメモリなんてDBに食わせるメモリに比べたらささやかなんだよねorz)

熱く語っているところに悪いが、
workerかそれ以外かでメモリ消費は激しく変わるんだが・・・

DBの種類もテーブルもレコード数もわからないのにメモリ消費はわかるんだな



581 :nobodyさん:2006/10/06(金) 21:16:14 ID:???.net
>>580
>DBの種類もテーブルもレコード数もわからないのにメモリ消費はわかるんだな
今やってる仕事のが300万件2G以上のテーブルあって
全然後のこと考えてない構成なのをまかされてしまって
ちょっと愚痴気味に言ってしまったんだ、すまそ

そこでもmod_perl使ってるんだけどそういうケースだと
DBのチューニングの方が余程メモリに影響するんだよね
ちなみにメイン鯖のメモリは8Gあって殆どDBに割いてるな・・・

582 :nobodyさん:2006/10/06(金) 22:33:48 ID:???.net
サイトの性格、アクセス数も関係するし、サーバ(群)のスペックも関係する。
リソースが貧弱な場合にmod_perlは躊躇するよなあ。
案件ごとにmod_perlだ、fastcgiだと使い分けるのも、今度は人的なリソースが不足しがちになるし。
まあ規模が小さければ、PHPが一番いいのかな。みんなPHPだし。

583 :nobodyさん:2006/10/07(土) 04:42:23 ID:???.net
> まあ規模が小さければ、PHPが一番いいのかな。みんなPHPだし。

みんな Java だし、Java がいいんじゃね?

584 :nobodyさん:2006/10/08(日) 01:55:11 ID:???.net
8Gメモリ積んでる奴にmod_perlのメモリ消費は大したことはないといわれてもちょっと説得力がなぁ

585 :nobodyさん:2006/10/08(日) 02:32:04 ID:???.net
規模が小さければPHPだよ。Javaはコストがかかる。

586 :nobodyさん:2006/10/08(日) 06:26:02 ID:???.net
規模が小さい案件なんかやってるやつはばかです

587 :nobodyさん:2006/10/08(日) 16:54:31 ID:???.net
自分で会社作って、小中規模の仕事をこなすのが一番儲かる。
大きな会社の社員PG、SEじゃたかが知れてる。

588 :nobodyさん:2006/10/13(金) 05:29:50 ID:???.net
勢いを失ったPHPには、もう先がありません。

589 :nobodyさん:2006/10/13(金) 06:48:53 ID:???.net
RORの隆盛はPerlにとっても追い風だよな。


590 :nobodyさん:2006/11/05(日) 04:44:56 ID:???.net
http://jp.rubyist.net/PerlMa/wiki.cgi?page=20060401-ParrotManiacs#p29

やっとPerlもJITコンパイラになるんだな
アクセラレータよ、さようなら
PHPやPythonと共通のバイトコードになるのもいい

って、まだまだ先の話か

591 :nobodyさん:2006/11/05(日) 17:44:07 ID:???.net
むしろperl等もJVMのバイトコードを出力するようにしてしまった方が
後々メリットが得られるような気もするが
そうでもないのかね。

592 :nobodyさん:2006/11/05(日) 19:17:48 ID:???.net
そのためにはPerl6が必要になるんじゃないの?


593 :nobodyさん:2006/11/05(日) 19:55:56 ID:???.net
>>591
とりあえず、JVMのコードが変換できるようになればそれでいいやん
.NETも変換できるようだし
>>592
Perl5もコンパイルできるようにするようだよ

でも、肝心のParrotが未だに開発中

594 :nobodyさん:2006/11/05(日) 21:02:17 ID:???.net
でもこれって結果的にスクリプト言語を勢いづかせるんじゃね

595 :nobodyさん:2006/11/05(日) 22:44:36 ID:tB4jjHhC.net
いつになったら完成するんだ!!

596 :nobodyさん:2006/11/06(月) 01:45:05 ID:???.net
明日仕上げます!

597 :nobodyさん:2006/11/06(月) 22:24:47 ID:wVlTk8ia.net
明日キタ━━━━(゚∀゚)━━━━!!

598 :nobodyさん:2006/11/06(月) 22:58:07 ID:???.net
完成しないとPerl6でないんだから、よほどのことがない限りでることはでるんじゃないの?

でもおそい

599 :nobodyさん:2006/11/06(月) 23:00:44 ID:???.net
http://pc8.2ch.net/test/read.cgi/php/1162721943/

動き無さ杉

600 :nobodyさん:2006/11/06(月) 23:18:17 ID:???.net
おいmod_parrotって...

アセンブラ言語で書けってか?
JITコンパイラ有るなら速度面でも価値は低いし

601 :nobodyさん:2006/11/07(火) 01:17:26 ID:???.net
3getさえないのにワロタwwwwwwwwwwwwwwwwww

602 :nobodyさん:2006/11/08(水) 03:15:19 ID:???.net
>>600
http://72.14.253.104/search?q=cache:Y3kWD19pEecJ:pc8.2ch.net/test/read.cgi/php/1065599868/443-543

603 :nobodyさん:2006/11/08(水) 21:21:02 ID:???.net
>>602
mod_parrotってmod_perlから呼び出されるバックエンドという理解でおk?
それならmod_parrotだから変わるっていう部分は少なくないか?
一定の速度向上以外は全く思いつかね

604 :nobodyさん:2006/11/10(金) 00:45:33 ID:???.net
> 現在開発中のPerl6インタプリタエンジンParrot。
> ParrotはCLR(Common Language Runtime)であり、
> ParrotアセンブラにコンパイルできればPerl6のみならず、
> Python、Ruby、PHPをはじめ、JavaもC#も、Basic、Scheme、
> その他の言語なんでもいける・・・ようになるかも!?
> mod_parrotができれば速度面でも問題無し!
> そんな夢のような言語/VMであるPerl6/Parrotについて語りましょう。

万能インタプリタみたいなこと書いておいて、mod_parrotはないだろ
CGI以外でもmod_parrot使うのかね

605 :nobodyさん:2006/11/10(金) 00:53:48 ID:???.net
Javaが挫折したネイティブCPU(補助機能としてのネイティブコードサポートならある)
これParrotでできないかな
本物のCPUを模倣したモデルを使っているので、易しいと思うんだが

問題はParrotの普及...

...というかまずスタートorz

606 :nobodyさん:2006/11/10(金) 00:56:59 ID:???.net
>>604
> CGI以外でもmod_parrot使うのかね

SpeedyCGIはCGI以外のPerlも代用できる

607 :nobodyさん:2006/11/27(月) 18:16:52 ID:???.net
modなんちゃら〜は速度改善の為のみに存在してると思ってないか?

608 :603:2006/11/27(月) 19:25:05 ID:???.net
>>607
> modなんちゃら〜は速度改善の為のみに存在してると思ってないか?

ApacheAPIへのインターフェイス兼アクセラレータだと思っていますが?
がmod_parrotの場合はインターフェースの役目は持ってないでしょう

609 :nobodyさん:2006/12/02(土) 18:58:11 ID:???.net
FastCGIでのMoinMoinを
http://ssk.jugem.jp/?eid=15

を参考に動かそうとしているのですがInternal Server Errorで動きませんorz。
Apacheのログを漁ると
(13)Permission denied: FastCGI: can't create (dynamic) server "/home/wiki/public_html/moin.fcg": bind() failed [/etc/httpd/logs/fastcgi/dynamic/dce2b2d6779742810fd0c7f812ee16e5]

とあるのですが、いまいち意味が分かりません。
環境はCentOS4.4です。

他に質問スレが無かったので、こちらで質問させて頂きました。
どなたかご教授お願いします。

610 :nobodyさん:2006/12/02(土) 22:58:31 ID:???.net
背伸びする必要ないんじゃない?

611 :nobodyさん:2006/12/03(日) 00:04:12 ID:???.net
おまいら久々に新しいの出てますよ
mod_perl 2.0: Version 2.0.3 - November 28, 2006
http://perl.apache.org/download/index.html


612 :nobodyさん:2006/12/03(日) 00:23:05 ID:???.net
ところでメモリ,メモリとほざいている奴は,これを試したのか?
http://search.cpan.org/~pgollucci/mod_perl-2.0.3/docs/api/Apache2/SizeLimit.pod


613 :nobodyさん:2006/12/03(日) 02:18:17 ID:???.net
>>612
試したの?

614 :nobodyさん:2006/12/03(日) 15:23:04 ID:???.net
>>613
見ただけじゃねえ?

>>612
で、どれくらい良くなった?

615 :nobodyさん:2006/12/03(日) 15:28:26 ID:???.net
>>609
/etc/httpd/logs/fastcgi/dynamic/が無いか、パーミッションが無いんじゃねえ?

616 :615:2006/12/03(日) 16:04:25 ID:???.net
もし/etc/httpd/logs/fastcgi/dynamic/があり所有者がApacheになっているなら、FastCGIの実行者がwikiだから書き込めないんじゃねえ?
/home/*/public_html/じゃない場合FastCGIは動くの?

617 :nobodyさん:2006/12/24(日) 00:03:00 ID:5VuL7TZS.net
質問なのですが、解れば教えてください。
apache2 + mod_perl2.0.2 + catalyst5.7006
にて、
仮想ディレクトリ上だけCatalyst環境で構築したいのですが、
下記のように書くとDocumentRoot以下にある
SpeedyCGI向けに書かれたソースの動きが変になってしまいました。
どのように設定すれば解決できますか?

httpd.conf--------------------------------------
PerlSwitches -I/var/www/Hello/lib
PerlLoadModule Hello
PerlTransHandler Hello
<Location /Hello>
PerlSetEnv Hello_DEBUG 0
SetHandler modperl
PerlResponseHandler Hello
</Location>


618 :nobodyさん:2006/12/24(日) 02:17:10 ID:???.net
>>617
ttp://d.hatena.ne.jp/dayflower/20060510/1147260763
?

619 :nobodyさん:2006/12/24(日) 12:56:06 ID:5VuL7TZS.net
>>618
PerlLoadModule Hello
PerlTransHandler Hello

を外したらうまく行きました。ありがとうございます。
動いたけど全くもって理由がわかりませんw

620 :nobodyさん:2006/12/24(日) 14:51:36 ID:???.net
サブテカがいるすれはここですか?

621 :nobodyさん:2006/12/27(水) 11:30:45 ID:???.net
            ,,_yyrl|_._.
          . ,ー,,エ(フ个 ¨゙.巛r.r
        _)()|「リlll|,エ,,   _,,,,,,,,,〔
      ilァ.爻)ll(''ト'リ》ll!h/′ ''゙¨¨¨゙冖''_,._
     _yr!'゙》||/||》ミ|||W'〕u彡 .ノ‐ .′,z厂′
    _,彡l|'l《》「⌒Wl|リi|i{ノ巛r, .^.゙' 、ミ|》
   .ー¨7リフミ.|Mllyii'|yl!.干zz| (z、u..彡゙「゙.┘
    ._yil|ミ)《l!|》!|il》lリli|||zz|¨;;ll《《リ}l|.┘ v.|ト
   .ー″,,iトリ「|レ「〕:|/リlll!|z|ト厶|,.厶 冖 r  y
     ll|゙.ll|ili|トz||:iト /|《;li《z|》リ||,}゙ _yrl|レr .
   .__y-トミ「゙川lyl)彡《i.ノ》|レ「)「「ll||゙)ミ)rl! ¨/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ,z厂    .^.「゙》!「 `.r厂|′ 《》リ,||}″<
 ¨′      ,l.フ|′   .r!   .「|ll|フ^、  | どうでもいい
         `,〕 i!.,,  .‐!ll,. .' .,i!||リ     \____________
         ″y   .″ _,r;yミ,|″

622 :nobodyさん:2007/02/15(木) 01:20:19 ID:???.net
SpeedyCGIを使うときに、グローバル変数を初期化する
必要があるということですが、どういうことでしょうか。

i=0; i++; i++; i++; i++; i++; print("i");
グローバル変数iを一つずつ増やしているだけです。
i=0;で初期化しているので大丈夫でしょうか?

普通5がprintされると思いますが、初期化しないで
何回も実行すると、どんどん加算されて5以上の数字が表示されますか?

623 :622:2007/02/15(木) 02:33:34 ID:???.net
622です。
SpeedyCGI入れて自分でも試してみたいと思います。
また、なにかありましたらよろしくお願いします。

624 :nobodyさん:2007/03/02(金) 14:17:29 ID:???.net
実際にやってみればいいじゃん

625 :nobodyさん:2007/03/03(土) 22:18:22 ID:???.net
FastCGIでディスパッチする際、リクエスト毎にスレッドを作成してばらばらの順番に応答を返す
ということはFastCGIの仕様的には可能なんでしょうか?

626 :nobodyさん:2007/03/03(土) 22:49:26 ID:???.net
FastCGI なアプリは常駐するわけだが。

627 :nobodyさん:2007/03/03(土) 23:05:20 ID:???.net
>>626
?それは分かってます。
常駐するプロセスにリクエストが(Unixドメインソケットあるいはソケットを介して)飛んでくるのが
FastCGIの仕様だと理解してますが、そのリクエストへの応答は、必ずリクエストが飛んできた
順番に応答しないといけないのかどうかが知りたいのです。
一応ドキュメントにはマルチスレッドでも可能的なことが書いてありましたが…

628 :nobodyさん:2007/03/04(日) 04:51:01 ID:???.net
>>627
>>1 のマニュアルFAQに書いてある事じゃなくて?

629 :nobodyさん:2007/03/04(日) 12:19:12 ID:???.net
>>628
FAQに目を通しましたが該当する記事は見当たりませんでした。

で、報告なんですが、Pythonにはマルチスレッドで動作するFastCGIアダプタが存在する
事から、ディスパッチャのマルチスレッド化は可能なようです。
ですがアダブタが存在するのくだりから推測できるように、アダプタが対応していないと
マルチスレッド化できません。(当方Rubyを使用する予定ですので、Rubyのアダプタで試して
みましたが、ムリでした)
アダプタをハックするにはFastCGIの仕様の理解が必要なこともあり、断念することにしました。

どうもありがとうございました。

630 :nobodyさん:2007/03/05(月) 13:38:09 ID:???.net
こちらこそ参考情報ありがとう

631 :nobodyさん:2007/05/26(土) 20:01:40 ID:7SKqsTBy.net
Perl6でもSpeedyCGIは使えたらなぁ

632 :nobodyさん:2007/05/28(月) 22:48:45 ID:A9llIuWJ.net
SpeedyCGIの -r オプションて、
回数に達したら、全backgroundが再起動するんかな?
それとも一backgroundごと?

633 :nobodyさん:2007/05/29(火) 06:59:20 ID:???.net
1background毎だと思っていたが…違うのか?

634 :nobodyさん:2007/06/01(金) 20:02:10 ID:???.net
すみませんがが、お知恵を拝借。

Apache2+mod_perl2 で、

my %List;
$List{$key} = { a=>1,b=>2,c=>1}
...
なんて連想配列作って、

sub listsort {
my $r = $List{$a}{a} <=> $List{$a}{b};
if ($r == 0) {
$r = $a cmp $b;
}
return $r;
}

foreach my $k (sort listsort keys(%List)) {
# codes
}

のようにソート関数かませて、配列の中身でソートする様にしたんだけど、
ソースを変更して、1回目の実行ではリファレンスが正しくソート関数に届くのに、
2回目以降は届かなくなります。 

これって、使い方が間違ってるんでしょうか? Reload の設定ミス?

RHEL ES4 + Apache2.0.52 + mod_perl 2.0.3(tar install)
openSUSE 10.0 + Apache 2.0.54 + mod_perl 2.0.1(rpm)

どちらも同じ現象なので、プログラムじゃないかと思うんだけど、改善できなくって。


635 :nobodyさん:2007/06/04(月) 12:03:46 ID:???.net
listsort() がどの名前空間に宣言されているのか不明だし
それが原因かどうかは分からんけど…

その程度のソート内容なら

for my $k (sort { $List{$a}{'a'} <=> $List{$b}{'b'} || $a cmp $b } keys %List) {

でよくね?

636 :634:2007/06/05(火) 05:13:19 ID:???.net
>635

listsort の中には、3段位の比較を入れる予定。
listsortの宣言は、関数内です。

sub func {


sub listsort {

}

}

ちょっと長いけどインラインにしてみるっす。

637 :nobodyさん:2007/06/28(木) 02:38:24 ID:???.net
通常のPerlとSpeedyCGIを箱庭諸島R.A JSを使って比べてみた
(島の数は0)

トップページの表示しか載せないが
普通のPerlだとCPU時間が0.09〜
SpeedyだとCPU時間が最短0.01(大体0.03以上)
になってワロタ

638 :nobodyさん:2007/07/06(金) 23:07:39 ID:???.net
>>637
普通普通

639 :nobodyさん:2007/07/12(木) 06:21:48 ID:???.net
mod_perlを導入したのですがカレントディレクトリがApacheのディレクトリになってしまい
スクリプトのあるディレクトリがカレントディレクトリであると想定して書かれてるプログラムが動かなくなりました。
カレントディレクトリをスクリプトのディレクトリに変更する方法はありませんか?
環境はWindowsXP+Apache2.2.4です。

640 :nobodyさん:2007/07/12(木) 10:31:57 ID:???.net
>>639
http://adiary.blog.abk.nu/07

641 :nobodyさん:2007/07/12(木) 19:02:43 ID:???.net
>>640
どもども
やってみます

642 :nobodyさん:2007/07/29(日) 22:25:25 ID:???.net
FC6でSpeedyCGI-2.22をソースインストールしようとしたら
mod_speedycgi2などでエラーがでて失敗しました。
FC1ではうまくいったんですが・・・。FC6で何か足りないものが
あるのでしょうか?

643 :nobodyさん:2007/07/30(月) 17:48:02 ID:???.net
>>642
ttp://dries.ulyssis.org/apt/packages/perl-CGI-SpeedyCGI/info.html

これはどう?

644 :nobodyさん:2007/07/30(月) 22:09:00 ID:???.net
>>643
ありがとうございます。やってみたら、そのようなグループ、ユーザーは
いません、rootを使います〜と言うのが出て、その後、パッケージごとに
すでにインストールされているファイルと競合するので終了するような
メッセージがでて完了出来ませんでした。
 rpmの、競合するファイルを無視してインストールするオプションというの
があればと思うのですがスイッチがわからないのでまだ試して無いです。

645 :nobodyさん:2007/08/01(水) 23:29:07 ID:???.net
>>642
FC6では試してないが、CentOS5では、

http://rt.cpan.org/Public/Dist/Display.html?Name=CGI-SpeedyCGI

にあるpatchを一通り当てたら問題なくcompile出来た。


646 :nobodyさん:2007/09/13(木) 01:31:18 ID:???.net
>>639さんじゃないんですが、mod_perl2でカレントディレクトリの
設定を変更後、DBI::SQliteのdbnameだけは絶対パスを
入れなきゃ動きません…そういうもんなんでしょうか?

Apache 2.2.4+ActivePerl 5.8.8+mod_perl2

647 :nobodyさん:2007/09/13(木) 04:52:15 ID:???.net
mod_perl2はカレントディレクトリがスクリプトのあるディレクトリにならないから

preforkならchdirしたりCGIのエミュ代わりならModPerl::RegistryPreforkやModPerl::PerlRunPreforkを
使うとカレントディレクトリがそのスクリプトのディレクトリになるから相対パスで書けない事もない

workerの場合chdirが使えないというか使えるけど他のスレッドにも影響がでてしまうので危険

というわけでどちらにしても絶対パスで書いておくのが無難

648 :nobodyさん:2007/09/14(金) 13:55:09 ID:???.net
>>642 >>645
FCやCent使ってるなら

RPMforgeを入れて
yum -y perl-CGI-SpeedyCGI
で入れたほうが簡単じゃない?


649 :nobodyさん:2007/09/14(金) 14:03:52 ID:???.net
>>648
yum -y install perl-CGI-SpeedyCGI
^^^^^^
でした。

650 :nobodyさん:2007/09/14(金) 18:42:10 ID:???.net
やあみんな、FastでSpeedyでmodなperlライフをおくってるかい?

ところで、最近UpdateしたApache2.2.6と2.0.61でちゃんとmod_perl動いてる?

651 :nobodyさん:2007/09/14(金) 20:17:24 ID:???.net
>>650
試して報告してくれよん

652 :650:2007/09/15(土) 03:58:09 ID:???.net
やあやあ、
実はWin32環境で2.2.6、2.0.61ともに自前でビルドしたやつに、
これまたCPANよりGetsして来た2.0.3tarボールから自前コンパイルしてみたんだが、
ちゃんと動かねえんだよ。

具体的にゆうと、Loadmodlueでmod_perl.soしてやったとき、通常にStartUpした様に見える。
で、普通のHTMLとCGIPerlとPHPはちゃんと動くんだけど、Locationでmod_perlってるディレクトリの
ファイルをリクエストしたら、急にApacheがハングしてしまう。

ブラウザの画面に
「Internet Explorer ではこのページは表示できません
可能性のある原因:
インターネットに接続されていない。
Web サイトに問題が発生している。
アドレスに入力の間違いがある可能性がある。」
が表示される。(Apacheをkillした時にhttp://localhost/叩いた時と同じ表示)

ちなみにこの時、他のmod_perlでないページは正常に表示される。

653 :650:2007/09/15(土) 03:58:47 ID:???.net
つづき

この時のerror_logの表示は
Error in my_thread_global_end(): 252 threads didn't exit
[Sat Sep 15 02:47:35 2007] [notice] Parent: child process exited with status 9 -- Restarting.
[Sat Sep 15 02:47:35 2007] [notice] Apache/2.0.61 (Win32) PHP/5.2.1 mod_perl/2.0.3 Perl/v5.8.8 configured -- resuming normal operations

こんな感じ。
これみると、どおやらmod_perlなファイルにリクエストした時、なぜかApacheが再起動掛かってる模様。

ちなみにこの状態のままでも他のファイル(staticHTML,PHP,PerlCGI)は通常どおり表示される。
(access_logに記録もされてる。mod_perlなリクエストだけが欠落。)
あと、標準module(mod_auth,mod_alias,mod_rewrite等)の機能もちゃんと動作する。

さらにこの状態の時にStop(コンソールからCtrl+C)かけると,一旦通常に終了処理が終わったように見えるけど、
タスクマネージャ見ると、Apacheのプロセスが起動したままの状態。

この時のerror_logの内容は
Error in my_thread_global_end(): 1 threads didn't exit
ocess is running

上のエラーと同じ内容だけど、thread1なとこを見ると親プロセスか??
その下に多分"Process"だとおもわれるメッセージの断片が・・・。


654 :650:2007/09/15(土) 03:59:18 ID:???.net
つづき2

そんなこんなで何回か起動、再起動等を繰り返してると
Winの強制終了のポップアップが出て終了。

そのときのerror_logには、
[Sat Sep 15 02:54:21 2007] [notice] Apache/2.0.61 (Win32) PHP/5.2.1 mod_perl/2.0.3 Perl/v5.8.8 configured -- resuming normal operations
[Sat Sep 15 02:54:21 2007] [notice] Server built: Sep 15 2007 02:27:44
[Sat Sep 15 02:54:21 2007] [notice] Parent: Created child process 3412
[Sat Sep 15 02:54:23 2007] [crit] master_main: create child process failed. Exiting.
[Sat Sep 15 02:54:23 2007] [error] (OS 6)ハンドルが無効です。 : Parent: SetEvent for child process 0 failed
これ。
今までで[crit]なんかはじめて拝んだ。

前のレスのエラーは100%再現する。こっちのエラーはいまいち再現性がない(5回〜10回に一回くらい)

ちなみに上のは、2.0.61だけど、2.2.6でも全く同じエラーが出る。(当然そのときは、mod_perlを2.2用にrebuild)
theory58Sのコンパイル済みppmでも、エラー内容同じ。(2.0,2.2両方)

逆に、2.2.6と2.0.61のincludeとLibsでコンパイルしたmod_perl.soとライブラリ一式は、
2.2.4、2.0.59で両方正常に動く。(公式msiバイナリと自前ビルド両方とも試した。どっちも問題なし。)

655 :650:2007/09/15(土) 03:59:51 ID:???.net
つづき3

公式とかによると、APRとAPR-utilのバージョンがあがってるようなんで、
これのせいかとかも思うけど、公式のML等ではこの話題でず。
(なんか違うバグ出たみたいで、早くも2.2.7かって話も出てる)

perl.apache.orgのほうもこれに関する話題なし。

ちなみに”Loadmodule mod_perl.so”をコメントアウトすると何事もなかったかのように動いてる。

環境は
WinNT 5.1
VC2005 sp1 + nmake (Ver 8.00.50727.762)
Active perl 5.8.8-build822

あと、コンパイルオプションは無し(Makefile.winそのまま)
上にも書いたけど、全く同じコマンドで2.2.4と2.0.59は特に問題なくビルド出来た。

そのときの警告とかは、2.2.6or2.0.61のときと全く同じ(型変換うんぬんと、無効なオプションです。無視しますってやつ)

何度コンパイルし直してもこんな状況なんで、ここの猛者どもはどうなんかいの〜?って思って聞いてみた。

656 :nobodyさん:2007/09/15(土) 11:11:36 ID:???.net
colinux + CentOS で静的に入れてみたけど
ログ見ても今のところは問題ないように見える

657 :650:2007/09/15(土) 17:59:20 ID:???.net
>>656
そうですか。

実はうちも本番環境はFC or CentOSで組もうかと思ってる。
(今それ用のマシンを自作中。パーツがまだ揃ってない。今稼働中のマシンは2.2.4で動いてるけど止められない。)

で、とりあえずWinでテスト環境作ろうと思ってやってみた訳なんだが、つまずいてしまった。

for Unixだと問題ないのかな?
とりあえずもう一台組みあがったらfor Unixのソースでもう一回試してみる。

658 :nobodyさん:2007/09/15(土) 21:00:36 ID:???.net
開発やテスト環境ならvmwareなりcolinux入れておけばいいじゃない

659 :nobodyさん:2007/09/19(水) 11:10:07 ID:???.net
どうもmod_perlのプログラミングについて今一わからないんですが、
要は、while(1){}の中でコーディングしてlastで終了するような
プログラム書けばOKってことでしょうか?


660 :nobodyさん:2007/09/19(水) 16:11:40 ID:???.net
でんでんちがう

661 :nobodyさん:2007/10/10(水) 15:18:22 ID:/zGydDSw.net
mod_perlの弱点つーか いまいちperlがphpより普及しない理由として
常駐することがあると思うんだけど、
mod_phpみたいに常駐しないバージョンを開発するつもりないのかねー
てかmod_phpっぽい動作にする方法あったら教えて えろい人

662 :nobodyさん:2007/10/10(水) 15:30:16 ID:???.net
>>661
>>660

663 :nobodyさん:2007/10/10(水) 19:03:11 ID:???.net
日本語でおk

664 :nobodyさん:2007/10/11(木) 03:09:21 ID:???.net
で常駐しない方法ってあるん?

665 :nobodyさん:2007/10/11(木) 03:43:39 ID:???.net
mod_の意味わかってる?mod_だよ。
逆にmod_でない(常駐しない)phpなんか・・・・。

666 :nobodyさん:2007/10/11(木) 03:59:24 ID:???.net
mod_の意味ってわからないけど、プロセス常駐とApacheのモジュールとは関係ないと思うけど。fastcgiなんかだと外部プロセスに出来るわけだし。
ま、ウェブアプリと言ってもさまざまだけど、mod_phpで十分というかちょうどいいという感じはする。
リクエストごとに消えてくれるからメモリリークを心配せずによく、運用が簡単。
もっともPHP(mod_php)もバージョンが上がる度にリソース消費が激しくなってるけど。
何でPHP4をディスコンティニューするのか。PHPの開発者のすることは分からんね。

667 :nobodyさん:2007/10/11(木) 05:11:31 ID:???.net
う〜ん君が言ってるのは、常駐うんぬんのことではなくて、要はメモリ消費のことでしょ?
mod_phpだってapacheプロセスとして常駐してるんだが・・・。

確かにmod_perlはそれに比べてメモリ消費が激しいのと、並列度を高めるとパフォーマンスダウンが著しい(特にpreforkなんかは)
それはここの上のほうでも散々言われてることだから、Fastやspeedyなんかが話題になってるわけだし。

でもそれは>>661で言ってるみたいにプロセスに常駐するかどうかが問題なわけではなくて、
そのリソース消費とパフォーマンスとの兼ね合いであって、まるでmod_phpが常駐しないみたいな言い方してるから
>>660だって言われてるんでしょ。

668 :nobodyさん:2007/10/11(木) 15:19:36 ID:???.net
>>667 >>666
いや常駐ってmod_なら常駐するってのはわかってるってよ
スクリプトとかライブラリの常駐の話
mod_phpは実行してもスクリプトは常駐されないでしょ
perlrunでもuseとかrequireされたライブラリは常駐するよね? その辺の話
自分専用サーバで使う分にはいいけど、mod_phpみたいにレンサバでも利用できるようにならないと
実質レンサバとかだとphpはperl(cgi)より速いって事になってるんじゃねって事


669 :nobodyさん:2007/10/11(木) 15:33:05 ID:???.net
常駐ってか永続化 persistentだな すまん
言いたいことは >>666のリクエスト以降の話でっす


670 :nobodyさん:2007/10/11(木) 17:38:08 ID:???.net
persisitence ではなくて cache だから、
単にキャッシュでいいんじゃなかろうか。

671 :nobodyさん:2007/10/11(木) 18:19:21 ID:???.net
mod_phpみたいにインタープリタのオーバヘッドだけ解消できるモードがあれば
Perlもそこそこシェア守ってたかもね。権限なんかは利便性の二の次なのかな。

672 :nobodyさん:2007/10/11(木) 18:46:42 ID:???.net
とりあえずPerlを馬鹿にしとけば自尊心が保たれるみたいな

673 :nobodyさん:2007/10/11(木) 20:21:51 ID:???.net
>>668
> スクリプトとかライブラリの常駐の話
> mod_phpは実行してもスクリプトは常駐されないでしょ
> perlrunでもuseとかrequireされたライブラリは常駐するよね? その辺の話

そういう方面の話か。だったら常駐とかプロセスとか紛らわしい言い方するなよ…

で、mod_perl が使いにくいのはその通りで、
だから FastCGI や SpeedyCGI が話題になってるんだろ

> てかmod_phpっぽい動作にする方法あったら教えて えろい人

SpeedyCGI 使え SpeedyCGI

674 :nobodyさん:2007/10/12(金) 00:42:05 ID:???.net
みんなどうもです
結局FastCGIかSpeedyCGIって事か…
Catalystが動くかしらべてみっかな


675 :nobodyさん:2007/10/13(土) 16:39:43 ID:???.net
mod_perlならデフォで付けられる程安定/サポ有りモジュールだから間違いはない。
ビジネスするとこならまず選ぶ選択股であるのは当たり前。
amazon, mixi, hatena, livedoor, accessup ...
2chの話よりまず事例に従った方がミスはないと思うけどね。



676 :nobodyさん:2007/10/13(土) 19:36:24 ID:???.net
mod_perlは重い。HTMLやCSS,画像用に別にウェブサーバを用意しないといけない。一部の巨大なウェブサイトならリソースがふんだんにあるだろうけど、多くはそうじゃない。

677 :nobodyさん:2007/10/13(土) 20:51:37 ID:???.net
なんでそこまでして大規模サイトに
スクリプト言語を使いたくなるのだろうねえ

678 :nobodyさん:2007/10/13(土) 21:03:55 ID:???.net
mod_perlって高負荷時に安定はしないんじゃね?
mixiはDBの方がネックだったらしいから大丈夫だったっぽいけど。

679 :nobodyさん:2007/10/14(日) 14:39:13 ID:???.net
別にサーバー用意しなきゃいけないは伝説。
超余裕環境が最高効率を目指すだけの技。
立ち上がるhttpdを3つ位までにしてworkerで動かせばメモリーの消費は抑えられて十分だよ。
preforkで立ち上げるからメモリーを馬鹿みたいに使って高負荷時にメモリーが無いと騒ぐことになる。

そもそもそこにボトルネックは
・プログラムをいかにhtmlにするか
・ファイルをいかにメモリーにおくか
・そしてmixiのようにdbをどうするか
のようなCPU/IO/ネットワークまわりの基本レベルの選択が問題。

スクリプト言語といっても実行している時にはスクリプトの状態ではないのだから、
開発効率を考えればスクリプトを選ぶのは当たり前。
速度が必要な時にApache Moduleの世界に一部入る(greeとか)という選択肢があれば良い。


680 :nobodyさん:2007/10/14(日) 14:42:58 ID:???.net
x: そもそもそこにボトルネックは
o: そもそもそこよりボトルネックは


681 :nobodyさん:2007/10/14(日) 19:32:01 ID:???.net
事例多い → mod_perl
mod_perl より速い → FastCGI
さらに速い → mod_speedycgi
root いらずで手軽 → SpeedyCGI
要は使い分けじゃね?

俺は手軽さが魅力だったので SpeedyCGI を選んだ。

682 :nobodyさん:2007/10/14(日) 21:00:07 ID:???.net
root権限、Apache 管理者権限なしでSpeedyCGIを導入する方法がわからん。
助けてえろい人。

683 :nobodyさん:2007/10/14(日) 21:05:14 ID:???.net
>>682
Apache管理者権限って何?
つ、普通に入れられないのか?

684 :nobodyさん:2007/10/15(月) 12:38:49 ID:???.net
サーバにシェルログインする。
SpeedyCGI をユーザホームディレクトリ配下にインスコする。
以上

685 :nobodyさん:2007/10/15(月) 15:54:12 ID:???.net
>>681
mod_perl で効果的に ithread 使うのが一番速い。
FastCGI だとスレッドの恩恵が少ない。

レンタルサーバだと一定時間を越えて動作するプロセス
情け容赦なく kill されるので
SpeedyCGI は利用できないと思った方が無難。
(SpeedyCGI に限らないが。)

686 :nobodyさん:2007/10/15(月) 16:30:46 ID:???.net
use threadは使い物にならなかったけどuse ithreadは使いものになるのか。
今度試してみよう。
この板見て初めての収穫。


687 :nobodyさん:2007/10/15(月) 16:32:14 ID:???.net
x: use thread / o:use threads

688 :nobodyさん:2007/10/15(月) 16:51:46 ID:???.net
せめて試してから収穫かどうか判断しろよ

689 :nobodyさん:2007/10/15(月) 18:07:12 ID:???.net
Apache が worker 動作してるなら試してみる価値はある。
一方で lighttpd + fastcgi で十分じゃないかと言う話も。

690 :nobodyさん:2007/10/15(月) 22:42:23 ID:???.net
>>684

>SpeedyCGI をユーザホームディレクトリ配下にインスコする。

わからん。。。。。。。
普通にmakeしてもダメだろ?

691 :nobodyさん:2007/10/16(火) 00:58:26 ID:???.net
>>686
Perl で ithread を使うための宣言が use threads だろ。
同じ物だよ。

>>690
「CPAN ホームディレクトリ」でググれ。
cpan コマンド使わずに手動でインスコするなら perl Makefile.PL PREFIX=$HOME とか

692 :nobodyさん:2007/10/16(火) 10:52:05 ID:???.net
まじ?
それだったら期待できないな。
過去の経験からいえばperlのthreadsはメモリーの扱い下手過ぎ(過消費)。
スワップまでの寿命がかなり短くなる。


693 :nobodyさん:2007/10/16(火) 12:36:40 ID:???.net
スクリプト言語は開発効率が高いって本当なの?
企業としては開発効率以外にも見るべき所があるでしょ

694 :nobodyさん:2007/10/16(火) 12:47:07 ID:???.net
>>692
5.005 の thread (use Thread;) と 5.6 以降の ithreads (use threads;) は違う。
後者の場合も注意して作らないとメモリをジャブジャブ使うのは変わらないが。

>>683
場合によりけりだろう。
一般的には規模が大きくなればかえって効率下がることになってる。
個人的には規模が小さくても型付けの弱い言語は開発効率が低いと感じる。

695 :nobodyさん:2007/10/16(火) 16:20:31 ID:???.net
そういう意味だったら試したのはithreadの方だったと思う。
でも、多分
Interpreter threads are different from "5005threads"
(the thread model of Perl 5.005)
by creating a new perl interpreter per thread and not sharing any data or state between threads by default.
とあるとおり、スレッド毎にinterpreter分のメモリーをガンって増やすから、凄いことになっちゃったのかな。
mod_perlだともしかしてこのinterpreter分が節約できるのか?
自分はコマンド用途で試してたから増え方にビックリしたんだけど。


696 :nobodyさん:2007/10/16(火) 16:50:51 ID:???.net
ごめん。685 の文からしておかしかった。

mod_perl (2.x) は ithread を内部的に使ってる、だった。
で、プロセス毎に上限の設定されたスレッドプールで使いまわしてる。

697 :nobodyさん:2007/10/17(水) 16:52:12 ID:???.net
mod_perl重いって話けっこうあるし、画像用の別サーバとか
普通ってかあたりまえな気はする。
別サーバといっても同じマシンに別のApache立ち上げるだけでいいわけだし
mod_phpにしてもメモリ食いだし、静的ファイル用に別サーバ用意するのは当たり前だとおもってたけどな・・
それで重いといわれても〜

698 :nobodyさん:2007/10/17(水) 16:54:27 ID:???.net
あと開発効率はめちゃ高いと思うぞ
大規模なサイトでも機能ごとにちゃんと分けてあげたり普通につくれば普通に便利。
てか体が慣れてるので俺の中ではウェブ系はPerl以外ありえない


699 :nobodyさん:2007/10/17(水) 16:56:24 ID:???.net
あとまったくすれ違いだけどphpってphp.iniで文字コード制御とかありえねーなといつも思う
と独り言


700 :nobodyさん:2007/10/17(水) 17:16:43 ID:???.net
静的ファイルの話するには100番くらいレス戻さないとダメだが。

静的ファイルで速度出したいなら lighttpd も良い選択だと思われ。

701 :nobodyさん:2007/10/17(水) 19:51:25 ID:???.net
それをいったら、実行はじめたスクリプト中で ini_set('mbstring.internal_encoding', 'EUC-JP'); とか

702 :nobodyさん:2007/10/22(月) 16:25:52 ID:YWIr8Jbq.net
専用ならHTTP::Daemonで
まるごと組んじゃうとか、どうなの?

703 :nobodyさん:2007/10/23(火) 13:31:51 ID:???.net
細かい処理考えるのめんどいからmod_jk + Net::AJP13に期待


704 :nobodyさん:2007/10/29(月) 01:19:53 ID:???.net
ねえねえ、ひょっとして mod_speedycgi2 ってアパッチョ2.2系じゃコンパイル不可?

うち、Cent4で、自前makeしたAp2.2.6を/usr/local/apache2/にインスコして、
そのapxsを読み込ませるようにしてmakeしてみたんだけど、mod_speedycgi2.cでエラー100個くらい出て止まってしまう。
内容はなんかsyntaxErrorだとか、previous definition(定義済みの再定義?)がでまくるんだけど・・・。

ちなみにrpmからの2.0.59では一応makeは通る(でもtestでmod_系は全スキップしてしまう)。

どなたか2.2系で動かしてる人いませんか?

705 :nobodyさん:2007/10/29(月) 08:39:55 ID:???.net
上のレスでさんざん既出のこれじゃないかな

http://rt.cpan.org/Public/Bug/Display.html?id=23920

706 :nobodyさん:2007/10/29(月) 22:49:20 ID:???.net
>>705
やった〜。makeできたよママン。
ありがトン。

707 :nobodyさん:2007/10/30(火) 04:25:29 ID:OsAJPMJ7.net
ねえねえ、ひょっとして mod_speedycgi2 ってアパッチョ2.2系じゃコンパイル不可?

うち、Cent4で、自前makeしたAp2.2.6を/usr/local/apache2/にインスコして、
そのapxsを読み込ませるようにしてmakeしてみたんだけど、mod_speedycgi2.cでエラー100個くらい出て止まってしまう。
内容はなんかsyntaxErrorだとか、previous definition(定義済みの再定義?)がでまくるんだけど・・・。

ちなみにrpmからの2.0.59では一応makeは通る(でもtestでmod_系は全スキップしてしまう)。

どなたか2.2系で動かしてる人いませんか?

708 :nobodyさん:2007/11/14(水) 00:27:32 ID:MPH8wi6G.net
ねえねえ、ひょっとして mod_speedycgi2 ってアパッチョ2.2系じゃコンパイル不可?

うち、Cent4で、自前makeしたAp2.2.6を/usr/local/apache2/にインスコして、
そのapxsを読み込ませるようにしてmakeしてみたんだけど、mod_speedycgi2.cでエラー100個くらい出て止まってしまう。
内容はなんかsyntaxErrorだとか、previous definition(定義済みの再定義?)がでまくるんだけど・・・。

ちなみにrpmからの2.0.59では一応makeは通る(でもtestでmod_系は全スキップしてしまう)。

どなたか2.2系で動かしてる人いませんか?

709 :nobodyさん:2007/11/14(水) 06:43:19 ID:vnJkUfbw.net
ねえねえ、ひょっとして mod_speedycgi2 ってアパッチョ2.2系じゃコンパイル不可?

うち、Cent4で、自前makeしたAp2.2.6を/usr/local/apache2/にインスコして、
そのapxsを読み込ませるようにしてmakeしてみたんだけど、mod_speedycgi2.cでエラー100個くらい出て止まってしまう。
内容はなんかsyntaxErrorだとか、previous definition(定義済みの再定義?)がでまくるんだけど・・・。

ちなみにrpmからの2.0.59では一応makeは通る(でもtestでmod_系は全スキップしてしまう)。

どなたか2.2系で動かしてる人いませんか?

710 :nobodyさん:2007/11/17(土) 13:53:14 ID:???.net
ねえねえ、ひょっとして mod_speedycgi2 ってアパッチョ2.2系じゃコンパイル不可?

うち、Cent4で、自前makeしたAp2.2.6を/usr/local/apache2/にインスコして、
そのapxsを読み込ませるようにしてmakeしてみたんだけど、mod_speedycgi2.cでエラー100個くらい出て止まってしまう。
内容はなんかsyntaxErrorだとか、previous definition(定義済みの再定義?)がでまくるんだけど・・・。

ちなみにrpmからの2.0.59では一応makeは通る(でもtestでmod_系は全スキップしてしまう)。

どなたか2.2系で動かしてる人いませんか?

711 :nobodyさん:2007/11/17(土) 18:28:52 ID:???.net
いい加減うぜえよwww

712 :nobodyさん:2007/11/24(土) 02:37:09 ID:???.net
ちょっとlibapreq2について質問なんだけど、

make test した時の、
t/apreq/cgi テストは失敗するもん?

CPANから取って来た2.08と、FedoraのRepoから引っ張ってきた2.09-rcのsrc.rpm
からやってみたんだけど、両方これがエラーになる。

ググってみても、いくつかのBlogとかで
「make test いくつか失敗するけど無視する」
みたいなこと書いてあるし、ほんとにこれでいいんかい??

CentOS4.5,Apache2.2,mod_perl2.0.3

713 :nobodyさん:2007/11/24(土) 09:23:53 ID:???.net
Blog (笑

どんなエラーかも書いてないし…これは酷い。

714 :712:2007/11/25(日) 19:11:55 ID:???.net
こりゃあきまへん。これこのTestでコケるようになってるわ、packageの構造的に。

>>713
エラーの内容ってこれ?
t/apreq/big_input....ok
t/apreq/cgi..........# Failed test 1 in t/apreq/cgi.t at line 62
t/apreq/cgi..........NOK 1# Failed test 2 in t/apreq/cgi.t at line 62 fail #2
t/apreq/cgi..........NOK 2# Failed test 3 in t/apreq/cgi.t at line 62 fail #3
t/apreq/cgi..........NOK 3# Failed test 4 in t/apreq/cgi.t at line 62 fail #4
 ・
 ・
こんなのが40行ほど続いて、
t/apreq/cgi..........FAILED tests 1-41
Failed 41/41 tests, 0.00% okay
t/apreq/cookie.......ok
これ。つまりt/apreq2/cgi_tファイル全滅。全てのテストが失敗してる。これ以外は全てOKとなる。
このエラー見たところでline**で、コケてるのはわかるんだが、どうゆうエラーかは分からないと思った。
確かに上のスレでは内容書かなかった。すまん。

でも、当然だけどCPANやらで一通りBugReportは斜め読みしてみて、似たようなErrorの報告があったけど明確な解決になってなかったし、
patchも出てなかったから、「libapreq2」とか「libapreq2 インストール」でググってみて、上位のほうにあったいくつかの
インストール手順を紹介したサイト(Blog)の内容に、「make test 通らない」とか、「make test 飛ばす」みたいなこと書いてあったし、
Fedora6,7,8のSRPMの.specも make セクションの後に、test せずに install セクションに入ってたから、
test通らないのがデフォかなって思って、書き込みしたわけなんだが・・・。笑うところか?

まあいいわ。原因はつかんだ。

715 :つづき:2007/11/25(日) 19:12:31 ID:???.net

で、ちょっと長くなるけど、specに従い
./buildconf
CC=gcc CFLAGS="-O2 -g" ./configure --with-apache2=/usr/local/apache2 --enable-perl-glue

とやるわけなんだが、最後の”--enable-perl-glue”がくせもの。
このオプションは、通常libapreq2のコンパイル、Library(libapreq2.so)とmodule(mod_libapreq2.so)に加えて、
perl-libapreq2モジュール郡のコンパイルも同時に行う。でまあ、
make
make test

と進むわけだが、この全滅する glue/perl/t/apreq/cgi_t は、三つ目(perl-module)のビルドセクション
(Lib、mod、perlとテスト郡が3ステップある。実際makeしてみたらわかる。)に含まれるテストなんだけど、
Library、moduleはなんなくPass(じつはこれも落とし穴あり)して、このperlのテストセクションに入ってから、
問題のerrorが発生する。

で、Test中の動作を追っかけていたんだが、この t/apreq/cgi テストの時は、一時的に
t/の下位dirにcgi-bin/test_cgi.plってファイルが生成されて、それが実際に走ってる(httpd上で)。
で、このファイルはt/apreq/cgiテスト中にしか生存しなくて、次のテストに移ったら消えてしまう。(その間約2秒、その隙に捕獲する)

このtest_cgi.plファイル自体が諸悪の根源。以下中身(の上位行)
use strict;
use File::Basename;
use warnings FATAL => 'all';
use blib;
use APR;
use APR::Pool;
use APR::Request::Param;
use APR::Request::Cookie;
use APR::Request::CGI;

716 :つづき2:2007/11/25(日) 19:13:06 ID:???.net
この use 郡で、APR関係のmoduleをロードできずに失敗していた。
特に自分の環境では、Apache2.2系(mod_perlも)を/usr/local/apache2/にインストールしてたんで、
コンソールで、perl -e ’use APR’ とかしただけで、
Can't load ・・・・ libaprutil-1.so.0がロードできません。そんなファイルはありません DynaLoader.pm line230 みたいなErrorになる。

確かlibaprな.soファイル一式は、/usr/local/apache2/lib以下に格納されていて、どうやらここはperlのLIBPATHには含まれていない。
ちなみにperlのLIBPATHは、
perl -e 'use DynaLoader; print join("\n",@di_library_path) . "\n";' で確認できるんだけど、これの結果は
/usr/lib
/lib
/usr/local/lib
となっていて、(perl-5.8.8-4.el4si.i386.rpm)、/usr/local/apache2/等は読み込んでくれない。

仕方がないので、一時的に/usr/local/apache2/lib/以下を、/usr/lib/にコピーして、コンソールで再度 perl -e 'use APR'とやってエラー無し。

しかししかし、これで問題解決にはならないんだこれが・・。

この状態で再び make test としても、やっぱりt/apreq/cgiで全コケは変わらない。
今度は、
use APR::Request::Param;
use APR::Request::Cookie;
use APR::Request::CGI;
この三つ、実は今ビルドしようとしてるlibapreq2-perlに含まれるmodule郡で、しかも内部でlibapreq2.so.3にリンクしてる。で、こいつらが、
Can't load ...APR/Request/Request.so' for module APR::Request: libapreq2.so.3: cannot open shared object file: No such file or directory
なエラーを吐いて、正常に走ってくれないってわけ。
(このlibapreq2.so.file郡は、今まさにビルドしたばっかりのファイルで、libapreq2-2.09/library/.lib/にいて、当然perlのLIBPATH下にはいない)

717 :たぶん終わり:2007/11/25(日) 19:13:42 ID:???.net
激しく無理やりな解決方法としては、
make test せずに
make install してしまい、LIBPATH(/usr/lib/以下)に、いったんlibapreq2.soファイル郡を掘り込んでしまい、
(ApacheがRPMなら、ここに入るはず。でなければ、INSTDIRからここにコピー)その上でもっかい、libapreq2をmakeしたDirにcdして、
make test とすれば、みごと全てのテストに合格する。
(Cent4.5 Apache2.2を/usr/local/apache2/にinstall と、CentOS5.0 Apache2.2-rpmの両環境で確認)

でも、これじゃあなんだか手順が逆じゃない??
testでCompileコケてないの確認してからinstallじゃん、普通は・・・。

で、なんとかならないかと色々調べてみてんだが、
一時的にperl の DynaLoaderが検索するLIBPATHは、スクリプトの中からなら操作できるようなんだが、
外からやる方法が見つからない。(オプションとかスイッチとかで・・・。)

例えば、
LD_LIBRARRY_PATH=/usr/local/apache2/lib perl -e 'use DynaLoader; print join("\n",@dl_library_path) . "\n";'
とかやれば、@dl_library_pathに /usr/local/apache2/lib が追加されるんで、「お、出来たか」と思ったけど、
だめなんだよ。

718 :ほんとに終わり:2007/11/25(日) 19:14:17 ID:???.net
ウチの環境(Cent4、Cent5共に)だと、$LD_LIBRARY_PATH変数が、環境変数ではなくて、SHELL変数扱いになる。
前もって、exportしといても、引き継いでくれない。
上の例みたいにワンライナーなり、直接perlを呼べば変数が生きたままになるんだけど、
対象がmakeだと、makeのなかで、何段にもbashを呼び出す(子プロセス扱い)もんで、この$LD_LIBRARY_PATHを継承してくれないようだ。
Fedoraでもこうなるみたい。(Fedora.jpにLD_LIBRARY_PATHがらみのスレにあった。)

ここらへん、自分もあんまり理解がないのと、WebProg板っぽくないので、ム板の方にちょっと出張してきたんだけど、
まだよくわからない。(コレ関係はこれから調べるつもり)

LIBPATHを制御できたら、make test する時にちょこっとコマンド足せばいけそうだけど、出来ないとなったら、
Makefileなり、TESP.PLがらみを書き換えないといけない。(ちょっとで済みそうにない。)
あるいは、/etc/ld.so.confとかあたりかな?

ぶっちゃけ一番簡単な方法は、testしないか、
本末転倒になっちゃうけど、/usr/libなりにso一式をコピー(インストール)してから、testかけるかのどっちかだね。

でも、みんな躓かなかったのか?
2.07以前は試してないからわからんけど、2.08,2.09両方とも、いきなりやって一発目でうまくいかんだろこれじゃあ。
(ってか、make test する以上、絶対コケるようにしか思えないんだが・・・)

719 :nobodyさん:2007/11/25(日) 20:48:10 ID:???.net
今日吉野家行ったんだけどさ
まで読んだ

720 :nobodyさん:2007/11/26(月) 12:58:45 ID:???.net
このスレってみんなが libapreq2 を試すようなスレじゃないと思うよ

721 :nobodyさん:2007/11/26(月) 13:24:06 ID:???.net
さあ検証内容とpatchをbugリポートに送ってみんなを幸せにするんだ

722 :nobodyさん:2007/12/02(日) 08:44:17 ID:1DkmgRhY.net
今北産業

723 :nobodyさん:2007/12/10(月) 11:46:51 ID:???.net
これについてわかる方いますか?
http://pc11.2ch.net/test/read.cgi/php/1018333172/580-581

環境は、
OS:centos5
httpd-2.2.3-11.el5.centos
mod_perl-2.0.2-6.3.el5
になります。

724 :nobodyさん:2007/12/10(月) 20:27:41 ID:???.net ?2BP(1520)
add-handler あたりかな?

725 :723:2007/12/10(月) 21:05:41 ID:???.net
>>724
ありがとうございます。
早速試してみたところ、無事解決しました!うおおお!

■変更前
<DirectoryMatch "/home/aaa/cgi-bin/(.*.cgi)">
  SetHandler perl-script
  PerlResponseHandler ModPerl::Registry
  PerlOptions +ParseHeaders
  Options ExecCGI +MultiViews
</DirectoryMatch>

■変更後
<Directory "/home/aaa/cgi-bin/">
  AddHandler perl-script .cgi
  PerlResponseHandler ModPerl::Registry
  PerlOptions +ParseHeaders
  Options ExecCGI +MultiViews
</Directory>

■設定3で追記した通常のCGIで動作させるDirecitoryディレクティブは削除

726 :nobodyさん:2008/02/18(月) 21:32:41 ID:aEv1JCZt.net
Apache2.2.8、PHP5.2.5、mod_fastcgi2.4.6使用。
100MBとかの大きなファイルをPHPにアップロードしている最中、
startDelayごとに新しいプロセスが起動されてしまう。
maxClassProcessesかmaxProcessesに到達するまで続く。
どうにかならないでしょうか?

727 :726:2008/02/19(火) 18:33:58 ID:3qklWUbG.net
mod_fastcgiのソース見たら納得。
WebサーバーからFastCGIサーバーへの、CGIでいうところの標準入力は
すぐ完了するという仮定でコードが書かれてて、
時間がかかる⇒FastCGiサーバーがハング という想定なのね。
ちょこっとパッチ当てるだけじゃ解決できないっぽい…?
参ったなあ

728 :nobodyさん:2008/02/19(火) 21:41:50 ID:???.net
あー、俺も FastCGI 経由で応答に5秒以上かかる検索クエリ動かしたら異常終了したことがあったんだが、原因は>>727と同じか?


729 :726:2008/02/19(火) 22:41:08 ID:???.net
mod_fcgidはリクエストを全部いったんモジュール内でバッファリングしやがる。
おかげでhttpdが150MBメモリ使ってしまった。
メーリングリストを見ると、MaxRequestInMemディレクティブを使えとのことだが、
症状は変わらない。例え動くとしても、
http://fastcgi.coremail.cn/download.htm
>If the length of http request longer than "MaxRequestInMem", it will store in tmp file.
結局ファイルにバッファリングするだけみたいだし。

Apacheが異常終了したのか、それともFastCGIサーバーが異常終了したのか

730 :726:2008/02/19(火) 22:41:27 ID:???.net
最後の1行は>>728当て

731 :728:2008/02/19(火) 23:57:15 ID:???.net
>>730
もう1年以上前の話なんでうろ覚えだが、
Internal Server Error か似たような状態になった希ガス

732 :nobodyさん:2008/02/22(金) 07:02:49 ID:???.net
mod_perlなんすけど、sudoで動かないのはなぜに?

ちゃんとApache権限で呼び出してるんだけど、CGIとして動いてる。
他のも一緒?

733 :732:2008/02/24(日) 01:02:41 ID:9eLfTMt1.net
うう;;
誰か教えておくれ。

あと、mod_perlって標準出力も違う?
Image::Magickで標準出力しようとして、
$image->Write('jpeg:-');
の部分でエラー。ファイル場所がおかしいって。

指定方法を変えれば標準出力できる?

734 :nobodyさん:2008/02/24(日) 02:11:15 ID:???.net
とりあえずもちついて状況を説明汁

735 :nobodyさん:2008/02/24(日) 02:43:34 ID:???.net
Perlのアクセラレーター
http://rintaro.dip.jp/program/apbench/index.html

このページ繋がらなくなっちゃってるなー
このスレの人のベンチがあったからたまに見てたんだが
自宅鯖だったんだろな

736 :nobodyさん:2008/02/24(日) 16:59:49 ID:???.net
>>733
mod_perlだとforkするわけじゃなくevalされるからsudoの入り込む余地は無いんじゃないか。

>ファイル場所がおかしいって。
標準出力はSTDOUTで同じ。カレントディレクトリがルートになってるよ多分。
print `pwd`;とかで調べて絶対パスで指定するか始めにchdir。

737 :nobodyさん:2008/02/24(日) 17:06:50 ID:???.net
回答がちょっとずれてたごめん。
STDOUTに出力してるのに「ファイル場所がおかしいって」ってエラーが出るのか
私もわからんです。

738 :732:2008/02/24(日) 18:56:01 ID:9eLfTMt1.net
>>734
sudo -u apache /var/www/hoge.cgi
で動かしたいんだけど、permissionエラーになるの。
当然って言えば当然なんだけど、mod_perlならパーミッション関係なく動くよね?
これはapacheが予めコンパイルしてるからだろうけど、そのコンパイル済みのperlとして呼び出したいんだけどなぁ。

つまり、cronをはじめ、外部から呼び出す時にはmod_perlで動かす事は不可能って事でよいのかな?
url叩けばmod_perlとして動くのかな?
それと他のspeedyとかでも挙動は同じなのかなって質問です。


標準出力についての質問は、
普通"-"で標準出力を指すよね?mod_perlではこれを標準出力として認識しないようなんですが。


739 :732:2008/02/24(日) 19:12:29 ID:9eLfTMt1.net
>>736
あ。ありがとうございます。

標準出力についてですが、そもそも標準出力ってオンメモリーみたいなものだと思ってたのですが、
俺の勘違いでしょうか?
フルパスでどこを指定すればよいのでしょうか?

740 :736:2008/02/24(日) 19:43:44 ID:???.net
>sudo -u apache /var/www/hoge.cgi
>で動かしたいんだけど、permissionエラーになるの。
>当然って言えば当然なんだけど、mod_perlならパーミッション関係なく動くよね?
mod_perlは独自にapache権限で実行権限があるか調べています。

>これはapacheが予めコンパイルしてるからだろうけど、そのコンパイル済みのperlとして呼び出したいんだけどなぁ。
>つまり、cronをはじめ、外部から呼び出す時にはmod_perlで動かす事は不可能って事でよいのかな?
>url叩けばmod_perlとして動くのかな?
mod_perlは初回プログラム実行時に実行状態のままapacheプロセスの中で待機します。
なのでcronやコンソールから呼び出すときには必ずapacheを通さなければいけません。

>それと他のspeedyとかでも挙動は同じなのかなって質問です。
speedycgiではお望みの動作をします。独自にプロセスを立ち上げるのでapacheには依存しません。
cronやコンソールからの実行でも高速に動作することが可能です。面倒なsocketの管理も勝手にやってくれます。

>普通"-"で標準出力を指すよね?mod_perlではこれを標準出力として認識しないようなんですが。
エラーの原因は標準出力部分ではないと推測します。
出力以前に
$Image->Read('./hoge.jpg');
等をしていませんか?
mod_perl2から標準ではカレントディレクトリの位置がスクリプトを置いたディレクトリ
にならないためno such〜エラーが発生していると思われます。

741 :732:2008/02/24(日) 21:05:56 ID:9eLfTMt1.net
>>740
詳しい説明ありがとうございました。
なるほど。やはりmod_perlですとcronからはURLとして叩く(Apacheを通す)しかないのですね。
speedycgiは挙動が違うというのも非常に知りたい情報でした。ありがとうございます。

標準出力についてですが、
$image->Read('フルパス');
としています。その時点ではエラーは吐いておらず、
$image->Write('フルパス');
としてファイルに書き込む場合は同じく問題ないのですが、

$image->Write('jpeg:-');
と標準出力に出力しようとした場合にエラーとなります。

742 :732:2008/02/24(日) 21:10:29 ID:9eLfTMt1.net
>>740
お詳しいようなのでもう一点質問して良いですか?
mod_perlだとDBとの接続も維持したままになると思いますが、それはspeedyCGIでも同じでしょうか?

なぜcronでmod_perlとして動かしたいかというと、そこにあるので。


743 :nobodyさん:2008/02/24(日) 21:59:41 ID:???.net
> $image->Write('jpeg:-');
> と標準出力に出力しようとした場合にエラーとなります。
それはWrite時に初めてリード時のエラーを指摘されているだけだと思います。
$image->Read('フルパス') or die $!;
とすればRead時にエラーが発生しているのが分かるかと思います。

>mod_perlだとDBとの接続も維持したままになると思いますが、それはspeedyCGIでも同じでしょうか?
speedyCGIでもコネクションプーリングする事は可能です。
但しmod_perlのApache::DBIのようにトランスペアレントではありませんから
自分でDBハンドルを再利用するようにロジックを組む必要があります。
もしかするとspeedyCGIからでもApache::DBIが利用できるかもしれませんが試したことが無いので分かりません。

744 :732:2008/02/24(日) 22:49:11 ID:9eLfTMt1.net
>>743

ありがとうございます。
ご指摘の通り、Readの時点でこけます。
フルパスで指定しているのに、なぜNo suchが出るのでしょうか?
それとファイルに書き込む時は(or dieをつけなければ)そのままエラー無く処理が完了します。

試しに標準出力ではなくファイル書き込み時ではReadの時点でInappropriate ioctl for deviceというエラーになります。
なぜエラー内容が変わってくるのでしょうか?

pwdの結果は/でしたのでフルパスの指定は間違いないと思うのですが。

745 :732:2008/02/24(日) 22:52:20 ID:9eLfTMt1.net
ちなみに標準出力時に出るエラーとは以下のものです。

Exception 450: Output file write error --- out of disk space? `-'


746 :732:2008/02/24(日) 23:14:44 ID:9eLfTMt1.net
うそでした。
すいません。どちらの場合もReadの時点で以下のエラーが出ています。
Inappropriate ioctl for device

DBとのコネクションプーリングの件は私には敷居が高そうなのでmod_perlでやってみようと思います。


747 :nobodyさん:2008/02/24(日) 23:24:44 ID:???.net
ヴォケの>>732に根気よくつきあってやる>>740に感動下

とりあえず>>732はこれでも読んどけ
http://www.google.co.jp/search?q=%83R%83l%83N%83V%83%87%83%93%83v%81[%83%8A%83%93%83O%93s%8Es%93%60%90%E0

748 :736:2008/02/25(月) 00:37:18 ID:???.net
実際試して状況を把握しました
・Readは如何なる場合でも真を返さない
・今回の件はmod_perl時に起こる問題
XSなimageMagickがレイヤー飛び越えて標準出力してるのでIOエラーが出ている模様

標準出力とメモリ展開を混同されているっぽいですがオンメモリでやりたいという事であれば
$image->Write('jpeg:-'); を
print $image->ImageToBlob;

とすれば良いと思います。

なまじっかスキルがあると自分の解釈で勝手に理解してこういう当を得ない質問になるんだよなと
生暖かく見てたがそれは俺でした/(^o^)\

749 :732:2008/02/25(月) 01:01:47 ID:r7CiXV4j.net
>>748
わざわざ試してまでもらって恐縮です。
ImageMagickは標準出力がmod_perlでは出来ないんですね。

ImageToBlobでやってみます。
長々と素人にお付き合いありがとうございました。m(__)m


750 :nobodyさん:2008/03/30(日) 17:36:33 ID:???.net
保守

751 :nobodyさん:2008/04/19(土) 04:55:36 ID:???.net
おお、2.0.4がきてるじゃないか!!?

752 :nobodyさん:2008/06/04(水) 04:11:40 ID:???.net
ほっほっ

753 :nobodyさん:2008/06/10(火) 16:29:09 ID:m3z0B2Hm.net
WindowsのInstantRails(Apache1.3.33)でFCGIを動かそうと
RubyForApache-1.3.1.exe をダウンロードしてきて
LoadModule fastcgi_module modules/mod_fastcgi.so
するんですが、そんなモジュールは無いとapacheがMSGを出します。
その他mod_fastcgi-2.4.6-AP22.dll等も入れてみてるのですが、
そんなモジュールは無いといわれるのですが、そもそも LoadModule
する前になにかする必要があるのでしょうか?apacheが古い?
教えてください。

754 :nobodyさん:2008/06/11(水) 01:21:57 ID:???.net
AddModule?

755 :nobodyさん:2008/06/11(水) 11:26:09 ID:???.net
AddModule はLoadModuleの後に設定するはずですから・・・。

756 :nobodyさん:2008/06/26(木) 03:55:41 ID:LMAVX0ml.net
mod_fast_cgiのインストールに関してググると、
apache2.2のためにはパッチをあてるってあるけど
2.4.6の今もパッチは必要なの?

757 :nobodyさん:2008/06/29(日) 00:22:02 ID:M9i4VA+K.net
FastCGIは、apache1.3と組み合わせるのが
一番安定するという話をネットで目にしたのですが
これは今でもそうですか?
一昔前ならともかく、1.3系はもう古いという印象があるんですが

758 :nobodyさん:2008/06/29(日) 00:39:11 ID:???.net
> 一昔前ならともかく、1.3系はもう古いという印象があるんですが

あなたの基準で「古い」と何か問題?

759 :nobodyさん:2008/06/29(日) 00:43:03 ID:M9i4VA+K.net
なぜ煽り気味?
目にしたブログの記事が少し古いものばかりなので
今の状況は少し変わってるのではないかと思ったのです

760 :nobodyさん:2008/06/29(日) 02:14:29 ID:???.net
1.3.41のリリース日みた?
状況も解らずに「古い印象」とかなんとかヌかしてるから言われるんでしょ


761 :nobodyさん:2008/06/29(日) 06:14:16 ID:???.net
>>760
757 ではないが、お前が「古い」の意味を混同してるよ。

日本語が読めればわかると思うが、>>759 で書かれてるのは、
「FastCGIは、apache1.3と組み合わせるのが一番安定するという話」
が書かれた記事が
「少し古いものばかりなので今の状況は少し変わってるのではないかと」
ってことだろ。

Apache 1.3 系が古いか否かや、メンテナンスが続いているか否かとは別次元の話。

で、
> あなたの基準で「古い」と何か問題?
を俺なりに勝手に考えると、
・今時のディストリビューションには標準で付属していないことが多いので 1.3 の導入やメンテが面倒、できればやりたくない
・今はメンテが続いているけどいつかは終わるだろう、当然ながら 2.0 系より早い時期に
ってとこじゃね?

762 :nobodyさん:2008/06/29(日) 09:19:02 ID:???.net
> ・今時のディストリビューションには標準で付属していないことが多いので 1.3 の導入やメンテが面倒、できればやりたくない

debian stable 使えばいいと思うよ。今のところ全部そろってるよ。

763 :nobodyさん:2008/06/29(日) 19:16:17 ID:???.net
>>762
Debian でも
・少なくとも静的なファイル配信は Apache2 の方が優れてるからできれば Apache2 に一本化したい
ってのはあると思うよ。


764 :nobodyさん:2008/06/29(日) 20:57:20 ID:???.net
> Debian でも
> ・少なくとも静的なファイル配信は Apache2 の方が優れてるからできれば Apache2 に一本化したい
> ってのはあると思うよ。

何おっしゃりたいのか、さっぱりいみわかんなーい。
持論はブログで展開してくれよ。

765 :763:2008/06/29(日) 23:45:25 ID:???.net
>>764
一応マジレスしておくと、
仮に「FastCGI を Apache 1.3 で動かすべき」という前提が今日も変わらないとした場合、
FastCGI を使う Web サイトを運営するには
・Apache 2.x で静的なファイルを配信しつつ、動的な部分だけ Apache 1.3 に橋渡しする
・静的なファイルも動的なコンテンツも Apache 1.3 で配信する
の2択になるわけだ。

前者は明らかに面倒だわな。避けたい。
後者はまあ Apache 2.x だけで運営する場合と手間的には大差ないが
静的コンテンツの配信パフォーマンスはやや落ちる。
Apache 1.3 がいつまでメンテされ続けるかも不安がある。

しかしもし「FastCGI を Apache 1.3 で動かすべき」という前提がもう過去の話になっていて
現在は別に Apache 2.x でも全然信頼性変わらんよという状態なのであれば
静的なファイルも動的なコンテンツも Apache 2.x に一本化できるわけだ。

どちらの方向で行くかはこの「FastCGI を Apache 1.3 で動かすべき」という伝説が
現在も正しいかどうかにかかってるから、どうなの? というのが>>757の質問でしょう。

766 :nobodyさん:2008/06/30(月) 00:09:35 ID:???.net
Lighttpdに乗り換えちゃおうぜ!

767 :nobodyさん:2008/06/30(月) 00:52:55 ID:???.net
1.3のほうがいいってのは何が根拠なの?
まあ、2.x用のmod_fastcgiもmod_fcgiもしょーもないとは思うけど


768 :nobodyさん:2008/07/01(火) 01:32:06 ID:???.net
一応俺の Debian 鯖の各種 Apache で ab -c 10 -n 100000 http://localhost/ した結果置いとく。

■apache (1.3.34)
Time taken for tests: 87.821402 seconds
(略)
Requests per second: 1138.67 [#/sec] (mean)
Time per request: 8.782 [ms] (mean)
Time per request: 0.878 [ms] (mean, across all concurrent requests)
Transfer rate: 1279.89 [Kbytes/sec] received

■apache2 (2.2.3 mpm-prefork)
Time taken for tests: 28.611753 seconds
(略)
Requests per second: 3495.07 [#/sec] (mean)
Time per request: 2.861 [ms] (mean)
Time per request: 0.286 [ms] (mean, across all concurrent requests)
Transfer rate: 1744.21 [Kbytes/sec] received

■apache2 (2.2.3 mpm-worker)
Time taken for tests: 32.149481 seconds
(略)
Requests per second: 3110.47 [#/sec] (mean)
Time per request: 3.215 [ms] (mean)
Time per request: 0.321 [ms] (mean, across all concurrent requests)
Transfer rate: 1552.25 [Kbytes/sec] received

localhost から空のコンテンツを取るベンチだから実利用環境ではこんな大きな差は出ないと思うが、参考まで。

769 :nobodyさん:2008/07/01(火) 01:38:53 ID:???.net
1.3おせええええ
パフォーマンスをとるか安定度をとるかってことか

770 :nobodyさん:2008/07/01(火) 18:39:39 ID:???.net
fastcgiって昔からあって、積極的な開発はされてないし、1.3の方が安定してるっていうのは何となくそういう感じはする。


771 :nobodyさん:2008/07/01(火) 18:41:18 ID:???.net
オカルトスレはここですか?

772 :nobodyさん:2008/07/01(火) 20:25:22 ID:1MihmXWA.net
開発時、プログラム書き換えるたびにapache再起動するのが激しく面倒くさいんだが
なんとかならない?

773 :nobodyさん:2008/07/01(火) 21:02:49 ID:???.net
mod_perlの話?Apacheの設定を変えるのでも再起動しなきゃいけないんだから
しょうがないでしょ

774 :nobodyさん:2008/07/01(火) 22:13:25 ID:???.net
fastcgiって、ろくにメンテナンスされてないだろ。

775 :nobodyさん:2008/07/02(水) 01:13:34 ID:???.net
最終更新去年の4月だから
メンテされてないってことはないんじゃね?
枯れてるだけじゃないの

776 :nobodyさん:2008/07/02(水) 02:33:20 ID:f6IA2zpT.net
〜 時間がありません!協力をお願いします!!広めてください。 〜

【緊急】 7・2(水) 毎日新聞本社前抗議活動


         ___
       /     \
      /   \ , , /\
    /    (●)  (●) \ 行動は起こさないと、何にも始まらない!
     |       (__人__)   |  数は圧力です! その場にいるだけでいい!
      \      ` ⌒ ´  ,/ 
.      /⌒〜" ̄, ̄ ̄〆⌒,ニつ 
      |  ,___゙___、rヾイソ⊃ 
     |            `l ̄


「毎日新聞本社前抗議活動」 でググってください!!!
「毎日新聞本社前抗議活動」 でググってください!!!

http://jp.youtube.com/watch?v=XnVCDtGRhFU

【緊急】 7・2(水) 毎日新聞本社前抗議活動

〜 時間がありません!協力をお願いします!!広めてください。 〜




777 :nobodyさん:2008/07/03(木) 14:43:11 ID:???.net
FastCGIってapache再起動しなくても
.fcgiファイルをtouchしたら再読み込みされるらしいね!
これ常識なん?

778 :nobodyさん:2008/07/03(木) 21:50:04 ID:???.net
そりゃApacheとはプロセスが別だからね。
mod_perlとか系に対するアドバンテージかもね

779 :nobodyさん:2008/07/04(金) 00:01:14 ID:???.net
>>777
そりゃ mod_fastcgi の設定次第だろ。

780 :nobodyさん:2008/07/04(金) 00:15:26 ID:???.net
どんな設定したらできんの?
そもそもtouchするなんていうハック的な方法じゃなくて
正式にapiを提供したらいいのにな・・・

781 :nobodyさん:2008/07/04(金) 01:38:38 ID:???.net
ドキュメントくらい読めよ
http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html
http://d.tir.jp/pw?mod_fastcgi

782 :nobodyさん:2008/07/04(金) 10:18:25 ID:???.net
> mod_perlとか系に対するアドバンテージかもね

なるのかなー?
fastcgi つかうと、FCGI::ProcManager アプリ側と front 両方いじらないと
アプリを再起動できなくね。
メモリ共有せずにプロセスの数分メモリ使っていいなら別だけど。

783 :nobodyさん:2008/07/04(金) 19:04:30 ID:???.net
mod_perlにもApache::Reloadあるし%INCからdeleteすれば
再読み込みしてくれるから更新を検知してリロードするロジックやプログラムを
自分で書くことも出来るよ。

784 :nobodyさん:2008/07/04(金) 20:22:20 ID:???.net
> mod_perlにもApache::Reloadあるし

つかったことある?

785 :nobodyさん:2008/07/04(金) 20:32:39 ID:???.net
>>784
自分は783ではないけれど、Apache::Reload使ったことある。
なんつーか、これ入れると(httpd.confで有効に設定)、全てのアクセスが激しく重くなる。
それも、mod_perl絡みだけでなくて、phpからstaticなhtmlからして全て。
(自前Benchで、有効時と無効時で、2倍近く差がでる。)

なので自分は、開発時はApache::Reload有効にする時もあるけど、
実運用では有効にはしないなぁ。

786 :nobodyさん:2008/07/23(水) 22:12:11 ID:???.net
Linux 2.6.22.5-49.fc6
Apache 2.2.3
SpeedyCGI 2.22
上記環境で mod_speedycgi2 を検証中です。
スクリプトの先頭に以下のように書いてます。
#!/usr/bin/speedy -- -t300 -r100

mod を経由して同スクリプトを実行すると、ps で確認した際のプロセス名が
/usr/bin/speedy_backend /path/to/script のようになるのですが、
この場合に -t300 や -r100 は効いてないと思って良いのでしょうか?
効かせたい場合にはどうしたら良いのでしょうか?

787 :786:2008/07/23(水) 22:16:52 ID:???.net
perldoc CGI::SpeedyCGI に書いてあった・・・orz 試してみます。

Apache
If you are using the optional Apache module, SpeedyCGI options can be set in the httpd.conf file. The
name of the apache directive will always be Speedy followed by the option name. For example to set the
Timeout option, use the apache directive SpeedyTimeout.


788 :786:2008/07/23(水) 22:43:47 ID:???.net
度々ですみません。一応、完了報告まで。
SpeedyTimeout 300
SpeedyMaxRuns 100

789 :nobodyさん:2008/08/26(火) 14:39:14 ID:???.net
Windowsで
http://perl.apache.org/docs/2.0/user/handlers/filters.html#Output_Filters
にあるサンプル
#file:MyApache2/FilterReverse1.pm
#----------------------------
package MyApache2::FilterReverse1;

use strict;
use warnings;

use base qw(Apache2::Filter);

use Apache2::Const -compile => qw(OK);

use constant BUFF_LEN => 1024;

sub handler : FilterRequestHandler {
my $f = shift;

while ($f->read(my $buffer, BUFF_LEN)) {
for (split "\n", $buffer) {
$f->print(scalar reverse $_);
$f->print("\n");
}
}

return Apache2::Const::OK;
}
1;
を実行しようとすると
Can't load 'C:/Perl/site/lib/auto/Apache2/Filter/Filter.dll' for module Apache2::Filter: 。。。。。
としかられるんだけどなぜ?

790 :nobodyさん:2008/08/26(火) 21:14:39 ID:???.net
そもそもmod_perlがはいってないとか?


791 :nobodyさん:2008/08/27(水) 08:47:25 ID:???.net
はいってる

792 :nobodyさん:2008/08/29(金) 19:26:47 ID:???.net
windowsでSpeedyCGI使えないかなぁ。

793 :nobodyさん:2008/10/19(日) 06:49:00 ID:Jn428c6F.net
CGI.pmとmod_perlの不具合みたいなのですが、uploadInfoが取得できません。

use CGI;
my %FORM;
my $cgi = new CGI;
foreach my $key ( $cgi->param() ){
$FORM{$key} = $cgi->param($key);
}
my $info = $cgi->uploadInfo($FORM{file});
unless (ref $info eq 'HASH') { print "error";}


これ試してみてください。$FORM{file}にはしっかりとファイル名が渡っているにも関わらず、undefが返ってきます。
ファイルのみをフォームにする場合には問題ないのですが、textareaなどもフォームに含めると取得できません。


794 :nobodyさん:2008/10/20(月) 01:40:18 ID:???.net
該当コードより前の処理でmy $cgi = new CGI;をしている所はありませんか。
use CGI;
use Data::Dumper;
my $cgi = new CGI;
my $fh = $cgi->upload('file');
print Dumper $fh, $cgi->tmpFileName($fh), $cgi->uploadInfo($fh);
これを最小構成のコードで実行するとどのような出力が得られますか。

795 :nobodyさん:2008/10/20(月) 06:45:48 ID:D0RbQ2Z9.net
>>794
最小構成で再現しませんでした。
グローバル変数が使いたくてvars.pmを使っていたのですが、それが悪さをしていたようです。
局所変数を使うと問題ないようです。

レスありがとうございました。

796 :nobodyさん:2008/10/20(月) 13:36:16 ID:???.net
これはヒドい JAROに通報していいレベル

797 :nobodyさん:2008/11/08(土) 16:58:34 ID:???.net
FastCGIをWindows環境に導入したみたんですが、Internal Server Error
が毎回発生してしまってうまくいきません。
error.logに「(OS 109)パイプは終了しました。」のメッセージが出るんですが
FastCGIが通信出来ていないって事なんでしょうか?
何か解れば、教えて下さい。

エラー内容
Internal Server Error

perlスクリプト test.fcgi
#!c:/perl/bin/perl
print "Content-type: text/html\n\n";
print "Hello world.";

環境
OS : WindowsXP Pro SP2
http : Apache/2.2.10 (Win32)
FastCGI : mod_fastcgi-2.4.6-AP22.dll

httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule fastcgi_module modules/mod_fastcgi-2.4.6-AP22.dll

<IfModule mod_fastcgi.c>
FastCGIConfig -initial-env PERL5LIB=C:/Perl/lib;C:/Perl/site/lib -autoUpdate -idle-timeout 120 -killInterval 3600 -maxClassProcesses 3-maxProcesses 15 -startDelay 30
AddHandler fastcgi-script .fcgi
</IfModule>


798 :nobodyさん:2008/11/08(土) 16:59:57 ID:???.net
>>797の続き
logs/error.log
[Thu Nov dd hh:mm:ss yyyy] [warn] FastCGI: (dynamic) server "C:/cgi-bin/test.fcgi" started (pid 388)
[Thu Nov dd hh:mm:ss yyyy] [warn] FastCGI: (dynamic) server "C:/cgi-bin/test.fcgi" (pid 388) terminated
 with exit with status '0'
[Thu Nov dd hh:mm:ss yyyy] [warn] FastCGI: (dynamic) server "C:/cgi-bin/test.fcgi" restarted (pid 2516)
[Thu Nov dd hh:mm:ss yyyy] [error] [client 127.0.0.1] (OS 109)パイプは終了しました。 : FastCGI: comm with
server "C:/cgi-bin/test.fcgi" aborted:GetOverlappedResult() failed
[Thu Nov dd hh:mm:ss yyyy] [error] [client 127.0.0.1] FastCGI: incompleteheaders (0 bytes) received from
server "C:/cgi-bin/test.fcgi" [Thu Nov dd hh:mm:ss yyyy] [warn] FastCGI: (dynamic) server
"C:/cgi-bin/test.fcgi" (pid 2516) terminated with exit with status '0'

799 :nobodyさん:2008/12/05(金) 21:45:48 ID:???.net
>>797
fastcgi の使い方がおかしい。
cpan でいろいろ探してみてみるといいよ。

800 :nobodyさん:2008/12/21(日) 15:01:42 ID:rToLegsW.net
今かりているレンタル鯖でmod_perl使えると知って、せっせと勉強始してたのはいいんだけど
htaccessしか使えないレンタルユーザーが使えるのってやっぱCGIの高速化だけですよね?
mod_perlのプログラミング、なんかしっくりくるから続けたいけど・・・
どうにかしたら使えるんじゃないかってまだ判断しかねてます。
実際どうなんでしょ?

801 :nobodyさん:2008/12/21(日) 15:21:26 ID:???.net
mod_perl は、その下にぶら下げておく perl の子が常駐することによって、
いろんな恩恵を受けれる。

ちなみにどこの鯖よ?

802 :nobodyさん:2008/12/21(日) 16:16:34 ID:5iT7SRyD.net
>>801
鯖はJust-Sizeってとこ。mod_perlとmod_pythonがロードされてて
問い合わせたらサポ外だけど使っていいと言われた(宣伝はしてない)

実際htaccessの記述でCGIならmod_perlでの動作を確認できてるんだけど
mod_perlスクリプトはユーザのディレクトリが@INCに入ってないから
当然自作モジュールは読み込めないです。
それであきらめかけてるんだけど・・変にテスト繰り返してメモリ食いなど迷惑かけたくないので
こちらに書き込みました。

803 :nobodyさん:2008/12/21(日) 16:36:39 ID:???.net
基本的に mod_perl って、httpd.conf 編集できて apache の再起動を
自由にできる人が使うものだと思うんだ。

で、Apache::Reload とかパフォーマンス落とすものを使わない限り、
再起動するまでは、ファイルをいくら新しくしても apache 側には反映されない。

500MB か 1GB しか積んでない共有鯖で mod_perl ってのは、ないと思う。


804 :802:2008/12/21(日) 19:19:34 ID:???.net
>>803
>httpd.conf 編集できて apache の再起動を自由にできる人が使うものだと
ううっ、真理だと思います・・・

>500MB か 1GB しか積んでない共有鯖で mod_perl ってのは、ない
これは一般に、CGIをmod_perlで動かす場合にも当てはまるでしょうか。

実はCGIをmod_perlで試したテストでは、サーバー側の設定かと思うのですが
.htaccessでModPerl::Registryを指定していてもファイルの変更/モジュールの変更とも即反映されてます。
スクリプト中で@INCに追加したパスも毎回反映されるので、モジュールも再読み込みされるようです。(つまりCGIと勝手が同じ)
環境変数にはMOD_PERLがあり、1行目にperlのパスを指定しなくても動くのでmod_perlで動いてるのは確かだと思うんですが、
ひょっとして毎回新たにプロセスが開始されてるような、自分のスキルでは図りかねる状況なんです。
非サポートとはいえ鯖の動作にもかかわることだから、少しまとめてから問い合わせしてみようとは思ってるんですが、
経験則としてご意見うかがえたらうれしいですm(_ _)m

805 :802:2008/12/21(日) 20:46:58 ID:???.net
すいません、今、思いついてCGIのプロセスIDを調べてみたら
やっぱりブラウザのリロードごと、毎回IDが新しくなっていました。
>>804の件、鯖の方に問い合わせてみます。

話がずれてしまったけど、非CGIのmod_perlスクリプトの方は
レン鯖ではあきらめるふんぎりがつきました。ありがとうございました〜!

806 :nobodyさん:2009/01/28(水) 14:35:27 ID:???.net
すみません、教えてください。

RHEL4上で、Apache2+ModPerl2 の環境があります。

1つの仮想ホスト上に複数(現状4つ)のシステムを同居させてます。
つまり、DocumentRootには、4つのログインページがあり、ログインに成功するとそれぞれ
サブディレクトリに移動します。

それぞれのシステムのセッション管理をCGI::Sessionにやらせています。
セッションIDは、それぞれのシステムでCookie名を変えて発行しています。

セッション情報を取得するために、

my $cgi = new CGI;
CGI::Session->name('SYS1SESSID');
my $session = new CGI::Session("driver:hoge",$cgi,{Handle=>$dbh});

といった感じで使いまわしていたんですが、「ModPerl環境だと、CGI::Session::NAMEがモジュールローカル
なので、new CGI::Session()で他のIDを使おうとしてしまうかもしれない」 という理解は正しいでしょうか?
結構頻繁にアクセスされているシステムです。

ログイン対象システムのセッションIDを正確に取るには、

my $cgi = new CGI;
my $sid = $cgi->cookie('SYS1SESSID');
my $session = new CGI::Session("driver:hoge" ,$sid, {Handle=>$dbh});
の様に、使うべきセッションIDを指定しなければならない という理解で合っているでしょうか?

CGI::Session は、現状、4.20 です。


807 :nobodyさん:2009/01/30(金) 17:46:30 ID:FjWtrZEq.net
代理age

808 :nobodyさん:2009/01/31(土) 16:58:46 ID:8MtMaIxA.net
ちょっと通りますが、
Windows XPで、Apahc2+mod_perl2で、下のエラーが出るときの対処方法って知ってますか?
failed to resolve handler `MyHandler': Can't load 'C:/Perl/site/lib/auto/APR/Pool/Pool.dll' 〜

809 :nobodyさん:2009/01/31(土) 18:12:00 ID:???.net
dllがないんじゃねーの?

810 :nobodyさん:2009/01/31(土) 18:57:57 ID:8MtMaIxA.net
いや、普通にあるんだけどね。

811 :nobodyさん:2009/01/31(土) 19:07:11 ID:???.net
>>810
あるならエラー出ない気もするんだが。。。
今出してる情報だけだとあとはそのエラー出てるファイルまでの
ディレクトリ(パス)が違うか、権限(実行権か読み取り権)が無いかだと思う。

812 :nobodyさん:2009/01/31(土) 19:12:38 ID:???.net
Windowsだし単純にあぱっちとぱーるのインストールドライブが違うんじゃね?
ドライブが同じでもあぱっちのほうのぱす検索部分修正してないとか
初期設定をきちんとできてない素人質問な気はする

813 :nobodyさん:2009/01/31(土) 19:32:31 ID:8MtMaIxA.net
>>811
ぐぐってもそんな感じで解決してたな。
でもパスとかちゃんと合ってるんだよな。

814 :nobodyさん:2009/01/31(土) 19:35:53 ID:???.net
>>813
ドライブ跨ってない?
>>812も言ってるがWinのドライブは越せないよ

815 :nobodyさん:2009/01/31(土) 19:39:02 ID:8MtMaIxA.net
ドライブはCドライブ一個しかないからそこは大丈夫だな。

816 :nobodyさん:2009/01/31(土) 19:47:00 ID:???.net
>>815
※mod_perl2からはPerlSetEnv PERL5LIB じゃなくて PerlSwitches -Iに変わった

これは試した?
てか何を試したか書かないと一からこっちが聞いて回答して
やった、大丈夫とかの返事になりムダが多い
情報の小出しはどこに行っても嫌われるぞ、エスパースレかどっかいけよ


817 :nobodyさん:2009/01/31(土) 19:50:58 ID:???.net
もう一度Apache2.2+mod_perl2か、バージョン確認かな。

818 :nobodyさん:2009/01/31(土) 19:58:11 ID:8MtMaIxA.net
Win32 Binary including OpenSSL 0.9.8i (MSI Installer): apache_2.2.11-win32-x86-openssl-0.9.8i.msi
OpenSSL入りだと何か違うのかな?なしで一回入れなおしてみようかな。

819 :nobodyさん:2009/01/31(土) 19:58:55 ID:???.net
無敵の再インストールという道もある

820 :nobodyさん:2009/01/31(土) 20:00:18 ID:8MtMaIxA.net
ここって、普通ひっかからないとこだよね

821 :nobodyさん:2009/01/31(土) 21:48:22 ID:???.net
普通の定義が広すぎて返答が難しい。
人それぞれだからね、「普通」なんて。

822 :nobodyさん:2009/02/01(日) 04:37:11 ID:???.net
perl-status は使えないのかい?
EnvironmentでPathチェックは出来ると思うが

823 :808:2009/02/01(日) 15:15:23 ID:XdqdLFq+.net
>>808です。
問題解決しました。
perl 5.8.8をつかってたんだけど、perl 5.8.9にしたら直りました。
mod_perlの.pmファイルにperl -cでチェックかけてたら、なんか「perl58.dll になんとかていうエントリポイントなんてないよ」
っていうエラーがでたんで、調べたら perl 5.8.9から新しく追加されたエントリポイントなんだって。

824 :nobodyさん:2009/02/01(日) 15:25:42 ID:???.net
>>823
解決おめ。

825 :_:2009/04/01(水) 14:59:15 ID:???.net
http://modperlite.org/
どうよ

826 :nobodyさん:2009/07/16(木) 22:14:00 ID:Gas3E2EY.net
mod_perlのオライリー本「Apache拡張ガイド」の上325P、
requiresメソッドは「カレントディレクトリとその親ディレクトリに存在するすべてのrequireディレクティブ…」を取り出すって書いてあるけど、間違いじゃないか?
継承はするけど追加じゃなくて上書きするから、すべてじゃないよね。


827 :nobodyさん:2009/07/25(土) 21:10:58 ID:0I94bAC0.net
FastCGIについて質問です
環境:debian+lighttpd+fcgi(C)

FCGI_printfで
Cntent-Length: xxxxとかConnection: closeとか
付けてるつもりなんですけど、
実際にクライアントと通信させると送られてきません。
(勝手にチャンク転送になったりします)

あとFCGIでプロキシみたいなものを作ろうとしていて
while(1){
r_ret = recv(socket, buf, sizeof(buf), 0);
FCGI_fwrite(buf, r_ret, 1, FCGI_stdout);
}
みたいなコードを書いてますがFCGI_fwriteで書き込んだ
データ全てが送られないのですが、
(recv終了時点ではnバイトのデータを持ってても、
 クライアントにnバイト送られなかったり)

コードで指定してるとおりに動作させたいんですが
lighttpd.conf等の設定が悪いんでしょうか?

828 :nobodyさん:2009/07/25(土) 21:19:56 ID:???.net
lighttpdかーそっちはわからんけど

例えばApacheの場合は、Content-LengthとかConnectionとか
そういうのを取り扱うのはHTTPサーバーの役割だって考えだから、
CGIがそういうヘッダを付けてもApacheの都合で勝手にkeepaliveになったりチャンク転送になったりする

Apacheだろうとlightyだろうと、そういう思想が正しいと思う。
CGIはコンテントの中身だけ出してればいい。
そんなHTTPの範囲まで口を出すな、と。

829 :nobodyさん:2009/07/25(土) 23:13:36 ID:???.net
自分も前にApache+perlでCGI作った時とか
そのときも勝手にチャンクになったりしてたのは確認してました。
CGI系共通の動作なんですかね。
(Content-Length教えたのに削除するってのは微妙ですけど)

2番目の方はBODY部が変わるって致命的な動作なんで
なんかいい解決方法があればいいのですが

830 :nobodyさん:2009/07/25(土) 23:17:20 ID:???.net
HTTP1.1的にはチャンク転送はきちんとした転送方法で、
それは「BODYが変わった」とは言わないと思う。

チャンク転送がいやならHTTP1.0でリクエストすればいいのでは?

831 :nobodyさん:2009/07/26(日) 00:40:26 ID:???.net
すいません、2番目っていうのは
>あとFCGIでプロキシみたいなものを作ろうとしていて
>while(1){
>r_ret = recv(socket, buf, sizeof(buf), 0);
>FCGI_fwrite(buf, r_ret, 1, FCGI_stdout);
>}
ってほうの話です
チャンクとか抜きにしても明らかに不完全なデータしか
送られないって動作になるんです

追加情報ですが
1回あたりのFCGI_fwriteで書き込むサイズは256kBくらいです

832 :nobodyさん:2009/07/26(日) 08:57:56 ID:???.net
自己解決しました

FastCGI応答処理にて
Content-LengthなどCGIで削除される情報を消してContent-Typeだけにしたら
BODYの情報が書き換わるということはなくなりました

833 :nobodyさん:2009/10/12(月) 09:35:39 ID:Ndxd3B+x.net
apache1.3.41 + mod_speedycgiで動かしてるんですが、
通常のCGI(perlです)でSTDERRに向かって出力するとapacheがエラーログの方に
それを出力してくれるんですが、mod_speedycgi環境下で動かすと全く出てきません。
CGIの方を「#/usr/bin/speedy」とするとちゃんと出る(ある意味当たり前)ので、
mod_speedycgiのstderrの扱いがおかしいのかと思ってソースみたけどわけわかめ。
どなたか解決方法ご存じでしたら教えてください。だいぶググったけど見つからない・・


834 :nobodyさん:2009/10/17(土) 04:35:47 ID:???.net
plackつかえよおまえら

835 :nobodyさん:2009/10/22(木) 16:22:16 ID:???.net
833です。
とりあえずmod_speedycgi2.cあたりから見よう見まねでパッチ書いたら
うまくSTDERR -> エラーログに出るようになりました。
(長期間動かしたときどうなるかなどは未検証ですけど)


836 :nobodyさん:2009/12/13(日) 20:12:02 ID:???.net

一番新しいSpeedyCGI(mod_speedycgi/Apache2.2.3)のやつインストールして
SpeedyCGIで普通のやつ(hello worldとか)は動くのだけど
http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod
のサンプルコードが500errorで動かないのだけどヤバイかな…?
誰かご教示ください

837 :nobodyさん:2009/12/13(日) 23:00:07 ID:???.net
コマンドラインで動すとか、error_logを見るとかすれば原因わかるだろうに。
sub内のdo something hereのとこは適宜にシャットダウン時やクリーンアップ時に行う
処理を書いておくところだよ。詳しくはメソッドの解説を参照。

#!/usr/bin/speedy -- -r1 -t1
$sp->add_shutdown_handler(sub { `touch shutdown` });
$sp->register_cleanup(sub { print "b" });

とかにすれば一応動きがわかるんじゃないかな
./speedy.pl
ls
の繰り返しで。

838 :nobodyさん:2009/12/13(日) 23:00:48 ID:???.net
これじゃだめか
#!/usr/bin/speedy -- -r3 -t100
かね

839 :nobodyさん:2009/12/13(日) 23:30:38 ID:???.net
>>837
[root@localhost hogehoge]# ./speedy.pl
Can't call method "add_shutdown_handler" on an undefined value at ./speedy.pl line 2.
そもそもadd_shutdown_handlerが無い的な感じなのかしら。
>>838
同じように試してみたけども、だめでした。

840 :nobodyさん:2009/12/13(日) 23:48:54 ID:???.net
>>839はuseし忘れてただけでした。
すみません。

[root@localhost hogehoge]# ./speedy.pl
syntax error at ./speedy.pl line 8, near "do something here "
syntax error at ./speedy.pl line 10, near "do something here "
Execution of ./speedy.pl aborted due to compilation errors.
speedy_backend[24310]: perl_parse error
speedy[24308]: Cannot spawn backend process

http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod
 # shutdownハンドラの登録
 $sp->add_shutdown_handler(sub { do something here });
 # クリーンアップ・ハンドラの登録
 $sp->register_cleanup(sub { do something here });
ここが原因みたいです。

841 :nobodyさん:2009/12/13(日) 23:57:28 ID:???.net
ごめんなさい、載せ忘れ。
ほんと連レスすみません。

>>837の実行結果
[root@localhost hogehoge]# ./sp.pl
b

842 :nobodyさん:2009/12/14(月) 11:36:32 ID:???.net
print "b" のとこは "cleanup" にでもしといたほうがよかったか
スクリプトが終わる際に登録した処理が行われるだけだけど。

Speedyのバックエンドが終わる際には、cleanupも終わって標準入出力閉じた後に
shutdownが行われる。そこはprintしても表示ができないのでわざと`touch shutdown` して
ファイルを生成している。いつそのファイルが作られるかを見てほしい。
たぶんタイムアウト(t)が迫った場合や再利用回数(r)が迫った場合に作成されると思う。
-r6 くらいにするとたぶん5回目の実行の際に作られるかな。

多分これを使えばSpeedyで動いてた間に蓄積したデータとか吐かせたりとか
有用な使い方できるんだろうけど、絶対動くような信用性があるかはわからんので
スクリプト内のグローバル変数で同じようなことを実現したほうが確実かも。

-r -t 自体結構信用ならないので、2chではshutdown_next_timeも活用してた気がする。

843 :nobodyさん:2009/12/15(火) 21:02:36 ID:???.net
>>842
返信遅れてすみません。

rootで-r6 -t10でlsしながら実行したところタイムアウトが迫ったときに所有権がrootのshutdownファイルが
スクリプトと同じディレクトリに生成されるみたいです。


844 :nobodyさん:2010/03/25(木) 04:47:09 ID:???.net
mod_perlとSpeedyCGIとFastCGIの違いを教えて下さい。

845 :nobodyさん:2010/03/25(木) 08:47:59 ID:???.net
どれもググれない人には使えないので一緒

846 :nobodyさん:2011/12/16(金) 19:35:41.49 ID:???.net
mod_perlで、Java Servlet2.4以前のHttpServletRequest#getRequestURL()
と同じような結果を取得する方法を探しているのですが、何かよいモジュールは
ありませんか?

847 :nobodyさん:2012/02/28(火) 19:51:56.53 ID:???.net
Windows2000
Apache 2.2.22
mod_perl/2.0.4
activeperl 5.12.4

mod_perl でエラー発生したとき、CGI::Carp qw(fatalsToBrowser) が有効にならないのですが、
ブラウザでエラーとかを把握する方法ってあるのでしょうか?

848 :nobodyさん:2012/04/14(土) 19:26:27.93 ID:d0KbMnsL.net
どうして2chだけFastCGIが不人気なんですか?

849 :nobodyさん:2012/04/17(火) 19:01:39.19 ID:???.net
簡単にWindows環境で動くやつが
ないよね?


850 :電脳プリオン 忍法帖【Lv=40,xxxPT】(1+0:8) 【15.1m】 :2014/01/21(火) 00:52:32.25 ID:???.net ?PLT(12081)
このスレは激遅

851 :nobodyさん:2014/01/21(火) 18:35:02.53 ID:yT6VQ/mu.net
CGI以外のインタフェースいちいち覚えるの面倒だから誰も使わないんだよ
中の人がmod_cgidso作ったことからもわかるでしょ?

852 :nobodyさん:2015/08/06(木) 20:11:30.67 ID:???.net
mod_perlで2ch型掲示版

853 :nobodyさん:2017/12/30(土) 13:54:54.78 ID:YhlYw6jg.net
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

2FT5DXTAC3

854 :nobodyさん:2024/02/18(日) 09:14:26.67 ID:p0sZuJhWZ
防衛大臣の木原稔やら大多数の議員が統━教会の集会に出席して褒め称えて會費まで払って祝電送って会長を官邸にまで招待してた
統一教会と−心同体の自民党が白々しく口先だけで関係を断つだのほざいて解散云々税金免除の対象から外す話しか出てこないあたり
分かりやすいよな、私腹を肥やしたいた゛けの世界最悪の殺人腐敗利権集団公明党も石川博崇,高木陽介、佐藤茂樹が統―教會と繋がってたし
政教分離など宗教全体の問題になることを必死に姑息に阻止して統一教會を擁護してるあたりも分かりやすいた゛ろ>創価学会員
都心まで数珠つなぎて゛クソ航空機に騒音に温室効果ガスにコロナにとまき散らさせて旅行支援もとい人殺し支援た゛のと税金で気侯変動させて
地球破壊して曰本どころか世界中で土砂崩れに洪水、暴風、熱中症、森林火災にと災害連発させて世界中の住民の生命と財産を
賄賂癒着組織に強奪させてる世界最悪のテロ組織自民公明に乗っ取られた腐敗テロ国家の暴走を止めるには民主主義の教祖
山上大先生みたいなのが大勢出てこないとどうしようもないな
〔rеf.〕 Ttps://www.Call4.jp/info.php?tуpe=items&id=I0000062
ttps://haneda-рroject.jimdofree.com/ , тΤps://flight-rouТe.com/
ttРs://n-souonhigaisosyoudan.amebaownd.com/

275 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★