X



【Project peko】2ch特化型サーバ・ロケーション構築作戦 Part15

■ このスレッドは過去ログ倉庫に格納されています
1▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo
垢版 |
04/08/21 15:04ID:hJLR4nfQ
peko作戦について語るスレです。
サーバロケーションPIEに関する話題もこちらで。
現在の主要なテーマはpeko/cobraおよびtigerサーバが
特定条件下における突然死の原因究明です。
9月にrootさんが現地へ渡米して作業するそうです。

<関連サイト>
レンタルサーバー maido3.com 2ちゃんねるの転送量: http://server.maido3.com/pie/
MRTGによる統計情報: http://mumumu.mu/mrtg/
2ちゃんねる/PINKちゃんねる 稼動中のサーバ一覧: http://mumumu.mu/serverlist.html

<運営板PINKちゃんねる関係>
【Project ama】PINKちゃんねる特化型サーバ構築作戦 Part2
http://qb5.2ch.net/test/read.cgi/operate/1082721809/l50
【PINKちゃんねる】新サーバ獲得会議☆3
http://qb5.2ch.net/test/read.cgi/operate/1080295660/l50

<携帯電話特化型サーバ構築作戦関係>
【Love Affair】携帯からのアクセスに対する考察・次の一手 Part2
http://qb5.2ch.net/test/read.cgi/operate/1088657713/l50

<前スレ>
【Project peko】2ch特化型サーバ・ロケーション構築作戦 Part14
http://qb5.2ch.net/test/read.cgi/operate/1087666806/l50
595root▲ ★
垢版 |
04/11/25 23:47:15ID:???
てなわけで、

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

ということになります。

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

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

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

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


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

#!/usr/local/bin/speedy

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

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

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

(>>606>>600入りでやってみた)
617root▲ ★
垢版 |
04/11/26 00:17:02ID:???
[Thu Nov 25 07:14:22 2004] [error] [client 219.197.196.67] Premature end of script headers: bbs.cgi, referer: http://ex7.2ch.net/test/read.cgi/morningcoffee/1101308600/l50

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

動くみたいだなぁ。
(mod_perl_testとなってますが、speedycgiで実行してます)
04/11/26 00:21:17ID:76OGEP8i
>>617
use CGI::Carp qw(fatalsToBrowser);

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

use strict;

use warnings;

use sigtrap;


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

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

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

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

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

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

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配下に。
633root▲ ★
垢版 |
04/11/26 01:13:01ID:???
みるみるLAがさかってゆく、、、。< ex7
634root▲ ★
垢版 |
04/11/26 01:16:05ID:???
うそみたいに軽くなった。

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

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

ごはんたべてきます。

从o^ー^从御飯喰
http://ex7.2ch.net/test/read.cgi/morningcoffee/1101210350/
04/11/26 01:26:30ID:+llSYnHe
たとえ-r1だとしても、バイトコンパイルのキャッシュが効くとか?
04/11/26 01:29:05ID:760svNOj
>>635
静かに楽しそうでなんかうれしいよ
04/11/26 01:30:58ID:+llSYnHe
もしかして$ENV{'QUERY_STRING'}でパラメータを渡しているところが初期化ルーチンの最初だけとかじゃ無い?

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

SpeedyTimeout 60

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

stable(RELENG_5)には、対応するするbugfix入りました。
Tue Nov 23 22:28:40 2004 UTC (2 days, 5 hours ago) by rwatson
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/em/if_em.c?rev=1.44.2.4&content-type=text/x-cvsweb-markup

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

つまり、

User ch2live16
Group ch2

とかにしないとだめ。

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

#SuexecUserGroup ch2live16 ch2

は、上記のようにコメントアウトで。
649root▲ ★
垢版 |
04/11/26 16:43:40ID:???
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かけてやらんと、だめなわけね。
設定しよう。

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

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

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

しかたないすね、、、。/etc/login.conf をいじろう。
653root▲ ★
垢版 |
04/11/26 19:34:51ID:???
~/.login_conf でいいのかな。
654root▲ ★
垢版 |
04/11/26 19:41:21ID:???
>>653
だめすね。login(1) でしか参照しないのか。
655root▲ ★
垢版 |
04/11/26 19:49:29ID:???
/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した。
656root▲ ★
垢版 |
04/11/26 20:02:30ID:???
うーむ。>>655 でも再発。

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

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

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

#!/usr/bin/perl

から、

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

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

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

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


孤       ←  「 狐 」 じゃないぞ

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

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

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


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

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

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

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

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

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

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

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はアイドル時も全数待機
691FOX ★
垢版 |
04/11/28 22:37:01ID:???
質問です

1) SpeedyCGIはPerlを高速化するものですか?
2) bbs.cgi or bbs.cgi がrequire しているファイルが更新されたとき
  何かしなければいけませんか?
04/11/28 22:51:37ID:6IOqzKJj
1)Perlのプロセス起動をへらすので結果的に
2)再読み込みが必要なのでapachectl graceful
693root▲ ★
垢版 |
04/11/29 00:27:26ID:???
>>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。

## 後述は、めしくってから書きます。
694root▲ ★
垢版 |
04/11/29 00:28:38ID:???
ちなみに、bbs.cgi主処理部が更新された場合に
ちゃんとそれが即座に反映されることは、実地に確認してありますです。はい。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況