[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 09:19 / Filesize : 249 KB / Number-of Response : 786
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【激速】mod_perl SpeedyCGI FastCGI【激速】



1 名前:nobodyさん [2006/06/05(月) 20:01:09 ID:+YcYjDiD]
mod_perl
perl.apache.org/

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

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

ー二三ヘ( ゚∀゚)ノ

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

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

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

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

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

450 名前:nobodyさん mailto:sage [2006/07/03(月) 22:47:49 ID:???]
はぁ?

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

452 名前:nobodyさん mailto:sage [2006/07/03(月) 22:49:51 ID:???]
それがベンチ

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

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

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



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

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

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

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

457 名前:nobodyさん mailto:sage [2006/07/03(月) 23:06:39 ID:???]
>>455
調べる事が好きだから。

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

459 名前:nobodyさん mailto:sage [2006/07/03(月) 23:11:27 ID:???]
>>457
一番スルーしてなくない?

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

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

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

463 名前:nobodyさん mailto:sage [2006/07/04(火) 02:21:17 ID:???]
↑メインP→メインPC



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

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

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

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

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

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

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

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

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

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

473 名前:nobodyさん mailto:sage [2006/07/08(土) 16:45:31 ID:???]
ここはそういうスレではないです



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

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

こう言いたかったのよ。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



484 名前:477 mailto:sage [2006/07/08(土) 21:50:32 ID:???]
×fastcgi-script .fcgi
○AddHandler fastcgi-script .fcgi

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

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

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

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

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

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

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

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

490 名前:477 mailto:sage [2006/07/09(日) 02:17:43 ID:???]
メールしました。

491 名前:nobodyさん mailto:sage [2006/07/09(日) 09:09:57 ID:??? BE:894167699-#]
もう放置しろよ

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

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





494 名前:nobodyさん mailto:sage [2006/07/11(火) 18:03:59 ID:???]
cronで何をうごかしてたん。

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

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

497 名前:nobodyさん mailto:sage [2006/07/12(水) 21:56:44 ID:???]
CGI::Session->flush;

498 名前:nobodyさん mailto:sage [2006/07/18(火) 01:51:23 ID:???]
保守

499 名前:nobodyさん mailto:sage [2006/07/19(水) 15:16:27 ID:???]
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さん mailto:sage [2006/07/19(水) 22:40:18 ID:???]
/usr/local/src/apache_x.x/src
とかなんじゃね

501 名前:nobodyさん mailto:sage [2006/07/19(水) 22:46:09 ID:???]
全くスレ違いだと思うが、

> ************* 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]
# 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]
>>501
スレ違い失礼します。。
gdbmの実体とはlibgdbm.soですよね?見当たらないんですが。。(-o-;

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




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

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

506 名前:499 [2006/07/20(木) 08:49:55 ID:YgRADElF]
>>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 mailto:sage [2006/07/20(木) 09:01:09 ID:???]
>>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]
続き
/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 mailto:sage [2006/07/20(木) 13:36:45 ID:???]
501さん、色々とありがとうございます。

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


510 名前:501 mailto:sage [2006/07/20(木) 22:00:08 ID:???]
# 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さん mailto:sage [2006/07/23(日) 03:21:11 ID:???]
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さん mailto:sage [2006/07/23(日) 05:14:39 ID:???]
>>511
SpeedyCGIはデフォだと1時間でキャッシュが捨てられるから、不安定なのはその辺じゃない?

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



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

515 名前:nobodyさん mailto:sage [2006/07/23(日) 12:00:15 ID:???]
で、511は、↑にある

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

をやっているの?


516 名前:nobodyさん mailto:sage [2006/07/23(日) 12:09:39 ID:???]
> 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 mailto:sage [2006/07/23(日) 16:22:12 ID:???]
>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さん mailto:sage [2006/07/23(日) 16:24:33 ID:???]
>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さん mailto:sage [2006/07/23(日) 16:46:30 ID:???]
> ↑どこかの板からパクったのをそのままベンチで使用

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

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


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

522 名前:nobodyさん mailto:sage [2006/07/24(月) 00:09:47 ID:???]
>>517

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

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

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



524 名前:nobodyさん mailto:sage [2006/07/27(木) 23:27:34 ID:???]
馬鹿は放置でいいんじゃね?

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

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

527 名前:nobodyさん mailto:sage [2006/08/02(水) 15:58:35 ID:???]
釣ろうと必死だね

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

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

530 名前:nobodyさん mailto:sage [2006/08/03(木) 01:29:14 ID:???]
問題だろw

531 名前:nobodyさん mailto:sage [2006/08/16(水) 04:31:26 ID:???]
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さん mailto:sage [2006/08/16(水) 15:33:50 ID:???]
Apache2のバージョンは何ですか?

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



534 名前:531 mailto:sage [2006/08/18(金) 12:39:47 ID:???]
情報が不足していてすみません。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さん mailto:sage [2006/08/18(金) 13:05:02 ID:???]
>>534

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


537 名前:gan [2006/08/19(土) 06:24:16 ID:jPBCnjia]
すれ違い課も知れませんが、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: airrack.jp/
Undefined subroutine &main:: called at /usr/lib/perl5/site_perl/5.8.3/Log/Log4perl.pm line 133.,
referer: hogehoge.jp/hoge
【エラーログに出てくるLog4perlについて】
Log4perl.pmというモジュールは、おそらくNet::Amazonがログをはくために
使っていると思われますが、詳細はよく分かりません。どちらのモジュールも最新
に上げています。
Log4perlモジュール内で変なキャッシュが残っているのでしょうか?
その場合モジュールをいじって直すしかないのでしょうか・・・。
googleで1日中検索しましたが情報がありませんでした。
かなり嵌ってしまいました。speedyCGIでNet::Amazon使ってらっしゃる方
で同様の状態になっている方いませんか?よろしければ情報いただけたら。。

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

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

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

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

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


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

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

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

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



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

545 名前:nobodyさん mailto:sage [2006/08/20(日) 01:36:28 ID:???]
ApacheAPI使いたいならね。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<249KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef