1read 100read
2012年09月WebProg231: 【激速】mod_perl SpeedyCGI FastCGI【激速】 (849) TOP カテ一覧 スレ一覧 2ch元 削除依頼
ファイルメーカーでどこまでできるウェブアプリ! (461)
PHP初心者勉強会やらんかね! (477)
Python CGI (349)
ColdFusion (728)
【荒らしお断り】 BBQを組み込んでる人【システム】 (402)
OpenPNE設定について (748)

【激速】mod_perl SpeedyCGI FastCGI【激速】


1 :2006/06/05 〜 最終レス :2012/04/17
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 :
僕の肛門も高速化されそうです

3 :
mod_perlを04Webserverで使用してみたいのですが、
mod_perl.dllの仕様、使い方について解説されている
ページとか有りませんか?

4 :
そんな馬鹿なことせずに apache 使えばよろし。

5 :
SpeedyCGI使えばPerl側だけの問題で済ませるやん。

6 :
前スレに書いちゃって、誘導されてきました。前スレ995です。
↓こういう質問なんですが・・・。

mod_perlを設定中な者ですが、一つどこのサイトにも明示的には書いてない気が
して、あきらかにしたいんですが、、、
ModPerl::Registry を使って .cgiを動かしても、その.cgiファイル内からuseしたり使
っているモジュールは、別途PerlRequireで指定のスクリプト内でuseしてロードしな
ければならないのでしょうか?
現在実験している環境だと、PerlRequire経由でuseでロードしないモジュールは、
perl-statusの "Loaded Modules"には出てきません。僕の勝手な想像では、
「ModPerl::Registryが呼び出した.cgiがuseしているモジュール」は、適宜ロード
されて、perl-statusにも表示されるんじゃないかと予想していたんですが、それは
ちがうんでしょうかね?
当方の設定ミスなのか、仕様なのかがいまいちはっきり分らないので、聞いてみます。。。

7 :
どのタイミングで、どのプロセスが、モジュールを読みこんでいるのか?
どのプロセスが読み込み済みのモジュールをチェックしようとしているのか?
ってのを意識しながら動作検証するといいといいんじゃない?

8 :
mod_perl時の場合END{}はプロセスが終了した時のみに実行されますが
mod_perl時にPerl/CGIのEND{}と同様の事をしたい場合どうするのが一番良いのでしょうか。

9 :
>>8
mod_perlにそういうhookが用意されていないと無理

10 :
たいていオブジェクト指向バリバリで書くからsub DESTROYでも用意しておけばいいんじゃね?

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

12 :
mod_perlをapacheで走らせてるときに、
apacheのerror_logに任意のテキストを出力したりすることって
出来るんでしょうか?

13 :
stderrにprintしる!

14 :
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 :
おぉ、どうもですー。

16 :
Log4perl とか使えば、あんなことやこんなことできるんでは?

17 :
前スレから疑問なんだけど、なぜにSpeedyCGIではなくmod_perlなの?
両方使ったが、
1.体感スピード
  同じ
2.メモリ消費
  愕然とするほどの差
3.導入の障害
  圧倒的にSpeedyCGI有利
どちらもPerl専用アクセラレータだけどわざわざ選ぶメリットが見つけられん。

18 :
Apachモジュールをperlで書けるからでしょ。

19 :
> 2.メモリ消費
>   愕然とするほどの差
何か間違えてない?

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

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

22 :
> mod_perlをはじめて使った時は感動したが、後で愕然とした。
> しかも太る一方。
> topコマンドを叩いたら、10MB超のアパッチプロセスが10個以上並んでいた。
apache の設定がわからんからといって、mod_perl のせいにしてはいかんよね。

23 :
>>22
めちゃくちゃ言うなあ。
mod_perlをoffにしてapache再起動したら、通常のサイズに戻ったが。
逆にそちらではどれくらいのサイズなんだ?

24 :
>>23
> めちゃくちゃ言うなあ。
どこらへんが滅茶苦茶なのだろう。
> mod_perlをoffにしてapache再起動したら、通常のサイズに戻ったが。
そうでしょうね。
> 逆にそちらではどれくらいのサイズなんだ?
アプリケーションの規模によるよね。

