X


2ch特化型サーバ・ロケーション構築作戦 Part19

■ このスレッドは過去ログ倉庫に格納されています
1root▲ ★
垢版 |
NGNG
2ch特化型サーバ・ロケーション構築作戦のスレッドです。

・2ちゃんねるのサーバロケーション、PIEに関する関連作業・調整事項
・DNS登録・変更まわりの関連作業・調整事項
・2ちゃんねるのサーバで採用しているOS、FreeBSDに関する情報・調整事項
・各種作戦・プロジェクトとの連携、プロジェクト間の連携

等を取り扱います。

現在、複数サーバによる連携により、
サーバ能力のさらなるスケールアップをめざすための「雪だるま作戦」が進行中です。
雪だるま作戦は、現在以下のスレで雑談しながら進行中です。

<主な関連スレッド>
【しらたま】雪だるま作戦に思いを馳せながら雑談するスレッド Part11
http://aa5.2ch.net/test/read.cgi/nanmin/1121875871/

<主な関連リンク>
ブレーメンメーター: http://mumumu.mu/bremen/
MRTGによる統計情報: http://mumumu.mu/mrtg/
2ちゃんねる サーバ負荷監視所: http://ch2.ath.cx/load/
2ch 鯖監視係。: http://sv2ch.baila6.jp/
2ch CGI 軽量化: http://sunos.saita.ma/2ch-cgi-lw.html
476root▲ ★
垢版 |
2005/12/01(木) 13:33:42ID:???0
>>475
条件を同じにする(余計なところで問題が起きないようにする)ため、
402 403 と同じ同条件での再インストールよろしくお願いします。
477ピロリ
垢版 |
2005/12/01(木) 13:34:25ID:HU0C966k0
はいー
478root▲ ★
垢版 |
2005/12/01(木) 14:05:02ID:???0
あ、念のため。
banana404 には他に何も入っていないため、
既に再インストール可能な状態になっているです。
479root▲ ★
垢版 |
2005/12/01(木) 14:06:21ID:???0
…一応、アクセスログ確認してくるです。< banana404
480root▲ ★
垢版 |
2005/12/01(木) 14:08:35ID:???0
385 名前:root▲ ★[sage] 投稿日:2005/12/01(木) 14:08:05 ID:???0
banana723.maido3.com から、アクセスがあるようです。
どこか、臭いかいでいる板があるのかも。

banana723.maido3.com のDNSキャッシュも、リスタートいただけますか。
他には、2ch内部からのアクセスはないようです。

…ということで。
481ピロリ
垢版 |
2005/12/01(木) 14:17:26ID:HU0C966k0
>>480
完了
482root▲ ★
垢版 |
2005/12/01(木) 14:20:24ID:???0
>>481
アクセスがなくなったことを確認しました。
これで、banana404は本当に再インストールが可能な状態になりました。

おさわがせしました。
483ピロリ
垢版 |
2005/12/01(木) 14:21:30ID:HU0C966k0
めでたし めでたし

再インストールしますー
2005/12/01(木) 15:25:57ID:U+VwmW+00
引越しして
掃除して
お風呂か
485ピロリ
垢版 |
2005/12/01(木) 16:48:29ID:ETiz99/V0
再インストール完了。
486root▲ ★
垢版 |
2005/12/01(木) 16:50:02ID:???0
>>485
はやっ。

で、http://aa5.2ch.net/test/read.cgi/nanmin/1132754646/924 ですが、
なにか、おぼえありますか。
487root▲ ★
垢版 |
2005/12/01(木) 16:54:10ID:???0
ログイン情報受け取りました。>>485

チェック後、作業入ります。
488root▲ ★
垢版 |
2005/12/02(金) 13:25:50ID:???0
ハードウェア交換後の banana403 の情報を受け取りました。
チェック後、作業入ります。
489root▲ ★
垢版 |
2005/12/02(金) 13:29:19ID:???0
それで、banana403/404のプライベート側ネットワークの通信の件ですが、
中の人(仮名)と、あとでちょっと調整してみるです。

とはいえ、今日は会議と締め切り仕事がめじろおし。
とりあえずはbanana404のほうの作業を、すすめているです。
490root▲ ★
垢版 |
NGNG
banana403, banana404のプライベート側ネットワークが
問題ないことを確認しました。おつでした。
491ピロリ
垢版 |
2005/12/02(金) 18:13:14ID:uJPj5TSg0
よかったー
2005/12/02(金) 18:37:43ID:gG/jqiKB0
誰も書いてないようなので書いてみる

