X



【激速】mod_perl SpeedyCGI FastCGI【激速】
0003nobodyさん
垢版 |
2006/06/05(月) 20:31:26ID:???
mod_perlを04Webserverで使用してみたいのですが、
mod_perl.dllの仕様、使い方について解説されている
ページとか有りませんか?
0004nobodyさん
垢版 |
2006/06/05(月) 23:59:14ID:???
そんな馬鹿なことせずに apache 使えばよろし。
0005nobodyさん
垢版 |
2006/06/06(火) 21:19:24ID:???
SpeedyCGI使えばPerl側だけの問題で済ませるやん。
0006nobodyさん
垢版 |
2006/06/07(水) 16:43:05ID:2I/qpjTz
前スレに書いちゃって、誘導されてきました。前スレ995です。
↓こういう質問なんですが・・・。


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

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

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

当方の設定ミスなのか、仕様なのかがいまいちはっきり分らないので、聞いてみます。。。
0007nobodyさん
垢版 |
2006/06/08(木) 20:07:46ID:???
どのタイミングで、どのプロセスが、モジュールを読みこんでいるのか?
どのプロセスが読み込み済みのモジュールをチェックしようとしているのか?

ってのを意識しながら動作検証するといいといいんじゃない?
0008nobodyさん
垢版 |
2006/06/13(火) 00:27:19ID:???
mod_perl時の場合END{}はプロセスが終了した時のみに実行されますが
mod_perl時にPerl/CGIのEND{}と同様の事をしたい場合どうするのが一番良いのでしょうか。
0009nobodyさん
垢版 |
2006/06/13(火) 00:58:15ID:???
>>8
mod_perlにそういうhookが用意されていないと無理
0010nobodyさん
垢版 |
2006/06/13(火) 01:02:12ID:???
たいていオブジェクト指向バリバリで書くからsub DESTROYでも用意しておけばいいんじゃね?
00118
垢版 |
2006/06/13(火) 02:41:06ID:???
了解です、ありがとうございます。
取りあえず
*CORE::GLOBAL::exit = sub { hogehoge(); \&Apache::exit } if$ENV{MOD_PERL};
のようにしてexitをオーバーライドしてexitの前に割り込ませる事にしました。
どんな処理でも必ずexitされるわけではないですけど。
0012nobodyさん
垢版 |
NGNG
mod_perlをapacheで走らせてるときに、
apacheのerror_logに任意のテキストを出力したりすることって
出来るんでしょうか?
0015nobodyさん
垢版 |
NGNG
おぉ、どうもですー。
0016nobodyさん
垢版 |
2006/06/13(火) 12:49:11ID:???
Log4perl とか使えば、あんなことやこんなことできるんでは?
0017nobodyさん
垢版 |
2006/06/13(火) 20:23:39ID:???
前スレから疑問なんだけど、なぜにSpeedyCGIではなくmod_perlなの?
両方使ったが、
1.体感スピード
  同じ
2.メモリ消費
  愕然とするほどの差
3.導入の障害
  圧倒的にSpeedyCGI有利

どちらもPerl専用アクセラレータだけどわざわざ選ぶメリットが見つけられん。
0018nobodyさん
垢版 |
2006/06/13(火) 20:36:37ID:???
Apachモジュールをperlで書けるからでしょ。
0019nobodyさん
垢版 |
2006/06/13(火) 20:39:24ID:???
> 2.メモリ消費
>   愕然とするほどの差

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

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

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

apache の設定がわからんからといって、mod_perl のせいにしてはいかんよね。
0023nobodyさん
垢版 |
2006/06/13(火) 22:09:37ID:???
>>22
めちゃくちゃ言うなあ。
mod_perlをoffにしてapache再起動したら、通常のサイズに戻ったが。

逆にそちらではどれくらいのサイズなんだ?
0024nobodyさん
垢版 |
2006/06/13(火) 22:13:19ID:???
>>23
> めちゃくちゃ言うなあ。

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

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

そうでしょうね。

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

アプリケーションの規模によるよね。
002523
垢版 |
2006/06/13(火) 22:15:54ID:???
mod_perlでApacheが太るからわざわざリバースプロキシ使ってるんではなかったのか?
mod_perlに限らずmod_php、mod_ruby等もメモリの食いっぷりがすごいが。
002622, 24
垢版 |
2006/06/13(火) 22:19:13ID:???
mod_perl 等を使う時は、フロントエンドとバックエンドに分けて使う。
フロントエンドで画像等をさばき、それ以外のものをバックエンドに送る。

バックエンド側で起動する perl のプロセスは、積んでいるメモリで決める。
そこらへん、mixi なり hatena bookmark なりの資料探して読むとわかるとおもう。
002723
垢版 |
2006/06/13(火) 22:20:52ID:???
>>24
あほくさ。

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

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

> > 逆にそちらではどれくらいのサイズなんだ?
>
> アプリケーションの規模によるよね。
使った事がないんだな。
そんな単純な食い方はしない。
0029nobodyさん
垢版 |
2006/06/13(火) 22:23:13ID:???
> Apacheでmod_perlのメモリの制御はできん。

メモリの使用量でなく、プロセスの数を調整する。
で、定期的に再起動するようなオプションあるよね。
003023
垢版 |
2006/06/13(火) 22:26:21ID:???
>>26
当然そういうことだが。
言葉がうわすべりしてないか?
mod_perlでリバースプロキシ使うのは、
1.mod_perlでApacheが太り、静的サービスの反応が鈍る。
2.解決策として静的サービスには別のApacheを使う。
こういうことなんだが。

何も別マシンにリバースプロキシかけなくても静的サービスのスピード向上はできるよ。
0031nobodyさん
垢版 |
2006/06/13(火) 22:27:36ID:???
>>30
別マシンとはひとことも言っていませんね。
003223
垢版 |
2006/06/13(火) 22:28:56ID:???
>>29
> メモリの使用量でなく、プロセスの数を調整する。
> で、定期的に再起動するようなオプションあるよね。

面白いこと言うな。
プロセスの数は調整できんよ。
ある回数起動したらプロセス死ぬ設定はできるが、プロセスの数は運まかせになるよ。
0035nobodyさん
垢版 |
2006/06/13(火) 22:35:32ID:???
>>33
どこらへんがいいわけなのだろう。
0036nobodyさん
垢版 |
2006/06/13(火) 22:37:57ID:???
>>34
で君はそのページをまねて、実際にどれくらい節約できた?
0040nobodyさん
垢版 |
2006/06/13(火) 22:49:19ID:???
>>34
http://d.hatena.ne.jp/babie/20060201/p3
何やこれ。
1.Apacheが太るので子プロセスの数を制限する。
2.静的コンテンツのスピード確保にリバースプロキシを使う。
3.Apache自体をできるだけ太らせない。
当たり前のことやんか。
何も新しいものあらへん。
004140
垢版 |
2006/06/13(火) 22:50:40ID:???
というか、これではやはりSpeedyCGI以下。
0043nobodyさん
垢版 |
2006/06/13(火) 22:55:14ID:???
mod_perl使いたきゃ、
専用の鯖がいるってことでそ。
0047nobodyさん
垢版 |
2006/06/13(火) 22:58:02ID:???
静的なもんも、動的なもんも、とりあえず一台でさばけて、
なおかつcgiも速くなるってのはどれ?
0048nobodyさん
垢版 |
2006/06/13(火) 22:58:52ID:???
>>47
規模を書かないと話にならないのでは?
0049nobodyさん
垢版 |
2006/06/13(火) 23:00:58ID:???
>>48
規模によってmod_perlがSpeedyCGIを上回ることがあんの?
0050nobodyさん
垢版 |
2006/06/13(火) 23:03:30ID:???
>>48
規模が大きいほどmod_perl不利。
セッション数を捌けない。
規模が小さくてもやはり不利。
無用にApacheが圧迫されている。
0051nobodyさん
垢版 |
2006/06/13(火) 23:06:35ID:???
FastCGIって、mod_perlやSpeedyCGIに比べるとどんなん?
0052nobodyさん
垢版 |
2006/06/13(火) 23:21:03ID:???
優秀。
SpeedyCGI同様にプロセス数を自由に設定できる。
Apacheと別プロセスなので、それによってApacheのMaxClientsが制限を受けない。

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

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

スピードはどれも意味のある差はない。
005452
垢版 |
2006/06/13(火) 23:26:56ID:???
mod_perlは
1.メモリの管理が非常に下手。
2.導入時にmod_perl独自の制限がある。
(カレントDirがPerlとは違う。使えない文法がある)