25 :
mod_perlでApacheが太るからわざわざリバースプロキシ使ってるんではなかったのか?
mod_perlに限らずmod_php、mod_ruby等もメモリの食いっぷりがすごいが。

26 :
mod_perl 等を使う時は、フロントエンドとバックエンドに分けて使う。
フロントエンドで画像等をさばき、それ以外のものをバックエンドに送る。
バックエンド側で起動する perl のプロセスは、積んでいるメモリで決める。
そこらへん、mixi なり hatena bookmark なりの資料探して読むとわかるとおもう。

27 :
>>24
あほくさ。
> > mod_perlをoffにしてapache再起動したら、通常のサイズに戻ったが。
>
> そうでしょうね。
設定正しいって事やないか。
Apacheでmod_perlのメモリの制御はできん。
> > 逆にそちらではどれくらいのサイズなんだ?
>
> アプリケーションの規模によるよね。
使った事がないんだな。
そんな単純な食い方はしない。

28 :
(・∀・)ニヤニヤ

29 :
> Apacheでmod_perlのメモリの制御はできん。
メモリの使用量でなく、プロセスの数を調整する。
で、定期的に再起動するようなオプションあるよね。

30 :
>>26
当然そういうことだが。
言葉がうわすべりしてないか?
mod_perlでリバースプロキシ使うのは、
1.mod_perlでApacheが太り、静的サービスの反応が鈍る。
2.解決策として静的サービスには別のApacheを使う。
こういうことなんだが。
何も別マシンにリバースプロキシかけなくても静的サービスのスピード向上はできるよ。

31 :
>>30
別マシンとはひとことも言っていませんね。

32 :
>>29
> メモリの使用量でなく、プロセスの数を調整する。
> で、定期的に再起動するようなオプションあるよね。
面白いこと言うな。
プロセスの数は調整できんよ。
ある回数起動したらプロセス死ぬ設定はできるが、プロセスの数は運まかせになるよ。

33 :
>>31
いいわけかっこ悪い。

34 :
http://d.hatena.ne.jp/babie/20060201/p3

35 :
>>33
どこらへんがいいわけなのだろう。

36 :
>>34
で君はそのページをまねて、実際にどれくらい節約できた?

37 :
>>35
(・∀・)ニヤニヤ

38 :
(´;ω;`)

39 :
(´・ω・`)

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

41 :
というか、これではやはりSpeedyCGI以下。

42 :
>>41
どれでは?

43 :
mod_perl使いたきゃ、
専用の鯖がいるってことでそ。

44 :
>>34
http://d.hatena.ne.jp/babie/20060201/p3
>テスト機で試した。MaxClients 調整前はめっさ重くなる(SSHまで!)。
>MaxClients 調整後はなんとか耐えられる。
なんとか耐えられるんだってよ。

45 :
>>43


46 :
mod_perl厨
必死すぎ
ワロタ

47 :
静的なもんも、動的なもんも、とりあえず一台でさばけて、
なおかつcgiも速くなるってのはどれ?

48 :
>>47
規模を書かないと話にならないのでは?

49 :
>>48
規模によってmod_perlがSpeedyCGIを上回ることがあんの?

50 :
>>48
規模が大きいほどmod_perl不利。
セッション数を捌けない。
規模が小さくてもやはり不利。
無用にApacheが圧迫されている。

51 :
FastCGIって、mod_perlやSpeedyCGIに比べるとどんなん?

52 :
優秀。
SpeedyCGI同様にプロセス数を自由に設定できる。
Apacheと別プロセスなので、それによってApacheのMaxClientsが制限を受けない。
1.SpeedyCGIは導入は容易。
Perl内部の問題で終わらせられる。
必要ならApacheモジュールもある。
2.FastCGIはアプリ起動用スクリプトと、Apacheの設定が必要。
ただし、ほぼ言語を問わず使用できるので、言語が混在しているサイトには有利。
最近lighttpdとの組み合わせが一部で人気?
スピードはどれも意味のある差はない。

53 :
http://www.dmst.aueb.gr/dds/pubs/conf/2002-SANE-DynCont/html/dyncont.html