Apache 2.2.0 Released http://www.apache.org/dist/httpd/Announcement2.2.html

↓コメント
493root▲ ★
垢版 |
2005/12/02(金) 19:08:31ID:???0
>>492
おー。ついに。

proxy/cache方面が大幅改良とか、なんとか。
雪だるま方面で試してみたいけど、まずは動かしてからか。
494root▲ ★
垢版 |
2005/12/02(金) 19:28:05ID:???0
などと言いながら、つい見てみる。
http://httpd.apache.org/docs/2.2/new_features_2_2.html

いろいろ、よさげ、よさげ。
495root▲ ★
垢版 |
2005/12/02(金) 19:40:25ID:???0
banana404 の基本設定が、できつつあります。
banana403 も、週末にはおおむね。

で、あとは、

トータル設計→構築→基本テスト→第2回最速1000大会開催→本移転→年末年始も安泰→ウマー

というかんじで。
2005/12/03(土) 01:38:35ID:duLVoct70
正式版出ました。


Apache 2.2.0 Released
ttp://httpd.apache.org/
497root▲ ★
垢版 |
NGNG
banana403、banana404の2台、基本部分のセットアップほぼ完了。

>>496

>>492-494
498root▲ ★
垢版 |
2005/12/03(土) 05:37:00ID:???0
いろいろ調べて、方針を決めてみた。

1) banana403 banana404 では HDD をさわる I/O は一切させない
2) banana403 banana404 では heartbeat を動かして互いに監視する
3) banana403 banana404 ではIPアドレスAを共有する(heartbeatの機能)
4) 初期状態では、Aへのリクエストにはbanana403が応答する
5) banana404はbanana403の「スタンバイノード」となる
6) banana403に異常が発生したり、メンテナンスの時は
banana404がすぐにbanana403にとってかわる
7) その時、ユーザに見える共有IPアドレスAは変わらない
そのため、サービスは継続される
8) banana403 では負荷分散(ロードバランシング)プログラムが動き、
Aへのリクエストをlive22x1/x2/x3に振り分ける
9) ロードバランシングプログラムはlive22x1/x2/x3の監視も同時に行い、
正常に応答しなくなったら、振り分けの仲間から自動的に外れ、
回復したら、自動的に仲間に戻る(バランシングプログラムの機能)

これで、

a) 外に見せる代表IPアドレスはA一つにでき、
b) Aを受けている振り分けサーバが落ちても、サービスは停止せず、
c) 振り分けサーバの後ろにいるlive22x1/x2/x3が部分的に落ちても、サービスは停止しない

ようにできます。

(続く)
499root▲ ★
垢版 |
2005/12/03(土) 05:40:48ID:???0
で、いろいろ調べてみたのですが、banana403とbanana404をワークとスタンバイではなく
「冗長化を完全に実現した上で、両方同時にワークにする」ようにするのは、
現状のheartbeatでは難しいようです。

しかし、ディスクI/Oをさせないのと、ネットワークI/Fチップがタフなことから、
この用途で使うのであれば、帯域幅が100Mbpsがめいっぱいにならない間は、
いけるような気がします。

これにより、教科書どおりのサーバクラスタ構成にできるはず。
明日以降、この方針で構築をはじめようと思います。

で、この方針だと、ネットワークをより有効に働かせるために、
banana403と404のプライベート側ネットワークのVLAN設定を、
再度微妙に変えてもらう可能性があります。

その際には、また必要事項を連絡します。

ということで、今日はこのへんで。
2005/12/03(土) 05:43:57ID:8UtGzlw20
rootたんっていつ寝てるのかしら。乙です
501root▲ ★
垢版 |
2005/12/03(土) 05:51:57ID:???0
>>499
> で、この方針だと、ネットワークをより有効に働かせるために、
> banana403と404のプライベート側ネットワークのVLAN設定を、
> 再度微妙に変えてもらう可能性があります。

再度脳内で検討した結果、
変えなくてもいけそうだとわかりました。

ということで、おやすみなさい。
502root▲ ★
垢版 |
2005/12/03(土) 13:34:23ID:???0
banana403 / banana404 の外部からの状況監視・
LAのチェック等のためにのみ使用する httpd を上げました。