以上の点でSpeedyCGI、FastCGIに比べ劣るが、逆に有利な点は不明。
0055nobodyさん
垢版 |
2006/06/13(火) 23:28:50ID:???
FastCGI安定してるなぁ。
応用も利きそうなのでいい感じかも
0057nobodyさん
垢版 |
2006/06/13(火) 23:30:47ID:???
なんかものすごい自演だらけの予感。
005852
垢版 |
2006/06/13(火) 23:31:48ID:???
>>53
ベンチはそれほど意味がないよ。
引用先も、対象ベンチ次第でで結果がころころ変わっている。
しかし、mod_perlはベンチでも負けている記事が目立つ。
0060nobodyさん
垢版 |
2006/06/13(火) 23:37:01ID:???
mod_perl って 3 系統くらいあった気がするけど、だれか違いを説明きぼん。
0061nobodyさん
垢版 |
2006/06/13(火) 23:38:41ID:???
このスレの住人ってなぜにmod_perlにしがみつくの?
mod_perlは一体どこがアドバンテージ?
0062nobodyさん
垢版 |
2006/06/13(火) 23:39:34ID:???
なにをもって「mod_perlにしがみつく」ということにしたいのだろう。
0066nobodyさん
垢版 |
2006/06/13(火) 23:44:02ID:???
もうmod_perl専用スレじゃないのにね。
0067nobodyさん
垢版 |
2006/06/14(水) 00:04:43ID:???
C/FastCGIとPerl/FastCGIってどのくらい速度が違うか実践した方います?
Cの方が早いだろうけどインタープリタ部分のコストを除いた純粋な言語の速度対決なら
C/CGI vs Perl/CGIほどの差は出ないと思うのですが実際のところどのぐらい違うでしょうか。
0068nobodyさん
垢版 |
2006/06/14(水) 00:05:10ID:???
> mod_perlは一体どこがアドバンテージ?

必死だが、答えられないmod_perl厨は逝ってよし。
0070nobodyさん
垢版 |
2006/06/14(水) 00:12:22ID:???
>>67
試してないので机上の空論ですまそ。

Cはコンパイル時に非常に長い時間をかけて最適化を行うので、一瞬でコンパイルする必要があるPerlコンパイラとはやはり根本的な差があると思う。
そうでなければ、Cが今だに強い理由はないと思う。
しかし、大きく差が詰まるのは間違いないよね。
0071nobodyさん
垢版 |
2006/06/14(水) 00:14:07ID:???
>> そうでなければ、Cが今だに強い理由はないと思う。

Web アプリの分野で?w
0072nobodyさん
垢版 |
2006/06/14(水) 00:15:49ID:???
>>72
まさか。
速度が必要な分野で。
OS、DB、科学技術計算。
0074nobodyさん
垢版 |
2006/06/14(水) 00:46:51ID:???
>>67
Win上で同じくネイティブコードを吐く、VBとCの速度差にビビった経験があるな。
.NETでは言語間の速度差はほぼ無いようだが。
0075nobodyさん
垢版 |
2006/06/14(水) 01:56:44ID:???
本格的に大規模なサイトだと、重い処理はCで書いて、それをPerlやPHPから使うって言うのが解決策になってるんじゃないかな。
ヤフーとかもそうでしょう。
0076nobodyさん
垢版 |
2006/06/14(水) 02:11:38ID:???
まぁ各ファイルで共通の手続きはできるだけモジュールに括り出すんだな。
0077nobodyさん
垢版 |
NGNG
大抵はI/Oがボトルネックだから関係ないべ
0078nobodyさん
垢版 |
2006/06/14(水) 12:24:45ID:???
>>77
Cの処理速度にはまじでビビるよ。
I/Oかかえていても速い。
0079nobodyさん
垢版 |
2006/06/14(水) 13:01:49ID:???
CPUが直接食える状態になってるからな。

ボトルネックになるディスクI/Oを減らすために少しでもI/Oの速いメモリに溜め込むけど
その結果メモリを馬鹿食いと。
0080nobodyさん
垢版 |
2006/06/14(水) 13:40:58ID:???
>>79
mod_perlの馬鹿食いはそのせいだけじゃないよ。
mod_perlはApacheの全子プロセスに問答無用でPerlインタプリタを埋め込む。
コードのキャッシュも全子プロセスが持つ。
結果的に、同じコピーが大量に作られる。

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