54 :
mod_perlは
1.メモリの管理が非常に下手。
2.導入時にmod_perl独自の制限がある。
(カレントDirがPerlとは違う。使えない文法がある)
以上の点でSpeedyCGI、FastCGIに比べ劣るが、逆に有利な点は不明。

55 :
FastCGI安定してるなぁ。
応用も利きそうなのでいい感じかも

56 :
>>53
古くね?

57 :
なんかものすごい自演だらけの予感。

58 :
>>53
ベンチはそれほど意味がないよ。
引用先も、対象ベンチ次第でで結果がころころ変わっている。
しかし、mod_perlはベンチでも負けている記事が目立つ。

59 :
>>57
同意。

60 :
mod_perl って 3 系統くらいあった気がするけど、だれか違いを説明きぼん。

61 :
このスレの住人ってなぜにmod_perlにしがみつくの?
mod_perlは一体どこがアドバンテージ?

62 :
なにをもって「mod_perlにしがみつく」ということにしたいのだろう。

63 :
>>62
(・∀・)

64 :
>>62
(・∀・)ニヤニヤ

65 :
出来損ないには愛着が沸くもの

66 :
もうmod_perl専用スレじゃないのにね。

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

68 :
> mod_perlは一体どこがアドバンテージ?
必死だが、答えられないmod_perl厨は逝ってよし。

69 :
うーん、こうやって貼り付けたくなるほど出来損ないには愛着がわくなw
http://pc8.2ch.net/test/read.cgi/php/1149089424/2

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

71 :
>> そうでなければ、Cが今だに強い理由はないと思う。
Web アプリの分野で?w

72 :
>>72
まさか。
速度が必要な分野で。
OS、DB、科学技術計算。

73 :

>>71

74 :
>>67
Win上で同じくネイティブコードを吐く、VBとCの速度差にビビった経験があるな。
.NETでは言語間の速度差はほぼ無いようだが。

75 :
本格的に大規模なサイトだと、重い処理はCで書いて、それをPerlやPHPから使うって言うのが解決策になってるんじゃないかな。
ヤフーとかもそうでしょう。

76 :
まぁ各ファイルで共通の手続きはできるだけモジュールに括り出すんだな。

77 :
大抵はI/Oがボトルネックだから関係ないべ

78 :
>>77
Cの処理速度にはまじでビビるよ。
I/Oかかえていても速い。

79 :
CPUが直接食える状態になってるからな。
ボトルネックになるディスクI/Oを減らすために少しでもI/Oの速いメモリに溜め込むけど
その結果メモリを馬鹿食いと。

80 :
>>79
mod_perlの馬鹿食いはそのせいだけじゃないよ。
mod_perlはApacheの全子プロセスに問答無用でPerlインタプリタを埋め込む。
コードのキャッシュも全子プロセスが持つ。
結果的に、同じコピーが大量に作られる。
SpeedyCGIを運用しているが、常駐インタープリタは2個で充分。
リクエストが多い時はまたされるだけ。
ちゃんと捌く。
mod_perl運用時に比べメモリ使用量は激減した。
mod_perlはアクセラレータとしては、仕様に大きな問題があると思う。

81 :
preforkはアレだが、workerならある程度再利用が有効に効かない?

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

83 :
原理的には、プロセス間通信のないmod_perlは速度的に優位なはずだが、
どこのベンチをみても有意な差がない。
というより、むしろ負け気味。
たとえ原理通りになっても、現実には無意味な程度だと思う。

84 :
とりあえず、”アクセラレータ"としては、SpeedCGIか、FastCGIでってことでオケ?

85 :
無茶な使いかたしなければmod_perlでもいんじゃね?

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

87 :
>MaxClients 調整後はなんとか耐えられる。
>MaxClients 調整後はなんとか耐えられる。
>MaxClients 調整後はなんとか耐えられる。

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

89 :
このスレ見てるとmod_perlRな流れだけど
mixiやはてながmod_perlで運用してるのは何か理由があるの?

90 :
Apacheモジュールだからというだけで食いつきがいいような希ガス。
本物を見極められない哀れなmod_perler〜♪

91 :
>>90
その本物とやらは、どんなものなんでしょう?

92 :
まだ自分専用のスレと勘違いしたままのmod_perl厨カワイソス