以下のDNS登録をお願いします。
b = balancer で。

backend とちょっと紛らわしいですが、これでいこうかと。
なお live22b という代表名は使用しないため、つけません。

+live22b1.2ch.net:206.223.150.95
+live22b2.2ch.net:206.223.150.140
503ピロリ
垢版 |
2005/12/03(土) 13:58:15ID:NsxDslXo0
>>502
done
504root▲ ★
垢版 |
2005/12/03(土) 14:11:20ID:???0
http://live22b1.2ch.net/_service/
http://live22b2.2ch.net/_service/

見えたら、登録おながいしますです。 > ※の方ほか
2005/12/03(土) 14:12:36ID:duLVoct70
>504
両方とも見えました。
506桶屋
垢版 |
2005/12/03(土) 14:34:13ID:40/lerSm0
>>498
読んでみて、それで問題ないかと思います。

>>504
見えます。
507root▲ ★
垢版 |
NGNG
課題: バランサーに何を使うか

候補はこのぐらいか

1) pound
2) balance
3) Apacheリバースプロキシ
4) squidリバースプロキシ

よくあるのは 1) だけど、昔の 1.7 はたまに不安定になった。
今の 1.9 はどうかなと。
2005/12/03(土) 15:35:34ID:ENq7hctf0
>>507
  _  ∩
( ゚∀゚)彡 実験!実験!
 ⊂彡
2005/12/03(土) 19:12:29ID:w/Rvs+On0
http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html

これってどうなんでしょうねぇ
510root▲ ★
垢版 |
NGNG
で、>>507 は、まずは LVS を使ってみる方向で。

【きりたんぽ】雪だるま作戦に思いを馳せながら雑談するスレッド Part28
http://aa5.2ch.net/test/read.cgi/nanmin/1133468879/93-
511root▲ ★
垢版 |
NGNG
で、>>509 のはそれはそれで面白そうなんで、生かせる局面があればそこで。
512root▲ ★
垢版 |
NGNG
1) banana403 につけている代表アドレスを、

live22x1
live22x2
live22x3

の、lo0 に alias でつける

2) Apacheでは、そのアドレスもListenする

で、いけた。
513root▲ ★
垢版 |
NGNG
banana403をリブートしても、自動的に3つ組みになるようにできた。
/usr/local/etc/rc.d/zzz-ipvs.sh

#!/bin/sh

_VIP="206.223.150.96:80"
_REALS="192.168.100.2 192.168.100.3 192.168.100.4"
_REAL=""

case "$1" in

start)
echo -n 'Starting ipvs '
kldload ipvs.ko
kldload ip_vs_rr.ko
/usr/local/sbin/ipvsadm -A -t ${_VIP} -s rr
for _REAL in ${_REALS}; do
/usr/local/sbin/ipvsadm -a -t ${_VIP} -r ${_REAL} -g
done
echo 'done.'
;;
stop)
echo -n 'Stoping ipvs '
/usr/local/sbin/ipvsadm -C
kldunload ip_vs_rr.ko
kldunload ipvs.ko
echo 'done.'
;;
*)
echo "$0 start | stop"
;;
esac
514root▲ ★
垢版 |
NGNG
>>513 の設定で動かすと、サービスダウンを検出しないのね。
ipvsadm のマニュアルを読んでみるか。
515root▲ ★
垢版 |
NGNG
…どうも、三姉妹が落ちた時にうまくそれだけを切り離す、というのは、
ないかもしれないですね。

これは、将来の課題にしよう。

で、>>513 をちと改良。スケジューラを選べるようにした。
rr だとラウンドロビンになって、wlc にするとちょっと重み付けしたうえで、
一番コネクション数が少ないやつに回されるらしい(他にもあるみたい)。

#!/bin/sh

_VIP="206.223.150.96:80"
_REALS="192.168.100.2 192.168.100.3 192.168.100.4"
_REAL=""
_SCHED="wlc"

case "$1" in