mod_perlはアクセラレータとしては、仕様に大きな問題があると思う。
0081nobodyさん
垢版 |
2006/06/14(水) 13:56:47ID:???
preforkはアレだが、workerならある程度再利用が有効に効かない?
0082nobodyさん
垢版 |
2006/06/14(水) 14:45:30ID:???
>>81
その通りなんだけど、workerは1.3系列はダメじゃなかったかな?
効果もある程度だしね。
FastCGI、SpeedyCGIがインタープリタの数等、リソースを自由にコントロールできるのに対して仕様自体が???ではないの。
0083nobodyさん
垢版 |
2006/06/14(水) 14:58:15ID:???
原理的には、プロセス間通信のないmod_perlは速度的に優位なはずだが、
どこのベンチをみても有意な差がない。
というより、むしろ負け気味。
たとえ原理通りになっても、現実には無意味な程度だと思う。
0084nobodyさん
垢版 |
2006/06/14(水) 18:02:41ID:???
とりあえず、”アクセラレータ"としては、SpeedCGIか、FastCGIでってことでオケ?
0085nobodyさん
垢版 |
2006/06/14(水) 19:12:48ID:???
無茶な使いかたしなければmod_perlでもいんじゃね?
0087nobodyさん
垢版 |
2006/06/14(水) 20:53:08ID:???
>MaxClients 調整後はなんとか耐えられる。
>MaxClients 調整後はなんとか耐えられる。
>MaxClients 調整後はなんとか耐えられる。
0088nobodyさん
垢版 |
2006/06/14(水) 23:00:35ID:???
ベンチマークすら提示せずに否定に走られてもねぇ。

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

これに関しては、何を言いたいのかさっぱりわかりませんね。
0089nobodyさん
垢版 |
2006/06/14(水) 23:20:34ID:???
このスレ見てるとmod_perlうんこな流れだけど
mixiやはてながmod_perlで運用してるのは何か理由があるの?
0090nobodyさん
垢版 |
2006/06/14(水) 23:37:09ID:nPkMVDT9
Apacheモジュールだからというだけで食いつきがいいような希ガス。
本物を見極められない哀れなmod_perler〜♪
0091nobodyさん
垢版 |
2006/06/14(水) 23:56:11ID:???
>>90
その本物とやらは、どんなものなんでしょう?
0092nobodyさん
垢版 |
2006/06/15(木) 00:14:17ID:???
まだ自分専用のスレと勘違いしたままのmod_perl厨カワイソス
0093nobodyさん
垢版 |
2006/06/15(木) 00:17:47ID:???
>>89
> このスレ見てるとmod_perlうんこな流れだけど
> mixiやはてながmod_perlで運用してるのは何か理由があるの?

理由が知りたいから、
「mod_perlは一体どこがアドバンテージ?」
mod_perl厨に聞きつづけてるんだが。
未だに返事はなし。
0094nobodyさん
垢版 |
2006/06/15(木) 00:22:57ID:???
「mod_perlは一体どこがアドバンテージ?」
これに返事もできない状態で
「mixiが...」
「はてなが...」
「ホリエモンの子飼いが...」

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

とてもユニークな意見やね。
どんなベンチとるんだろうか?
俺ならtopコマンド叩く程度しか思いつかんが。
0096nobodyさん
垢版 |
2006/06/15(木) 00:48:36ID:???
>>94
同意。

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

「mixiやはてながやってるから正しいんだろう。」
これ以上のものは見えてこない。
うんざり。
0097nobodyさん
垢版 |
2006/06/15(木) 02:30:04ID:???
mixiがやろうと、はてながやろうと、間違ってると思えばその通りに発言できる。
それが、こういう場所の良さではないのか?
0098nobodyさん
垢版 |
2006/06/15(木) 04:04:13ID:???
>>85
”アクセラレータ"としてのmod_perl自体が無茶かと...
0099nobodyさん
垢版 |
2006/06/15(木) 04:23:38ID:???
実績があるからじゃないの。mixiやはてなクラスなら、フロントサーバとアプリケーションサーバを分けて運用するの、どのみち必須だろうし。
0100nobodyさん
垢版 |
2006/06/15(木) 06:12:39ID:???
あまりにもレス食いつきの良さに
なんだかアンチmod_perlが必死に見えるよ
落ち着こう
レスを投稿する