93 :
>>89
> このスレ見てるとmod_perlRな流れだけど
> mixiやはてながmod_perlで運用してるのは何か理由があるの?
理由が知りたいから、
「mod_perlは一体どこがアドバンテージ?」
mod_perl厨に聞きつづけてるんだが。
未だに返事はなし。

94 :
「mod_perlは一体どこがアドバンテージ?」
これに返事もできない状態で
「mixiが...」
「はてなが...」
「ホリエモンの子飼いが...」
こんな話ばっかりやられてもねえ。
わからいなら、黙っとけ。

95 :
>>88
> ベンチマークすら提示せずに否定に走られてもねぇ。
> 
> >>80
> > mod_perlの馬鹿食いはそのせいだけじゃないよ。
> > mod_perlはApacheの全子プロセスに問答無用でPerlインタプリタを埋め込む。
> > コードのキャッシュも全子プロセスが持つ。
> > 結果的に、同じコピーが大量に作られる。
> 
> これに関しては、何を言いたいのかさっぱりわかりませんね。
とてもユニークな意見やね。
どんなベンチとるんだろうか?
俺ならtopコマンド叩く程度しか思いつかんが。

96 :
>>94
同意。
しかもmixiが重いって話になると、今度は
「それはMySQLのせいらしい。」
とくる。
「mixiやはてながやってるから正しいんだろう。」
これ以上のものは見えてこない。
うんざり。

97 :
mixiがやろうと、はてながやろうと、間違ってると思えばその通りに発言できる。
それが、こういう場所の良さではないのか?

98 :
>>85
”アクセラレータ"としてのmod_perl自体が無茶かと...

99 :
実績があるからじゃないの。mixiやはてなクラスなら、フロントサーバとアプリケーションサーバを分けて運用するの、どのみち必須だろうし。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
携帯サイトのWebプログラムを語ろう Part3 (918)
PHP+MySQL掲示板作ろうぜ (796)
OpenPNE その6 (506)
OpenPNE その6 (506)
■CGIは死滅。これからは.NETできまり■ (360)
GoogleWebToolkit[GWT]について語ろう (224)
--log9.info------------------
【LMP】WEC/LMS/ALMS ルマンシリーズ総合LAP6【GT】 (225)
【F1】1987〜1993年のF1を語ろう【バブル時代】26lap (952)
フジテレビに文句を言いたい奴はここに書け!Part132 (464)
全日本ロードレース選手権 32LAP (935)
トヨタ 笑笑笑笑笑伝説の80140w笑笑笑笑笑∽ (911)
● 2輪ロードレース総合 243(MotoGP/SBK etc.) ● (649)
F1ストーブリーグ2012-2013 その18 (829)
【手が滑った】パストール・マルドナド4【師匠】 (887)
セルジオ・ペレス Part10 (969)
昔イベントで最後までファンサービスしてた土屋圭一 (292)
【ル・マン】プロトタイプカー総合スレlap40【LMP】 (867)
ミニチャンプスのミニカー 48pcs (926)
★スーパー耐久を語るスレその18★ (818)
【プロレーサー】黒沢元治2【ガンさん】 (883)
【ノービス】元2輪レーサー集まれLAP26【国際A級】 (352)
F1日本GPを楽しみに待つスレ Lap25 (228)
--log55.com------------------
窓を閉めての発声練習で感染か 岐阜の合唱団クラスター ★2
孫正義氏、保有するソフトバンク株の40%相当を融資の担保に
【清潔民族】日本の状況「世界が当惑」 感染増を回避、理由分からず ★16
【コロナ速報】イタリアで世界最多の1日の死者報告数969人、ただしうち50人は27日(日本時間)に報告されるべきだった死者とのこと
【速報】イタリア、感染者数86498人(+5959) 死者数9134人(+919) 致死率10.6%
【会見詳報】岡山県初の新型コロナウイルス感染の60代女性 15日まで長女とスペイン旅行★3
【武漢ウィルス】志村けん“切り札”人工心肺で治療継続  ★5
【サイコパス】#安倍晋三 、田村智子議員が自殺した財務局職員への再調査を依頼するも「もう時間きてるよ」と2回ヤジ! ★2