start)
echo -n 'Starting ipvs '
kldload ipvs.ko
kldload ip_vs_${_SCHED}.ko
/usr/local/sbin/ipvsadm -A -t ${_VIP} -s ${_SCHED}
for _REAL in ${_REALS}; do
/usr/local/sbin/ipvsadm -a -t ${_VIP} -r ${_REAL} -g
done
#/usr/local/sbin/ipvsadm --set 5 5 5
echo 'done.'
;;
stop)
echo -n 'Stoping ipvs '
/usr/local/sbin/ipvsadm -C
kldunload ip_vs_${_SCHED}.ko
kldunload ipvs.ko
echo 'done.'
;;
*)
echo "$0 start | stop"
;;
esac
2005/12/04(日) 05:43:06ID:krkW2Psx0
>515
そういえば3姉妹の名前まだ決まってないですか?
実況鯖だと命名はちょっと難しいかも
フジならすぐ決まりそうだけどw
(命名案はこっちではなく雪だるまスレの方へ)
517root▲ ★
垢版 |
2005/12/05(月) 00:05:31ID:???0
○heartbeatの設定

- ha.cf, haresources, authkeys を設定
- LVS を上げている部分をheartbeat傘下に移動

設定内容は、サーバが上がったら。
518root▲ ★
垢版 |
2005/12/05(月) 00:19:07ID:???0
というわけで、DNS変更申瑞ソいきます。

いよいよ、live22xのアドレスを本番環境にします。
見え方は今と変わりません。ということで「みえましたー」はないです(今既に見える)。

(現在)
+live22x.2ch.net:206.223.150.64

(変更後)
+live22x.2ch.net:206.223.150.96

で、LA情報をlive22xからとっておられる各位にお願いです。

live22x.2ch.net はこの設定の後は「代表受付」になります。
つまり、ここからLAとっても個々のサーバのどれにいくかわからないので、意味がないです。
ということでLAについては、live22x1, live22x2, live22x3 のものを
それぞれ個別にとっていただけると、助かります。
519ピロリ
垢版 |
2005/12/05(月) 00:20:44ID:648w5JI+0
DOT 少ない?
520ピロリ
垢版 |
2005/12/05(月) 00:21:15ID:648w5JI+0
あっ 私の目の問題か、、
どんどん見えなくなっていくのよね
521root▲ ★
垢版 |
2005/12/05(月) 00:22:34ID:???0
で、このIPアドレスは、live22b1とlive22b2のうちの「どっちか」についています。
通常はlive22b1についてますが、落ちると30秒程度でlive22b2に切り替わります。

で、live22b1が上がってもそのままで、live22b2が落ちると、
live22b1にまた変わります。

ということで、いわゆるひとつのフェイルオーバーっていうやつで。
522root▲ ★
垢版 |
2005/12/05(月) 00:23:24ID:???0
x の次に . があると、確かに見えにくいすね。>>519-520
523root▲ ★
垢版 |
2005/12/05(月) 00:33:39ID:???0
>>517 続き

- /usr/local/etc/ha.d/ha.cf

bcast fxp1
keepalive 2
warntime 10
deadtime 30
initdead 60
#udpport 694
auto_failback off
respawn hacluster /usr/local/lib/heartbeat/ipfail
node banana403.maido3.com
node banana404.maido3.com
ping 206.223.150.1

- /usr/local/etc/ha.d/haresources

banana403.maido3.com 206.223.150.96/32 zzz-ipvs

- /usr/local/etc/ha.d/authkeys

auth 1
1 sha1 "むぎゅー"
524root▲ ★
垢版 |
2005/12/05(月) 00:36:35ID:???0
>>523 は banana403, 404 共通

haresources に書いた内容により、banana403が最初は活動し、
banana404がスタンバイノードになる。

auto_failback off で、banana403が上がった時の自動戻しは発生しなくなる。

authkeys に共通鍵を書いて、互いに認証する。
525root▲ ★
垢版 |
2005/12/05(月) 00:40:32ID:???0
で、>>515 のスクリプト (zzz-ipvs.sh) を、
/usr/local/etc/rc.d から /usr/local/etc/ha.d/resources.d に mv し、
heartbeat 配下にする。
で、最後の .sh を取る。(/usr/local/etc/rc.d/resources.d/zzz-ipvs という名前で入れる)

それから、IPアドレスはheartbeatがつけたりはずしたりするようになるので、
/etc/rc.conf の以下の行をコメントアウトする。

#ifconfig_fxp0_alias0="inet 206.223.150.96 netmask 255.255.255.255"

ここまでできたらbanana403/banana404をリブートして、設定完了。
526root▲ ★
垢版 |
2005/12/05(月) 01:36:25ID:???0
残っている問題:

