[過去ログ] 【Project peko】2ch特化型サーバ・ロケーション構築作戦 Part15 (1001レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
580
(1): root▲ ★ 04/11/24 19:49:12 ID:??? AAS
てことはなにかい。

4 x (morningcoffee + news4vip + entrance + keiba + base) = 2001年8月の2ちゃんねる

っていうことなのか。
581
(1): 動け動けウゴウゴ2ちゃんねる 04/11/24 19:49:12 ID:zANVD3pv(1)調 AAS
8月の閉鎖騒動の時は圧縮してなかったんでわ?
582: root▲ ★ 04/11/24 19:50:21 ID:??? AAS
>>581
そっすね。
圧縮前の転送量ベースなら、ほぼぴったりか。
583: 動け動けウゴウゴ2ちゃんねる 04/11/24 19:50:39 ID:gWJBlVQT(1)調 AAS
>>580
狼とVIPの書き込みの多さはただごとじゃないからのう
野球と競馬もROMが半端なく多いからのう
584: さぼてん ★ 04/11/24 19:59:30 ID:??? AAS
つまり、圧縮して30Mbpsくらいだったのかぁ。
2001年8月の2ちゃんねる
= 2 x ex7鯖
= ex7鯖 + news18鯖 + news19鯖 x 2
= morningcoffee + news4vip + entrance + keiba + base + anime + mnewsplus + newsplus x 2
(trafiicinfoは各種データがmnewsplusの2%くらいなのではずした)

(ノ∀`)アチャー
585: 動け動けウゴウゴ2ちゃんねる 04/11/24 21:53:32 ID:g/SvI2MW(1)調 AAS
すげー

あらゆる意味で・・・
586: 動け動けウゴウゴ2ちゃんねる 04/11/24 21:56:21 ID:+ZRnpHE8(1)調 AAS
もしかして、bbs.cgi内で開いたファイルで
明示的にcloseしてないのがあって
それがmod_perlで動作させようとしたときに影響してる、
なんてことはないですかね。

いや、mod_perlでexitした時の動作とか全然知らないし
メモリ不足が原因なら、全然関係ないんですが。
587: 動け動けウゴウゴ2ちゃんねる 04/11/25 05:31:21 ID:WpWvuctR(1)調 AAS
exitの代わりにreturnで戻すのはだめ?
常駐してんだから終了させんじゃなくapacheに戻してやる。
exitするとデータがクリアしたのに、他のプロセスで同じモジュールが動き続けて馬鹿になってゾンビが出る。
dieは?こいつも同じ原因を作る。
588: root▲ ★ 04/11/25 18:15:12 ID:??? AAS
mod_perlからはとりあえず一時撤退するとして、
SpeedyCGIを使ってみるというのは、どうなんだろう。
589
(1): root▲ ★ 04/11/25 18:45:57 ID:??? AAS
Perl側を変えないとすると、こうかな。
# まだ入れてない。

LoadModule speedycgi_module libexec/apache2/mod_speedycgi.so

# まずは安全のため、機を見てコメントアウトとか数字を増やすとか
<IfModule mod_speedycgi.c>
MaxRuns 0
</IfModule>

# bbs.cgiだけSpeedyCGIにしてみる
<IfModule mod_speedycgi.c>
<Files bbs.cgi>
SetHandler speedycgi-script
</Files>
</IfModule>
590: root▲ ★ 04/11/25 23:23:58 ID:??? AAS
きたく。ねむい。

>>589は、明日昼間あたりに入れてみるか。
591
(1): 留守番 ★ 04/11/25 23:29:25 ID:??? AAS
これは何がどうなってどうなると予想されるものなんですか?
現状の2ちゃんねるにおいての話しとして、
592: root▲ ★ 04/11/25 23:38:52 ID:??? AAS
>>591
これが、一番まとまっていると思います(原文の翻訳かな)
外部リンク[pod]:perldoc.jp

つまりうまくいけば、Perl CGIの実行パフォーマンスが数倍になると。
で、こいつはmod_perlよりお手軽で、
mod_perlほど元プログラムをいじらなくても導入できる見込みがあると。

かつ、suexecとも仲が悪くないらしいし、
root権限なくても動かせるというのも、魅力的すね。
593: root▲ ★ 04/11/25 23:40:32 ID:??? AAS
mod_perlにしてもそうですが、
基本路線としては、c系(PHP)を高速化した路線と大同小異です。

つまり、毎回でっかいPerlインタプリタを起動するコストを下げたいと。
594
(1): 留守番 ★ 04/11/25 23:45:11 ID:??? AAS
LA を下げるのに寄与するって考えればいいのかな?
処理が比較して短い時間で終るからどんどん捌けるという路線?
595: root▲ ★ 04/11/25 23:47:15 ID:??? AAS
てなわけで、

if 成功
bbs.cgi のすばらしい高速化が実現し、負荷耐性が上がるかもしれない
else
歓迎せざる、予期せぬ結果を招くかもしれない
endif

ということになります。

いろいろ調べていて、それなりに高速化の成功例も報告されているようなので、
まずは実験してみようかなと。
596: root▲ ★ 04/11/25 23:49:43 ID:??? AAS
>>594
そですね。短い時間というか、
1つのbbs.cgi起動・実行をより少ない資源で済むようにすると。

仕込みはしてあるので、
万一「あっちゃー」が起こった時にリブートしていただけるんでしたら、
今やってもいいかなぁ、とか思っていたりして。して。
597: 動け動けウゴウゴ2ちゃんねる 04/11/25 23:51:44 ID:6+wq7L37(1)調 AAS
  _  ∩
( ゚∀゚)彡 じっけん!じっけん!
 ⊂彡
598
(1): 留守番 ★ 04/11/25 23:51:48 ID:??? AAS
i am ready
599: root▲ ★ 04/11/25 23:52:40 ID:??? AAS
>>598
どもです。
んでは、やってみますね。
600
(1): root▲ ★ 04/11/25 23:56:52 ID:??? AAS
入れた。まずは、

<IfModule mod_speedycgi.c>
MaxRuns 0
</IfModule>

入り。
601: root▲ ★ 04/11/25 23:57:53 ID:??? AAS
#<IfModule mod_speedycgi.c>
#MaxRuns 0
#</IfModule>

をコメントアウトした。
602
(1): 留守番 ★ 04/11/25 23:57:59 ID:??? AAS
tiger503 (ex7) ですか?
603: root▲ ★ 04/11/25 23:59:22 ID:??? AAS
ちょっと様子見、、、。
604: root▲ ★ 04/11/25 23:59:35 ID:??? AAS
>>602
そうです。
605: root▲ ★ 04/11/26 00:00:00 ID:??? AAS
ひょっとすると、設定間違ってて、
bbs.cgiの1行目を直さないといけない、、のかも。
606
(4): root▲ ★ 04/11/26 00:02:46 ID:??? AAS
bbs.cgiの1行目を、

#!/usr/local/bin/speedy

に変更した。
607
(1): root▲ ★ 04/11/26 00:03:48 ID:??? AAS
>>606 はだめすね。
/usr/bin/perl に戻しました。
効いてない、、、。のかも。
608
(1): 留守番 ★ 04/11/26 00:04:22 ID:??? AAS
どんどん LAが・・・
609: root▲ ★ 04/11/26 00:04:37 ID:??? AAS
うまく効いてないかな?
500 エラーになるすね。>>606
610: root▲ ★ 04/11/26 00:05:41 ID:??? AAS
この状態でしばらく動かしてみるです。

>>608
LAは、この時間のex7だといつもこんなかんじすね。
611: root▲ ★ 04/11/26 00:06:19 ID:??? AAS
つまり、LA=30とか50とかでは、どってことないってころです。< この時間のex7
612: 留守番 ★ 04/11/26 00:08:02 ID:??? AAS
>>606 の直後にどんどん上昇し始めて
>>607 の直後から元にもどり始めた

ということです。
613: 動け動けウゴウゴ2ちゃんねる 04/11/26 00:09:44 ID:+llSYnHe(1/4)調 AAS
mod_perl化のための一歩
・exit()をApache::exit()でオーバーライド
614: root▲ ★ 04/11/26 00:10:08 ID:??? AAS
ですね。500エラーの原因をつかむ必要がありそう。
615: root▲ ★ 04/11/26 00:11:33 ID:??? AAS
今Apache起動しなおしました。LAが一時的に上がるです。
616: root▲ ★ 04/11/26 00:15:20 ID:??? AAS
ふむ、やはり500エラーになるですね。

(>>606>>600入りでやってみた)
617
(1): root▲ ★ 04/11/26 00:17:02 ID:??? AAS
[Thu Nov 25 07:14:22 2004] [error] [client 219.197.196.67] Premature end of script headers: bbs.cgi, referer: 2chスレ:morningcoffee

って言うなぁ。< speedyに食わせると
618: root▲ ★ 04/11/26 00:18:37 ID:??? AAS
ちょっと、簡単なスクリプトで試してみるです。
619: root▲ ★ 04/11/26 00:21:09 ID:??? AAS
外部リンク[cgi]:ex7.2ch.net

動くみたいだなぁ。
(mod_perl_testとなってますが、speedycgiで実行してます)
620
(1): 未承諾広告※ ◆TWARamEjuA 04/11/26 00:21:17 ID:76OGEP8i(1/3)調 AAS
>>617
use CGI::Carp qw(fatalsToBrowser);

を入れると、エラーの実態が表示されるので参考になるかと。
ただし、その部分のソースコードも表示されるのでゴニョゴニョ
621
(1): root▲ ★ 04/11/26 00:24:01 ID:??? AAS
>>620
うーむ、それわ、、、。
622: 未承諾広告※ ◆TWARamEjuA 04/11/26 00:26:42 ID:76OGEP8i(2/3)調 AAS
>>621
とりあえず、正しいhttpdレスポンスを吐き出していないかと思いますです(苦笑)>ぷりめちゃーなんたら
623: 動け動けウゴウゴ2ちゃんねる 04/11/26 00:29:44 ID:XVDEKJVQ(1/2)調 AAS
#!/usr/bin/speedy -r10000

use strict;

use warnings;

use sigtrap;

...
624: root▲ ★ 04/11/26 00:32:32 ID:??? AAS
<IfModule mod_speedycgi.c>
<IfModule>

で囲んじゃ、だめとわかたです。
囲まなければ、1行目を変えなくてもspeedyで起動する(で、500エラー)。
625: root▲ ★ 04/11/26 00:37:08 ID:??? AAS
MaxRuns 0
ではなくて、
SpeedyMaxRuns 0
だったとわかったです。

ちなみに上記でも500エラー。

あとは、500エラーの原因は何か、と。
626: 未承諾広告※ ◆TWARamEjuA 04/11/26 00:38:13 ID:76OGEP8i(3/3)調 AAS
んぢゃ、cp bbs.cgi ナンタラbbs.cgi で複製を作って、 use CGI::Carp qw(fatalsToBrowser); 入れちゃうとか(^-^;)

でもってそろそろ眠m(_ _)m
627: root▲ ★ 04/11/26 00:40:49 ID:??? AAS
で、さらに、
<IfModule mod_speedycgi.c>
ではなくて、
<IfModule mod_speedycgi2.c>
だとわかった。

あとは、500エラーの原因さえわかれば。
628: 動け動けウゴウゴ2ちゃんねる 04/11/26 00:43:25 ID:XVDEKJVQ(2/2)調 AAS
exit使ったらだめとか
629: 動け動けウゴウゴ2ちゃんねる 04/11/26 01:03:27 ID:QmFQtdHo(1/2)調 AAS
順番にやっていけばいいかと
前提:perlccによる実行形式を削除
1) 1行目を変えるのみ&MaxRunsを1にする(-- -r1)
2) MaxRunsを指定しない
3) mod_speedycgiを使ってみる
630: root▲ ★ 04/11/26 01:08:35 ID:??? AAS
-- -r1 があたりのもより。
631: root▲ ★ 04/11/26 01:10:42 ID:??? AAS
動いたもより。
632
(1): root▲ ★ 04/11/26 01:12:38 ID:??? AAS
今の設定

LoadModule speedycgi_module libexec/apache2/mod_speedycgi.so
<IfModule mod_speedycgi2.c>
SpeedyMaxRuns 1
</IfModule>

で、
<IfModule mod_speedycgi2.c>
<Files bbs.cgi>
SetHandler speedycgi-script
</Files>
</IfModule>

に設定。

これで、元bbs.cgiをいじることなく、bbs.cgiだけspeedycgi配下に。
633: root▲ ★ 04/11/26 01:13:01 ID:??? AAS
みるみるLAがさかってゆく、、、。< ex7
634: root▲ ★ 04/11/26 01:16:05 ID:??? AAS
うそみたいに軽くなった。

これで、しばらくようすをみてみよう。
635
(1): root▲ ★ 04/11/26 01:25:18 ID:??? AAS
でもこれだと、毎回起動はしてる、、、だよなぁ、たぶん。

どのくらい効果があるかは、しばらく観察ということで、

ごはんたべてきます。

从o^ー^从御飯喰
2chスレ:morningcoffee
636: 動け動けウゴウゴ2ちゃんねる 04/11/26 01:26:30 ID:+llSYnHe(2/4)調 AAS
たとえ-r1だとしても、バイトコンパイルのキャッシュが効くとか?
637: 動け動けウゴウゴ2ちゃんねる 04/11/26 01:29:05 ID:760svNOj(1)調 AAS
>>635
静かに楽しそうでなんかうれしいよ
638
(2): 動け動けウゴウゴ2ちゃんねる 04/11/26 01:30:58 ID:+llSYnHe(3/4)調 AAS
もしかして$ENV{'QUERY_STRING'}でパラメータを渡しているところが初期化ルーチンの最初だけとかじゃ無い?

環境変数を渡すタイミングが初期化時だけだとハマりどころかも。
639
(2): 動け動けウゴウゴ2ちゃんねる 04/11/26 01:34:09 ID:+llSYnHe(4/4)調 AAS
あとexit前に
%Hoge = ();
みたいな感じで消去しとかないと-r1じゃないと動かないスクリプトになるという肝。
640
(1): root▲ ★ 04/11/26 01:57:00 ID:??? AAS
>>638-639
たぶん、備後の予感。
しかしわたしわ、Perlかけないし。
641: 名無し募集中。。。 04/11/26 02:05:26 ID:QmFQtdHo(2/2)調 AAS
よかったよかった
642: 从o^ー.^从御飯喰 04/11/26 02:07:05 ID:ww4C5adr(1)調 AAS
>>640
ガンガレー。
643: root▲ ★ 04/11/26 02:38:22 ID:??? AAS
speedy_backendのゴミプロセスが残っていたようなので、それらをkillして、

SpeedyTimeout 60

を追加して、httpdを立ち上げなおした。
644: root▲ ★ 04/11/26 12:43:04 ID:??? AAS
emの問題の続き

stable(RELENG_5)には、対応するするbugfix入りました。
Tue Nov 23 22:28:40 2004 UTC (2 days, 5 hours ago) by rwatson
外部リンク[c]:www.freebsd.org

今度の RELENG_5_3 candidate は反映されるのかな。
645: root▲ ★ 04/11/26 12:43:33 ID:??? AAS
お、するするって。
ま、いっか。
646: root▲ ★ 04/11/26 16:11:18 ID:??? AAS
>>632 の設定する場合、
いうまでもなく、SuExecをやめないとだめでした。

つまり、

User ch2live16
Group ch2

とかにしないとだめ。

# いきなり(たぶん)ファイルロックかからなくって、ぐわわと重くなり、リブート、、、。
647: root▲ ★ 04/11/26 16:12:12 ID:??? AAS
で、1行目を変える方法(#!/usr/bin/perl → #!/usr/local/bin/speedy -- -r1 -t60)なら、
SuExec配下になるので、従来どおりで問題ないと。
648: root▲ ★ 04/11/26 16:17:34 ID:??? AAS
あ、もちろんその場合は、

#SuexecUserGroup ch2live16 ch2

は、上記のようにコメントアウトで。
649: root▲ ★ 04/11/26 16:43:40 ID:??? AAS
ex7見ると、、、。

56485 ch2ex7 131 0 4320K 3680K RUN 0 69:32 68.70% 68.70% speedy_back
96829 ch2ex7 131 0 4316K 3680K RUN 2 184:26 67.48% 67.48% speedy_back
59449 ch2ex7 131 0 4320K 3684K RUN 0 64:19 66.99% 66.99% speedy_back

なんか、ぼそってるすね。例のbbs.cgiぼそり現象がそのままきてるのか。
うーん。

そっか、RLimitCPUとか、moduleにすると効かなくなるのね。

Apache側でlimitかけてやらんと、だめなわけね。
設定しよう。

しかし、実際に動かしてみないと、わからんことばかり。
650
(1): root▲ ★ 04/11/26 17:00:10 ID:??? AAS
apache2limits_enable="YES"
apache2limits_args="-e -t 60"

を/etc/rc.confに入れて、Apache再起動でいいのかな。
とりあえず、ex7にて。
651: root▲ ★ 04/11/26 17:50:27 ID:??? AAS
>>650 を ex7 live16 live17 に入れた。
652: root▲ ★ 04/11/26 19:31:55 ID:??? AAS
やっぱ、ぼそるすね。

16551 ch2ex7 127 0 4320K 3688K CPU2 1 9:37 96.14% 96.14% speedy_back

しかたないすね、、、。/etc/login.conf をいじろう。
653
(1): root▲ ★ 04/11/26 19:34:51 ID:??? AAS
~/.login_conf でいいのかな。
654: root▲ ★ 04/11/26 19:41:21 ID:??? AAS
>>653
だめすね。login(1) でしか参照しないのか。
655
(1): root▲ ★ 04/11/26 19:49:29 ID:??? AAS
/etc/login.confに、

# for limiting www user
www:\
<TAB>:cputime=60:\
<TAB>:tc=default:

を足して、

cap_mkdb /etc/login.conf

を実行し、

apache2limits_enable="YES"
apache2limits_args="-e -C www"

を/etc/rc.confに設定して、apacheをrestartした。
656: root▲ ★ 04/11/26 20:02:30 ID:??? AAS
うーむ。>>655 でも再発。

で、/etc/master.passwd のクラスのところに www と書いてもだめ。
さて、どうすべか。
657: ◆BFzK/mtqM2 04/11/26 20:07:44 ID:oz04sd2r(1)調 AAS
rc.confとかって再起動しないと有効にならないとか?
658: 動け動けウゴウゴ2ちゃんねる 04/11/26 22:48:32 ID:er77ECMM(1)調 AAS
portsからapahce2を入れていれば
/usr/local/etc/rc.d/apache2.shを読めばわかるが、
上記スクリプトapahce2.shからrc.confを舐めることになっている。

PORTNAME= apache
PORTVERSION= 2.0.52
PORTREVISION= 3
659
(4): root▲ ★ 04/11/26 23:49:13 ID:??? AAS
リミッターが効かないことでex7の怪我が大きくなったので、
リミッターが効く方法(CGI経由での呼び出し)にスイッチ。

具体的には、ex7のbbs.cgiの1行目を、

#!/usr/bin/perl

から、

#!/usr/local/bin/speedy -- -r1 -t60

に変更。
660
(1): root▲ ★ 04/11/26 23:52:12 ID:??? AAS
live16/live17 も >>659 と同様の変更を実施。
661: root▲ ★ 04/11/27 00:08:35 ID:??? AAS
live8は、SuExecをやめる工事だけ実施。
bbs.cgiは、perlccもの。
662: root▲ ★ 04/11/27 02:03:06 ID:??? AAS
tiger503 ex7 済み
tiger504 game10 済み
tiger505 news18 済み
tiger506 game9 済み
tiger507 live16 済み
tiger508 live17 済み
tiger509 news19 済み
tiger510 hobby7 済み

というわけで、掲示板のあるtigerはすべてバージョンアップ完了しました。

あとはぼちぼち、blackgoatをやるかな。
すいてる時間にかたっぽずつやれば、たぶんサービス止めないでいけるかと。
663: root▲ ★ 04/11/27 02:25:57 ID:??? AAS
ex7 の様子を見る限りでは、>>659-660 の方法でも、それなりに効果あるのかも。
今日はちょっと夜11時前に事件があったんで、明日にはわかるのかなと。
664
(2): 動け動けウゴウゴ2ちゃんねる 04/11/27 03:25:28 ID:phbRWfIc(1/4)調 AAS
いいお湯でしたか!少しは疲れがとれましたか?
いつもお疲れ様です。
孤独な作業、そして皆が2ちゃんを気持ち良く利用できるように日々努力していただき、ありがとうございます。
がんばってください。
何も出来ないけど、応援しています。
665
(3): FOX ★ 04/11/27 03:28:45 ID:??? AAS
>>664
いえいえ
666: 動け動けウゴウゴ2ちゃんねる 04/11/27 03:30:24 ID:WB7ufKyC(1)調 AAS
>>665
>>665
667: さぼてん ★ 04/11/27 03:32:42 ID:??? AAS
ああっ、FOX ★さんがっ(; ・`д・´)
668: 動け動けウゴウゴ2ちゃんねる 04/11/27 03:33:22 ID:phbRWfIc(2/4)調 AAS
>>665
>>664は、root▲ ★さんへの励ましでした。誤解させてすみません。
669: 動け動けウゴウゴ2ちゃんねる 04/11/27 03:35:08 ID:W2DDXiu7(1)調 AAS


孤       ←  「 狐 」 じゃないぞ


670: 動け動けウゴウゴ2ちゃんねる 04/11/27 03:35:30 ID:IVgveZrz(1)調 AAS
外部リンク:server.maido3.com
ここの画像読み込めないの漏れだけ?
671: 動け動けウゴウゴ2ちゃんねる 04/11/27 03:38:02 ID:phbRWfIc(3/4)調 AAS
>>665
でも、FOX ★さんのあちらこちらでの縦横無尽のご活躍も凄いって思っています。
無理なさらないでください。
皆さんのこうした努力があって、この2ちゃんが快適に楽しめるんですね。
ありがとうございます。
672
(1): root▲ ★ 04/11/27 03:41:34 ID:??? AAS
FOXさんは、私の何倍も、何十倍も、すごい人ですから。(す)
673: 動け動けウゴウゴ2ちゃんねる 04/11/27 03:45:34 ID:phbRWfIc(4/4)調 AAS
>>672 root▲ ★さん
そうなんですか、知りませんでした。
それと、大切な専用メモを荒らしちゃったみたいですみません。
黙って見ています。ありがとうございました。
674: 暇人 ◆Ot/0qjZV1U 04/11/27 13:48:44 ID:KsuWs9ki(1)調 AAS
root▲さんの俺様メモを見ていると昔EWSの管理者だった頃の事を思い出す。。。
campas noteを何冊埋めたことか・・・
675
(1): 動け動けウゴウゴ2ちゃんねる 04/11/27 20:00:29 ID:bf71RFOw(1)調 AAS
ここをROMってlogとって、経過を読むと実地の鯖運用記録として使えます。
本にならないかなぁ。

FOX&root▲ ★の、動け動けウゴウゴServer構築運営管理ガイド。

萌え萌えUnixネットワーク管理ガイド風に、お二方をキャラ化して、David氏が黒いメガネ…
                  
676
(1): 動け動けウゴウゴ2ちゃんねる 04/11/28 00:10:57 ID:T1uf0Euu(1)調 AAS
>>675
(・∀・)イイ!
おもしろそ。実現キボンヌ
677: 動け動けウゴウゴ2ちゃんねる 04/11/28 00:14:08 ID:0AntKse3(1)調 AAS
>>676
ダメダメ
ここで実現キボンヌなんて言ってもダメだ

実装キボンヌ
678
(1): 外野ァァン 04/11/28 00:34:29 ID:vuce9di8(1)調 AAS
rootくんが2chの鯖管理で培って来た技術を本にして皆に広めてもらいたい
1年毎くらいで毎年発行とかで
679: 動け動けウゴウゴ2ちゃんねる 04/11/28 00:46:40 ID:RMWC37tv(1)調 AAS
>>678
今まで2ch本なんか買わなかったけど、この本なら多少高くても買うぜ!
3000円ぐらいでお願い。

形式は電車男みたいな感じにすれば、校正の手間とかも掛からないのでは。
680: 動け動けウゴウゴ2ちゃんねる 04/11/28 00:49:27 ID:dNaxnc2p(1/2)調 AAS
なんで買ってもないのに、電車男の形式という発言が出てくるんだ?
681: 動け動けウゴウゴ2ちゃんねる 04/11/28 00:57:45 ID:XmL7gbvC(1)調 AAS
電車男は本買わなくてもまとめサイトで読めるよ。
682
(1): 動け動けウゴウゴ2ちゃんねる 04/11/28 01:05:14 ID:/D+EzXgT(1)調 AAS
ほとんどそのまま、まとめサイトをそのまま紙面に移しただけ、
ですもんね。>電車男
683: 動け動けウゴウゴ2ちゃんねる 04/11/28 01:08:10 ID:dNaxnc2p(2/2)調 AAS
いや、それは知っていたけど、実物見ずに発言したということか。
スレ汚しすまそですた。
684: 動け動けウゴウゴ2ちゃんねる 04/11/28 02:20:57 ID:z7o1Lb+5(1)調 AAS
3,800円でも売れそうだ。
685: 動け動けウゴウゴ2ちゃんねる 04/11/28 07:20:40 ID:EeQjWdeU(1)調 AAS
こいつあやしいなっていう解説本が出るかもしれないし、
出ないかもしれないってだけのことだろ。
686
(1): ▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo 04/11/28 09:35:09 ID:x71ihadu(1)調 AAS
>>682
ネットでただで手に入るがインストールCDも売っているFreeBSDと同じなわけかw
687: 動け動けウゴウゴ2ちゃんねる 04/11/28 12:13:13 ID:qcdX3zbG(1)調 AAS
厳密には、ネットだと通信費かかるけどな〜。

今は定額制が主流になってきたので、あまり意識しなくなったけど。
688: root▲ ★ 04/11/28 14:54:04 ID:??? AAS
本すか。

流れのままに、って感じすかね。
何らかの方法で何かを残したいな、とは思ったりするです。

しかし、実際に出すとなるとなかなか大変だったり。

# ジャパンカップダート @ ex7は微風だった模様。
689: root▲ ★ 04/11/28 18:20:27 ID:??? AAS
すべてのtigerサーバに、
ex7/live16/live17と同じ呪文を入れた。

・SuExecを無効化し、直接ch2XXXXユーザでhttpdを起動 => CGI起動を少しでも軽く
・bbs.cgiをSpeedyCGI化
690: root▲ ★ 04/11/28 18:57:59 ID:??? AAS
現状のまとめ

cobra (oyster901 = live8)
・SuExecなし、httpdを掲示板オーナのUIDで直接起動
・perlcc版bbs.cgi
・httpd数896
・httpdはアイドル時も全数待機

tiger (tiger503 - tiger510 = ex7 game10 news18 game9 live16 live17 news19 hobby7)
・SuExecなし、httpdを掲示板オーナのUIDで直接起動
・SpeedyCGI版bbs.cgi
・SpeedyCGIは#!/usr/local/bin/speedy -- -r1 -t60 で起動
・httpd数784
・httpdはアイドル時も全数待機
691
(1): FOX ★ 04/11/28 22:37:01 ID:??? AAS
質問です

1) SpeedyCGIはPerlを高速化するものですか?
2) bbs.cgi or bbs.cgi がrequire しているファイルが更新されたとき
  何かしなければいけませんか?
692
(1): 動け動けウゴウゴ2ちゃんねる 04/11/28 22:51:37 ID:6IOqzKJj(1)調 AAS
1)Perlのプロセス起動をへらすので結果的に
2)再読み込みが必要なのでapachectl graceful
693: root▲ ★ 04/11/29 00:27:26 ID:??? AAS
>>691
ちと長くなるので、別々に答えます。
まず結論から。

1) Yes

動作原理は後述します。

2) 現在の2chの運用形態なら、bbs.cgiの配布・保守形態は現在のままでよい

2-1)親bbs.cgiがrequireしているファイル、
例えばbbs.cgi主処理部(頻繁に変更される方)が
更新された場合は、特に何もする必要はありません。

なぜかというと、現在の2ちゃんねるでのSpeedyCGIの運用形態が
「バックエンドエンジン毎回起動モード(-r1)」だからです。
理由は後述します。

2-2)親bbs.cgiそのものが更新された場合は、>>659にあるように、
bbs.cgiの1行目を#!/usr/bin/perlから
#!/usr/local/bin/speedy -- -r1 -t60に変更する必要があります。

ただし、急いで変更しなくてもSpeedyCGIのパフォーマンスにならないだけで、
従来のPerlのパフォーマンスで動き続けるため、運用にすぐに支障が出るわけではありません。

現状、親bbs.cgiにはめったに更新がかからないため、
親bbs.cgiに変更がかかったのを私が知ったら、その都度作業するというポリシーで、
当面はいけると考えています。

# というか、想定質問っす(w。

## 後述は、めしくってから書きます。
694: root▲ ★ 04/11/29 00:28:38 ID:??? AAS
ちなみに、bbs.cgi主処理部が更新された場合に
ちゃんとそれが即座に反映されることは、実地に確認してありますです。はい。
695: FOX ★ 04/11/29 00:50:19 ID:??? AAS
bbs.cgi がこれによってかなり美味い具合になってきたとすると、
もう一つほとんど更新されないcgiがあるわけですが、
そっちはどのような方針がいいんですかね?

1) Perl にして同様にSpeedy化する。
2) C のまま、Apache のモジュール化する。

2) の方が効果があると思ってはいますが、
実は 1) でも 2) の90% くらいの効果が望めるので 2) にするとか?

read.cgi ですが、
696: root▲ ★ 04/11/29 00:58:31 ID:??? AAS
今既にCで書いてあるもので、かつコンパクトなプログラムなので、
私は 2) がよいと考えていますです。
めざす方向は、mod_readがいいなと。

1)にして効果を上げる(SpeedyCGIの本来のパワーを発揮させる)ためには、
それなりにきちんと(Per作法l的に)プログラミングする必要があるようです。

今のbbs.cgiはいわば「SpeedyCGIを使ううまみの1割も使っていない」状況です。
それも、あわせて後述を。
697
(1): FOX ★ 04/11/29 01:00:06 ID:??? AAS
んじゃ 若さの暴走ということで
mod_read に挑戦してみますかー

と、
698: root▲ ★ 04/11/29 01:44:09 ID:??? AAS
以下はにわか勉強なので、間違い・不足な点はご指摘いただけるとたすかります ]

・SpeedyCGIの動作原理

SpeedyCGIは、フロントエンド部とバックエンドエンジンに分かれています。
フロントエンドは、ApacheモジュールまたはCGIプログラム(/usr/local/bin/speedy)として呼ばれます。

フロントエンドはバックエンドエンジンがいなければ起動し、Perlプログラムをプロセス間通信で
バックエンドエンジンに渡します。

バックエンドエンジンはPerlプログラムを*実行前に*コンパイルし、できた中間コードをメモリ上に展開し、
それを実行します。

つまり、Perlをインタプリタで実行せず、コンパイル後のバイナリを実行するようになるため、
その分実行が高速になります(効果1)。

その後、デフォルトではバックエンドエンジン側の処理が終わっても、
コンパイル後のバイナリコードは開放されることなくバックエンドプロセスのメモリ上に残り、
次に同じプログラムのリクエストをフロントエンドから受けた場合、
cgiプログラムが更新されていなければ
(ここで本体cgiの時間をチェックし、更新されていれば自動的に再読み込み&再コンパイル)、
同じバイナリコードを、そのまま再利用します。

つまりデフォルトでは、2回目以降はバックエンドエンジンの再起動なし、
再コンパイルなしでそのままバイナリコードが動きます。
ということで、動作がとても高速になります(効果2)。

しかし、この場合Perl側でコードの再利用(主に変数関連)を考慮した、
行儀の良いコードを書く必要があるため、
場合によっては、Perlプログラム側を行儀の良い形に書き直す必要が出てきます。

で、bbs.cgiは残念ながらこれに該当したため、デフォルトの状態では動かなかった。

(続く)
699: root▲ ★ 04/11/29 01:47:30 ID:??? AAS
(続き)

これを避けるために、SpeedyCGIのオプションとして、
バックエンドエンジンの再起動インターバルを指定することができるようになっています。
これが、#!/usr/local/bin/speedy -- -r1 -t60 の -r1 のところです。

ここで1を指定してあるため、1回ごと(つまりフロントエンドが起動されるたびに、毎回)、
バックエンドエンジンを起動しなおすことになります。
つまり、上記の(効果2)を捨てることになるわけです。
700: root▲ ★ 04/11/29 01:50:02 ID:??? AAS
といったところが、SpeedyCGIの私の理解です。

で、量産型bananaにもSpeedyCGIを入れていただけると、
全部のマシンのbbs.cgiを
#!/usr/local/bin/speedy -- -r1 -t60

にできるので、bbs.cgiの管理が楽になったりするです。

>>697
おおっっ。
701
(1): FOX ★ 04/11/29 01:51:38 ID:??? AAS
もったいなかと、
702: root▲ ★ 04/11/29 01:52:50 ID:??? AAS
なお、デフォルトのモードの場合、requireしているほうの子供Perlプログラムが更新された場合には、
自動的には更新を検知できないため、
その場合には >>692 にあるようにApacheをリセットするか、
親cgiをtouchする必要があります。

# 2ちゃんねるの場合「毎回起動モード」なので、たまたましなくてもいいと。
703
(1): root▲ ★ 04/11/29 01:54:19 ID:??? AAS
>>701
ですよ(ο・д・)(・д・`ο)ネー

bbs.cgiを、具体的にはどう改良すればいいんだろうか。
>>638-639 あたりが答えの一部?
704
(1): FOX ★ 04/11/29 02:03:21 ID:??? AAS
>>703

気分が盛り上がっているので
先に read.cgi に挑戦したいなと、

read.cgi再開発スレ
2chスレ:operate
705: root▲ ★ 04/11/29 02:28:10 ID:??? AAS
>>704
てなわけで、今日はなんだか記念日みたいです。
706
(1): FOX ★ 04/11/29 02:57:01 ID:??? AAS
bbs.cgi の speedy化の効果2をねらう改造の為に
サブドメインが必要な気がしまーす
read.cgi も一緒にやるか、

やっぱ明日、tiger に一個サブドメイン増やそうぜ
1-
あと 295 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.026s