・read.cgi をフロントエンドで動かす。
(既にSunOSさんから案あり)

・bbs.cgi トラックバック部分を改良する。
(既にSunOSさんから例あり)

・live22x[123]のどれかが落ちても、切り離されない。
(検知して切り離すコマンドを入れるところを作る必要あり)

・削除関連の各種呪文が雪だるまに対応していない。
(これは、ぼちぼちというかんじか)
527root▲ ★
垢版 |
2005/12/05(月) 01:36:53ID:???0
案 => 提案 >>526
528root▲ ★
垢版 |
2005/12/05(月) 01:44:55ID:???0
板移転時の注意:

live22x側での設定(httpd.conf、ゆっくり同期スクリプト)もあわせて必要なので、
移転の際には、同期して作業する必要あり。
529ピロリ
垢版 |
2005/12/05(月) 09:55:14ID:MceC7mVA0
>>518
done
530root▲ ★
垢版 |
2005/12/05(月) 13:39:38ID:???0
banana403 / 404の様子が、微妙におかしくなっていた。
で、banana404 をリモートコンソールからリブートかけたところ、
ハングアップした。

で、banana404のリブート依頼を出した。
ううむ。
531root▲ ★
垢版 |
2005/12/05(月) 13:42:52ID:???0
どうも、公道での通信がしくったっぽい。
で、落ちたと思ってしまって、両方に同じIPアドレスが振られたっぽい。

ううむ。
532root▲ ★
垢版 |
2005/12/05(月) 13:46:15ID:???0
このへんは、設定で逃れられるかどうかを検討する、というかんじか。

あるいは、heartbeatやLVSそのものの安定性かもしれないけど。
NGNG
> 落ちたと思ってしまって、両方に同じIPアドレスが振られたっぽい。

なんてこった。。。
*落ちたと思ってしまって*の部分が非常に気になる。。
534root▲ ★
垢版 |
2005/12/05(月) 13:54:52ID:???0
お互いに、heartbeatのパケットを送って監視しているわけです。

で、それは「専用の通信路を使え」と書いてあるです。
例えばシリアルで直結するか、Ethernetのクロスケーブルで直結しろと。

で、今はそうなってないということですね。
NGNG
なるほど、まだケーブルは繋がってないのですね。
でも、おいちゃんは、『private LAN に全部つないだ』と言ってたような。
536root▲ ★
垢版 |
2005/12/05(月) 14:09:03ID:???0
>>535
えっと、今こうなっているのです。< banana403/404

fxp0 … 外部通信用
fxp1 … 内部通信用(live22x1/x2/x3と通信)

で、heartbeat通信用に、fxp0でもfxp1でもない占有の通信路を確保すべきと
heartbeatのドキュメントに書いてあるわけです。

で、今あいているvr0(マザボについているもの)を使おうかと思って、
雪だるまスレで相談したのですが、「それを使うことは想定してなかった」という返事で、
今はかわりにfxp1を使って、heartbeatの通信もしていると。
NGNG
>>536
あー、そういう事ですか。
理解しました。
538root▲ ★
垢版 |
2005/12/05(月) 16:00:05ID:???0
Ethernetのブロードキャストでのやりとりをやめて、
普通のUDPパケットでheartbeat通信をやりとりするようにしてみた。

修正後のha.cf

#bcast fxp1
ucast fxp1 192.168.100.66 (banana404ではここが192.168.100.65)
keepalive 2
warntime 10
deadtime 30
initdead 60
#udpport 694
auto_failback off
respawn hacluster /usr/local/lib/heartbeat/ipfail
#respawn hacluster /usr/local/lib/heartbeat/ccm
node banana403.maido3.com
node banana404.maido3.com
ping 206.223.150.1
539root▲ ★
垢版 |
2005/12/05(月) 16:04:45ID:???0
http://www.linux-ha.org/ha_2ecf

> The bcast directive does not work on FreeBSD because of the fragmentation issue described in
> W. Richard Stevens - Unix Network Programming - Vol 1 - 3rd Edition: The Sockets Networking API

やられたのか。
フラグメント起こすといけないから、FreeBSDではbcastは使っちゃだめぽと。

これで、安定するといいなと。
540root▲ ★
垢版 |
2005/12/05(月) 16:14:04ID:???0
これで、リブートテストをしてみる。

まずはbanana403をリブート。
banana404に切り替わったのを確認。
541root▲ ★
垢版 |
2005/12/05(月) 16:15:25ID:???0
403は無事立ち上がり、スタンバイになったのを確認。
404をリブート。403に切り替わったのを確認。
542root▲ ★
垢版 |
2005/12/05(月) 16:17:41ID:???0
404は無事立ち上がり、スタンバイになったのを確認。

切り替わりも、ややスムーズになった模様。
これで、動かしてみるじゃ。
543root▲ ★
垢版 |
2005/12/05(月) 16:18:18ID:???0
あらら、j の隣に k があったのね。>>542

いずれにせよ、これで。
544root▲ ★
垢版 |
NGNG
>>526
> ・bbs.cgi トラックバック部分を改良する。

done. by bbs.cgi 2005/12/05

> ・bbs.cgi トラックバック部分を改良する。

助けを求めてみた。
read.cgi再開発スレ Part2
http://qb5.2ch.net/test/read.cgi/operate/1105909861/415

> ・live22x[123]のどれかが落ちても、切り離されない。

if 自分が振り分けをサービスしている {
三姉妹の状況を調べて、状況に応じてつなげたり切ったりする
}

というかんじのを、banana403/404でcronか何かで動かせばいいのかなと。

> ・削除関連の各種呪文が雪だるまに対応していない。

とりあえず唯一知っているやつ(スレスト)で、試してみるか。
あとは、、、できる人に期待で。
545root▲ ★
垢版 |
NGNG
>>544
二つ目は以下の間違い。

> ・read.cgi をフロントエンドで動かす。
546root▲ ★
垢版 |
2005/12/05(月) 22:32:25ID:???0
>>538 をさらに修正。
heartbeatの通信を占有チャンネルに変更。

#bcast fxp1
#ucast fxp1 192.168.100.66
ucast vr0 10.0.0.2 (banana404ではここが10.0.0.1)
keepalive 2
warntime 10
deadtime 30
initdead 60
#udpport 694
auto_failback off
respawn hacluster /usr/local/lib/heartbeat/ipfail
#respawn hacluster /usr/local/lib/heartbeat/ccm
node banana403.maido3.com
node banana404.maido3.com
ping 206.223.150.1
547root▲ ★
垢版 |
NGNG
>>545
> ・read.cgi をフロントエンドで動かす。

は、できた。
基本はOKなので、バイナリの共通化をはかる。
神に感謝で。

・キャッシュが微妙におかしい場合があるっぽい

Apache関連か。
ひどいようならキャッシュ設定を無効に。将来的にはApache 2.2化か。

・root権限がなくても作業できるようにする

しくみは作れそうな感じ。
548root▲ ★
垢版 |
NGNG
めもめも。Apache のキャッシュ問題。

【きりたんぽ】雪だるま作戦に思いを馳せながら雑談するスレッド Part28
http://aa5.2ch.net/test/read.cgi/nanmin/1133468879/540
2005/12/08(木) 11:59:56ID:wTfWzixj0
vrかー
http://www.seichan.org/Other/nic.html

550root▲ ★
垢版 |
2005/12/08(木) 13:56:53ID:???0
>>549
vrは負荷には強くないですね。

携帯サーバでやった時も、NICがvrなやつが先に微妙になりました(メモリも少なかったが)。
トラフィックよりも、フレーム数が多い場合に微妙になるようです。

今回vrはheartbeatのやりとりにしか使っていないので、
フレームが落ちることがなければ、なんとかなるんではないかと。
(外部や他サーバとの通信は全部fxpかem)
551root▲ ★
垢版 |
2005/12/08(木) 15:32:57ID:???0
config -g なんてあるのね、しらんかった。
http://www.nendai.nagoya-u.ac.jp/~kato/FreeBSD/debug/kgdb.html
552root▲ ★
垢版 |
2005/12/09(金) 12:12:19ID:???0
メモ。
【実況】 live22x 鯖 Part2
http://qb5.2ch.net/test/read.cgi/operate/1134050051/375
553root▲ ★
垢版 |
2005/12/10(土) 19:09:06ID:???0
read.cgi再開発スレ Part2
http://qb5.2ch.net/test/read.cgi/operate/1105909861/484-485

これを受けて、worker MPMに挑戦しようと思っていたりするわけですが、
問題なのは、サーバ数のところの調整です。

今、typicalなtigerサーバでは、

<IfModule prefork.c>
StartServers 768
MinSpareServers 128
MaxSpareServers 768
ServerLimit 1024
MaxClients 1024
MaxRequestsPerChild 1000000
MaxMemFree 2000
</IfModule>

といったかんじなんですが(上記はnews19)、

これを <IfModule worker.c> のところに、どう反映させるのがいいのかなと。
2005/12/10(土) 19:28:23ID:nEGwQ7980
こんな感じ?あんまり自信ないけど


<IfModule worker.c>
StartServers 6
Serverlimit 8
ThreadLimit 128
ThreadPerChild 128

MinSpareThreads 128
MaxSpareThreads 768

MaxClients 1024
MaxRequestsPerChild 1000000
MaxMemFree 2000
</IfModule>
555root▲ ★
垢版 |
2005/12/10(土) 19:37:58ID:???0
>>554
どもです。
1プロセスに、128個のスレッドということですか。
2005/12/10(土) 20:04:50ID:ljr20zQR0
まあ、1プロセスに何スレッドにするのかは難しいですねえ
2005/12/10(土) 20:34:18ID:1jtGNzJ50
おぉ,worker MPM 行きますか.
# 2.2 なら event MPM も行ってみたいところですが.

で,可能ならプロセス数を絞って1プロセスあたりのスレッド数を多くしてみたいところですが,
bbsd もスレッド数を増やした状態だと挙動が不安定な模様だったので,ちょっと心配ですね.
どこまで行けるかは「じっけん!じっけん!」ってところですか.
で,MaxMemFree はスレッド数に応じて増やした方がいいかも知れません.

あと,AcceptMutex pthread でもちゃんと動くなら,FreeBSD でのデフォルトの
flock より効率はいいんですが...... pthread_mutexattr_setrobust_np()
がないプラットフォームだと httpd がコケた時がコワいのか......
558root▲ ★
垢版 |
2005/12/11(日) 15:33:53ID:???0
live22xの受付が落ちた時の避難口用に、
live22y.2ch.net を作ることにしました。

こちらは従来のDNSラウンドロビン方式なので、手堅いです。
ただし、フロントが1台落ちると、いまいちになります。

以下のDNSの設定変更をお願いします。

(以下の3つを新規追加)
+live22y.2ch.net:206.223.150.64
+live22y.2ch.net:206.223.150.74
+live22y.2ch.net:206.223.150.84
559root▲ ★
垢版 |
2005/12/11(日) 22:55:38ID:???0
【きりぼし】雪だるま作戦に思いを馳せながら雑談するスレッド Part29
http://aa5.2ch.net/test/read.cgi/nanmin/1133983623/750

ということで、>>558 に加えて、以下の設定変更もあわせてお願いします。

これで、live22x は live22y の別名となり、かつ設定を変えた場合は5分程度で
それが浸透するようになるはず。

(現在の設定)
+live22x.2ch.net:206.223.150.96

(上記を削除し、下記を追加)
Clive22x.2ch.net:live22y.2ch.net:300
560root▲ ★
垢版 |
NGNG
>>554 >>556-557
live22x2 で、worker MPM を試してみました。

read.cgi / bbs.cgi ともに、うまくいくみたいです。
いけるかも。
(mod_cgiのかわりにmod_cgidを使用する)

とりあえず、1プロセスに32個のスレッドにしてみたです。
561root▲ ★
垢版 |
NGNG
live22x2では、これに対して、

<IfModule prefork.c>
StartServers 1536
MinSpareServers 256
MaxSpareServers 1536
ServerLimit 2304
MaxClients 2304
MaxRequestsPerChild 1000000
MaxMemFree 2000
</IfModule>

こう設定したです。

<IfModule worker.c>
StartServers 48
Serverlimit 72
ThreadLimit 32
ThreadsPerChild 32
MinSpareThreads 256
MaxSpareThreads 1536
MaxClients 2304
MaxRequestsPerChild 1000000
MaxMemFree 64000
</IfModule>

server-status で見る限り、受付の見かけ上の人数は同じに見えます。
で、read.cgi / bbs.cgi とも、動いたっぽい。
562root▲ ★
垢版 |
NGNG
…これをlive22x[13]にも投入したいけど、
今日は、やめておこう。

楽しみは明日以降にということで。
563root▲ ★
垢版 |
NGNG
で、言うまでもないですが、
このworker MPMがちゃんと動くようになると、
一人のhttpdが多数のセッションを同時にさばけるようになるので、
メモリが空くとか、設定によってはより多くのセッションを
さばけるようになるとか、そういう話なわけです。
2005/12/12(月) 00:54:57ID:YBe5/2YX0
ThreadsPerChild 32なら、MaxRequestsPerChildを32倍したほうが良い気がする
565root▲ ★
垢版 |
NGNG
>>564
なるほど。これはプロセス単位で数えるですか。
566root▲ ★
垢版 |
NGNG
こうしてみた。

<IfModule worker.c>
StartServers 48
Serverlimit 72
ThreadLimit 32
ThreadsPerChild 32
MinSpareThreads 256
MaxSpareThreads 1536
MaxClients 2304
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
567root▲ ★
垢版 |
NGNG
普通の板でも、実験してみるかな。
明日あたり、ex11 = 狼の方々にご協力いただこうかと。
568root▲ ★
垢版 |
NGNG
>>566 を、live22 (バックエンド)に入れてみた。
read.cgi も bbs.cgi も動かないので、まずは慣らし運転ということで。
569root▲ ★
垢版 |
NGNG
>>561 >>566 をまとめると、

prefork => worker への「等価」変換

StartServers = StartServers(p) / ThreadsPerChild
MinSpareThreads = MinSpareServers(p)
MaxSpareThreads = MaxSpareServers(p)
ServerLimit = ServerLimit(p) / ThreadsPerChild
ThreadLimit = ServerLimit(p)
ThreadsPerChild = 1プロセスでいくつのスレッドを処理するか(これから試行)
MaxClients = MaxClients(p)
MaxRequestsPerChild = MaxRequestsPerChild(p) * ThreadsPerChild
MaxMemFree = MaxMemFree(p) * ThreadsPerChild
570root▲ ★
垢版 |
NGNG
>>569 修正

prefork => worker への「等価」変換

StartServers = StartServers(p) / ThreadsPerChild
MinSpareThreads = MinSpareServers(p)
MaxSpareThreads = MaxSpareServers(p)
ServerLimit = ServerLimit(p) / ThreadsPerChild
ThreadLimit = ThreadsPerChild
ThreadsPerChild = 1プロセスでいくつのスレッドを処理するか(これから試行)
MaxClients = MaxClients(p)
MaxRequestsPerChild = MaxRequestsPerChild(p) * ThreadsPerChild
MaxMemFree = MaxMemFree(p) * ThreadsPerChild
571root▲ ★
垢版 |
NGNG
>>570 さらに修正

StartServers = StartServers(p) / ThreadsPerChild
MinSpareThreads = MinSpareServers(p)
MaxSpareThreads = MaxSpareServers(p)
ServerLimit = ServerLimit(p) / ThreadsPerChild
ThreadLimit = ThreadsPerChildより多くする、当面同じで
ThreadsPerChild = 1プロセスでいくつのスレッドを処理するか(これから試行)
MaxClients = MaxClients(p)
MaxRequestsPerChild = MaxRequestsPerChild(p) * ThreadsPerChild
MaxMemFree = MaxMemFree(p) * ThreadsPerChild
572root▲ ★
垢版 |
NGNG
ex11の設定 (>>553から)

<IfModule worker.c>
StartServers 24
MinSpareThreads 128
MaxSpareThreads 768
ServerLimit 32
ThreadLimit 32
ThreadsPerChild 32
MaxClients 1024
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
573root▲ ★
垢版 |
NGNG
httpdの大きさはこのぐらいか。
これで1プロセス32セッションになるなら、相当いい感じ。

news19
16848 ch2news19 96 0 9572K 5196K select 0 0:43 0.05% 0.05% httpd

ex11
84519 ch2ex11 96 0 21712K 15304K select 1 0:17 0.00% 0.00% httpd
574root▲ ★
垢版 |
NGNG
以下のサーバのパスワード変更済み。

oyster901 902 243
cobra2244 2245 2246 2247
tiger503 504 505 506 507 508 509 510 511 512
tiger2513 2514
tiger2522 2523 2524 2525

携帯系tigerとroot権限ありbananaは、これから作業へと。
575root▲ ★
垢版 |
NGNG
済み。

tiger2507 2508 2509 2510 2511 2512
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。