X



トップページ運用情報
1001コメント383KB
2ch特化型サーバ・ロケーション構築作戦 Part21
■ このスレッドは過去ログ倉庫に格納されています
0001root▲ ★
垢版 |
NGNG
2ch特化型サーバ・ロケーション構築作戦のスレッドです。

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

等を取り扱います。

現在、複数サーバによる連携により、
サーバ能力のさらなるスケールアップをめざすための「雪だるま作戦」が進行中です。
しかし、問題はあらゆる意味で山積の状態です。

また「2ちゃんねる証券取引所」をはじめとする「株」関連や「Be」の機能強化、
あるいは、次世代の携帯アクセス環境をめざした「べっかんこ作戦」の状況など、
気候も暖かくなり、そろそろ気になりだす季節にさしかかりつつある今日この頃、
あいかわらず2ちゃんねるは、刻一刻と確実に変化し続けています。
0002root▲ ★
垢版 |
NGNG
過去ログ一覧:
Part1 http://qb3.2ch.net/operate/kako/1052/10529/1052923573.html
Part2 http://qb3.2ch.net/operate/kako/1062/10621/1062137886.html
Part3 http://qb3.2ch.net/operate/kako/1068/10680/1068017802.html
Part4 http://qb3.2ch.net/operate/kako/1074/10741/1074124767.html
Part5 http://qb3.2ch.net/operate/kako/1076/10761/1076162131.html
Part6 http://qb3.2ch.net/operate/kako/1076/10764/1076413123.html
Part7 http://qb3.2ch.net/operate/kako/1076/10767/1076733846.html
Part8 http://qb3.2ch.net/operate/kako/1078/10789/1078972549.html
Part9 http://qb3.2ch.net/operate/kako/1080/10802/1080298357.html
Part10 http://qb3.2ch.net/operate/kako/1082/10821/1082125059.html
Part11 http://qb3.2ch.net/test/read.cgi/operate/1082990543/ (なぜか未HTML化)
Part12 http://qb5.2ch.net/operate/kako/1084/10844/1084429098.html
Part13 http://qb5.2ch.net/operate/kako/1085/10856/1085678587.html
Part14 http://qb5.2ch.net/operate/kako/1087/10876/1087666806.html
Part15 http://qb5.2ch.net/operate/kako/1093/10930/1093068260.html
Part16 http://qb5.2ch.net/operate/kako/1102/11020/1102087698.html
Part17 http://qb5.2ch.net/operate/kako/1107/11073/1107376477.html
Part18 http://qb5.2ch.net/operate/kako/1115/11151/1115133136.html
Part19 http://qb5.2ch.net/test/read.cgi/operate/1121886018/
Part20 http://qb5.2ch.net/test/read.cgi/operate/1140540754/
0004root▲ ★
垢版 |
NGNG
前スレからの課題
・削除関係の呪文の雪だるま対応 (すみませんまだ進んでいないです)
・live22 バックエンドの安定稼動 (先は長いですね)
・matd を用いた受付の安定稼動 (ほぼ解決、フロントエンドの自動切り離し要)
・mod_cache の導入によりバックエンドの負荷を下げる (squidとのマッチング要調査)
・DNS ラウンドロビンから matd への移行 (解決!)
・heartbeat を利用した受付の冗長化 (ucarpで解決!)

・電源食い杉どうしよう (未解決、一部サーバの移設をすすめる方向で)
・携帯フルブラウザからの書き込み対応 (しかけは完了、個別対応していけばOK)

重要な課題
・効率の良い金色会員維持 (進行中)
・家庭の保守 (・・・・・・)
0006root▲ ★
垢版 |
NGNG
前スレでやったこと(1)

・ucarp/matdによる受付嬢の稼動
・www2の雪だるまへの収容(レンガ表示がスムーズに)
・www/menuのスタンバイ機作成(banana201
・携帯フルブラウザからの書き込み対応(情報を送信してもらえるケース、識別マークQ)
・FreeBSD 6.0R 実践投入、6.1-RC テスト投入(ex11/狼)
・Apache 2.2 + worker MPM, PHP 5.1.2 本格投入
・虫との闘い(継続中)
0007root▲ ★
垢版 |
NGNG
今のところの虫との闘いの記録

・libthrのほうがいろんな意味でよい
・カーネル作成時にPREEMPTION を切ること
・DEVICE_POLLING は有効かもしれない(ただしPREEMPTIONなしに限る)
・dsoのところがMT-safeではないので、Apache 2.2 にパッチが必要
・libthr や カーネルにいろいろパッチ当て
0008root▲ ★
垢版 |
NGNG
・maxvnodes の値を見直してみるのはありかも。
http://qb5.2ch.net/test/read.cgi/operate/1140540754/70

・PREEMPTION と DEVICE_POLLING について
http://qb5.2ch.net/test/read.cgi/operate/1140540754/737
http://qb5.2ch.net/test/read.cgi/operate/1140540754/739

・今後の作業メモ
http://qb5.2ch.net/test/read.cgi/operate/1140540754/760
http://qb5.2ch.net/test/read.cgi/operate/1140540754/761

・denyではじく負荷やら対策やらについて
http://qb5.2ch.net/test/read.cgi/operate/1140540754/797
http://qb5.2ch.net/test/read.cgi/operate/1140540754/804
http://qb5.2ch.net/test/read.cgi/operate/1140540754/828

・6.1Rへのバージョンアップ作業について
http://qb5.2ch.net/test/read.cgi/operate/1140540754/919

・これからのいろいろ
http://qb5.2ch.net/test/read.cgi/operate/1140540754/949-952

・NFSしてみるとかなんとか
http://qb5.2ch.net/test/read.cgi/operate/1140540754/954-961
0010root▲ ★
垢版 |
NGNG
で、
http://qb5.2ch.net/test/read.cgi/operate/1140540754/993
> 1 と 2048 だと、Apache がちゃんと増えないみたい。

ですが、

pid 32740 (httpd), uid 2001: exited on signal 11
pid 32741 (httpd), uid 2001: exited on signal 11
pid 32742 (httpd), uid 2001: exited on signal 11
pid 32743 (httpd), uid 2001: exited on signal 11
pid 32745 (httpd), uid 2001: exited on signal 11
pid 32746 (httpd), uid 2001: exited on signal 11
pid 32763 (httpd), uid 2001: exited on signal 11
...

となっていた模様。
0011root▲ ★
垢版 |
NGNG
で、本日寝る前に、PREEMPTION ありのカーネルに入れ替える作業する予定。< live22
0012root▲ ★
垢版 |
NGNG
あー、間違えた。DEVICE_POLLING ありでした。>>11
0013root▲ ★
垢版 |
NGNG
あと、前スレで登場されたjig.jpの中の方に伝言を。

新スレに変わったので、技術情報の準備ができたら、
こちらに書いていただけると助かりますです。
0014動け動けウゴウゴ2ちゃんねる
垢版 |
2006/04/16(日) 01:28:04ID:8eE42Jnd0
>>10
kern.threads.max_threads_per_proc
kern.threads.max_groups_per_proc
は設定されてますか?
デフォルトは1500のはずなので、1プロセス2048スレッドなら設定が必要ですが。。
0016root▲ ★
垢版 |
NGNG
>>14
してないですね。
なるほど、、、。

>>15
たぶん >>14 じゃないかなと。
0017root▲ ★
垢版 |
NGNG
SYSCTL_INT ですか。

ということは、sysctl すればよさげですね。
0018root▲ ★
垢版 |
NGNG
%sysctl kern.threads.max_threads_per_proc=4096
%sysctl kern.threads.max_groups_per_proc=4096
(2048ではだめでした)

で、

<IfModule mpm_worker_module>
StartServers 1
ServerLimit 1
ThreadLimit 2048
ThreadsPerChild 2048
MaxClients 2048
MinSpareThreads 2048
MaxSpareThreads 2048
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>

が動きました。

しかし子プロセス1つだと、
signal 10とか踏んだ時にまるごとぼーんと死んじゃう瞬間があるのかしら。
0019root▲ ★
垢版 |
NGNG
topでみると:

52301 ch2live22 2050 4 0 339M 110M accept 1 4:31 27.25% httpd

なるほど、2050というぐらいで2048 + 2 なわけですか。
0020 株価【650】◆cZfSunOs.U
垢版 |
2006/04/16(日) 01:38:33ID:tLC8VCxI0
>>14 >>16 そういうことですか......ただ,

            rv = apr_thread_create(&threads[i], thread_attr,
                                   worker_thread, my_info, pchild);
            if (rv != APR_SUCCESS) {
                ap_log_error(APLOG_MARK, APLOG_ALERT, rv, ap_server_conf,
                    "apr_thread_create: unable to create worker thread");
                /* let the parent decide how bad this really is */
                clean_child_exit(APEXIT_CHILDSICK);
            }

ということなんで,正常に exit() せず SIGSEGV ってのも妙ではありますが......
0022 株価【650】◆cZfSunOs.U
垢版 |
2006/04/16(日) 01:43:28ID:tLC8VCxI0
>>18
>しかし子プロセス1つだと、
>signal 10とか踏んだ時にまるごとぼーんと死んじゃう瞬間があるのかしら。

まぁそれが弱点といえば弱点ですね.ただ,これまで SIGBUS になった時は
どっちにしろ一気にどん詰まりになってるようなんで実際上あまり変わらないかもですが......

>>19 main 1 + listener 1 + worker 2048 ですね.
0023動け動けウゴウゴ2ちゃんねる
垢版 |
2006/04/16(日) 01:43:57ID:8eE42Jnd0
>>14 のように書きましたが、
個人的には、1プロセスあたりのスレッド数をあまり多くするのは反対ですけどね。
多すぎず、少なすぎずがいいと思いますが。
でも、いろいろ試してみるのも良いかもしれませんね。
0024root▲ ★
垢版 |
NGNG
>>22-23
なるほど。

システムのデフォルトのリミット値を尊重して、
まずは 2 プロセス、1024 スレッドで試してみようかなと。
0025root▲ ★
垢版 |
NGNG
<IfModule mpm_worker_module>
# StartServers 32
# ServerLimit 32
# ThreadLimit 64
# ThreadsPerChild 64
StartServers 2
ServerLimit 2
ThreadLimit 1024
ThreadsPerChild 1024
# StartServers 1
# ServerLimit 1
# ThreadLimit 2048
# ThreadsPerChild 2048
MaxClients 2048
MinSpareThreads 2048
MaxSpareThreads 2048
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>

にした。@ live22
0027root▲ ★
垢版 |
NGNG
>>26
ですね。

ただ、虫踏みは prefork MPM でも発生することがわかっているので、
いずれにせよ起こるリスクはあるということで、
いろいろ実験してみる価値は、あるのかなと。
0028動け動けウゴウゴ2ちゃんねる
垢版 |
2006/04/16(日) 02:07:15ID:8eE42Jnd0
>>22

前から不思議に思ってたのが

>ただ,これまで SIGBUS になった時は
>どっちにしろ一気にどん詰まりになってるようなんで実際上あまり変わらないかもですが......

の動作で、何で一度にSIGBUSになるんだろうなぁと思っていました。
仮に thread library の問題だとして、1プロセスが落ちるならわかるんですが、
どうして一度に複数落ちちゃうのかなぁと。
まあ、load average が異常にあがったら落ちちゃうとか、
MaxClients に達したら落ちちゃうとか考えられるかもですが、
少なくとも、うちじゃあ load average が1000になろうと MaxClients いっぱいになろうと
SIGBUSで落ちるのは見たことないです。。
0029root▲ ★
垢版 |
NGNG
後ろでmake -j 4 を動かすと、CPU idle timeがなくなり、
動きがぐにゃぐにゃになりました。< スレッドが多いと
8/256 にしたら、落ち着いたみたい。

<IfModule mpm_worker_module>
# StartServers 32
# ServerLimit 32
# ThreadLimit 64
# ThreadsPerChild 64
StartServers 8
ServerLimit 8
ThreadLimit 256
ThreadsPerChild 256
# StartServers 2
# ServerLimit 2
# ThreadLimit 1024
# ThreadsPerChild 1024
# StartServers 1
# ServerLimit 1
# ThreadLimit 2048
# ThreadsPerChild 2048
MaxClients 2048
MinSpareThreads 2048
MaxSpareThreads 2048
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
0030root▲ ★
垢版 |
NGNG
ちなみにさっきおかしかった時は、top で見ると umtx という状態の httpd が
たくさんいました。たぶんですが、スレッドが多すぎなのかなと。
0031root▲ ★
垢版 |
NGNG
ということでこれは必要なさげなので、
/etc/sysctl.conf からコメントアウトした。

#kern.threads.max_threads_per_proc=4096
#kern.threads.max_groups_per_proc=4096
0032 ◆boot//5v0I
垢版 |
2006/04/16(日) 02:15:10ID:51oKQ0aA0
>>30
ちょwwwグーグル先生は休校ですか?
0033root▲ ★
垢版 |
NGNG
>>28
うーむ。そうですか。

この状態の時に signal 10 で落ちるのは、よく見かけるですね。
0034動け動けウゴウゴ2ちゃんねる
垢版 |
2006/04/16(日) 02:17:07ID:8eE42Jnd0
>>30
umtxですか。
ucondならわかるんですが。

普段がacceptで、負荷の時にucondになるなら、
それは、空きworkerスレッドがないため、
listenerスレッドがworkerスレッドが空くのを待っている状態です。
つまり、ThreadsPerChildが256なら、256いっぱいいっぱいってことです。
0035root▲ ★
垢版 |
NGNG
>>34
ucond はこんな感じでみかけますね(現在の状態、カーネルmake中)。

PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND
86396 root 132 0 12524K 11916K CPU2 2 0:02 62.53% cc1
86398 root 132 0 10240K 9668K CPU1 0 0:02 56.89% cc1
3633 ch2live22 97 0 2788K 1552K CPU3 3 12:45 3.52% bbsd
86388 root 129 0 732K 620K select 2 0:00 2.56% make
86229 root 96 0 5688K 4944K CPU0 3 0:00 1.38% top
77348 ch2live22 100 0 63504K 30708K select 3 1:25 0.88% httpd
77344 ch2live22 100 0 74416K 41728K select 0 1:25 0.49% httpd
77344 ch2live22 100 0 74416K 41728K select 0 1:25 0.34% httpd
77342 ch2live22 100 0 60492K 28796K select 0 1:25 0.34% httpd
77341 ch2live22 100 0 73844K 40696K select 3 1:25 0.29% httpd
77346 ch2live22 100 0 66564K 34484K select 3 1:26 0.24% httpd
77346 ch2live22 100 0 66564K 34484K ucond 3 1:26 0.24% httpd
77343 ch2live22 100 0 61928K 30148K ucond 0 1:26 0.24% httpd
77343 ch2live22 100 0 61928K 30148K select 0 1:26 0.24% httpd
77348 ch2live22 100 0 63504K 30708K select 0 1:25 0.24% httpd
77348 ch2live22 100 0 63504K 30708K ucond 0 1:25 0.24% httpd
77344 ch2live22 100 0 74416K 41728K ucond 1 1:25 0.24% httpd
77345 ch2live22 100 0 69808K 37128K select 0 1:25 0.24% httpd
77343 ch2live22 100 0 61928K 30148K select 1 1:26 0.20% httpd
77343 ch2live22 100 0 61928K 30148K ucond 0 1:26 0.20% httpd
77341 ch2live22 100 0 73844K 40696K select 0 1:25 0.20% httpd
77345 ch2live22 100 0 69808K 37128K select 0 1:25 0.20% httpd
77345 ch2live22 100 0 69808K 37128K ucond 0 1:25 0.20% httpd
77347 ch2live22 100 0 69160K 36336K select 0 1:24 0.20% httpd
77348 ch2live22 100 0 63504K 30708K select 0 1:25 0.15% httpd
77344 ch2live22 100 0 74416K 41728K ucond 0 1:25 0.15% httpd
0036root▲ ★
垢版 |
NGNG
>>34
> つまり、ThreadsPerChildが256なら、256いっぱいいっぱいってことです。

ということは、ucond ばかりになる時は、何らかの対策が必要と。

Apache status (server-statusで見られるやつ)を見る限り、余裕しゃくしゃくに見えますが、
それでもいっぱいになることがあるのかしら。

>>32
ん、何かまずかったかしら。
0037動け動けウゴウゴ2ちゃんねる
垢版 |
2006/04/16(日) 02:23:29ID:8eE42Jnd0
>>35
ああ、すいません。
私が言ったのは、topでスレッドを展開せずに表示した時のことです。
経験上、スレッドを展開しなかったときは、
listnerスレッドの状態が accept とか ucond とかであらわれるようなので。
0038root▲ ★
垢版 |
NGNG
>>37
なるほど、そういうことですか。
(-H状態ではない場合と)
0039動け動けウゴウゴ2ちゃんねる
垢版 |
2006/04/16(日) 02:36:34ID:8eE42Jnd0
例えば、
http://qb5.2ch.net/test/read.cgi/operate/1140540754/674
のような状態は、もう、どのプロセスもパンパンだと思うんですよ。
で、なんで、パンパンになっちゃうのかと言うと、
普通に考えれば worker の処理が完了する前にどんどん接続を受け入れちゃうからで、
つまり、workerの処理に時間がかかりすぎていると。
Apacheって、workerの処理時間ログに出せませんでしたっけ?
0040root▲ ★
垢版 |
NGNG
DEVICE_POLLING ありにした。

%ifconfig -a
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=4b<RXCSUM,TXCSUM,VLAN_MTU,POLLING>
inet6 fe80::230:48ff:fe53:ec66%em0 prefixlen 64 scopeid 0x1
inet 206.223.150.54 netmask 0xffffff00 broadcast 206.223.150.255
ether 00:30:48:53:ec:66
media: Ethernet autoselect (1000baseTX <full-duplex>)
status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=4b<RXCSUM,TXCSUM,VLAN_MTU,POLLING>
inet6 fe80::230:48ff:fe53:ec67%em1 prefixlen 64 scopeid 0x2
inet 192.168.100.1 netmask 0xffffff00 broadcast 192.168.100.255
ether 00:30:48:53:ec:67
media: Ethernet autoselect (1000baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000

心なしか、軽くなったような気も。
0041root▲ ★
垢版 |
NGNG
>>39
WBCの時ですね。

あぁ、なんかちょっとだけ限界に近づいたなぁ、っていう感じを初めて受けた時でした。
work の処理時間ですか。んー、SunOS さんが詳しそうですね(私はそこまで知らないです)。
0042root▲ ★
垢版 |
NGNG
man polling
...
SUPPORTED DEVICES
Device polling requires explicit modifications to the device drivers. As
of this writing, the dc(4), em(4), fwe(4), fwip(4), fxp(4), ixgb(4),
nge(4), re(4), rl(4), sf(4), sis(4), ste(4), vge(4), vr(4), and xl(4)
devices are supported, with others in the works.

がーん、cobra2247 (Cobra)の I/F って bge だから、この機能ないのね。
/usr/src/sys/dev/bge で grep POLLING しても、何も出てこないし。
0043root▲ ★
垢版 |
NGNG
で、この PREEMPTION なし、DEVICE_POLLING ありは、
BG3/BG4 (携帯バックエンド)にもいずれ使えそうだから、
苦しくなったら導入を考えようと。
0044動け動けウゴウゴ2ちゃんねる
垢版 |
2006/04/16(日) 02:53:41ID:8eE42Jnd0
>>42
6.1では

SUPPORTED DEVICES
Device polling requires explicit modifications to the device drivers. As
of this writing, the bge(4), dc(4), em(4), fwe(4), fwip(4), fxp(4),
ixgb(4), nge(4), re(4), rl(4), sf(4), sis(4), ste(4), vge(4), vr(4), and
xl(4) devices are supported, with others in the works

ですね。
0045root▲ ★
垢版 |
NGNG
>>44
おーっ ♥

%pushd /usr/src/sys/dev/bge
/usr/src/sys/dev/bge ~
%ls
if_bge.c if_bgereg.h
%grep POLLING *.[ch]
if_bge.c:#ifdef DEVICE_POLLING
if_bge.c:#ifdef DEVICE_POLLING
if_bge.c: ifp->if_capabilities |= IFCAP_POLLING;
if_bge.c:#ifdef DEVICE_POLLING
(以下略)
0046root▲ ★
垢版 |
NGNG
もう今日は、live22 をおびやかすような負荷は来ないかな。

HDDアクセスとネットワークアクセスが重なると、
特にHDDをヘビーに触ると、苦しくなりやすい

んだとすると、PREEMPTIONなし+DEVICE_POLLINGありの設定は、
理論上は効果を期待できそうな気がします。

で、Apacheのスレッド数の変更をし、
最初から最大値で待たせ、かつプロセス数をちょっと控えめに設定変更しました。

で、cobra サーバでも 6.1R にすれば、DEVICE_POLLING が使えることもわかりました。

まだまだ先は長そうですが、今日のところはこんなかんじで。
0047root▲ ★
垢版 |
NGNG
systat で見ると、数千回とかあった em0 と em1 の割り込みがなくなって、ちと感動。
(というか、あたりまえか)

DEVICE_POLLING のチューニング点は、

・HZ を変える(今1000 = 6.0Rのデフォルト)
・kern.polling.user_frac の調整
> When polling is enabled, and provided that there is some work to
> do, up to this percent of the CPU cycles is reserved to userland
> tasks, the remaining fraction being available for polling pro-
> cessing. Default is 50.

あたりですか。あとは man polling を読めと。

今日はそろそろ寝る時間で。
0048動け動けウゴウゴ2ちゃんねる
垢版 |
2006/04/16(日) 03:13:53ID:8eE42Jnd0
お疲れさまでした。

あと、httpdが落ちた時にcoreファイルが作られれば、
もっと原因解明ができると思います。
その場合、libthr, httpd, apache モジュール等、関連する全てのバイナリを
-O オプションなし & -g オプションつきでコンパイルしていれば、
どこで落ちたかはっきりするはず。
パフォーマンスは多少ダウンするし、バイナリも大きくなりますけどね。。
0050動け動けウゴウゴ2ちゃんねる
垢版 |
2006/04/16(日) 16:18:57ID:bf93xmwa0
live22のapacheで、workerの処理時間がかかることって
なんでしょうかね。
.dat/.txtの読み出しぐらいしかしていないと思うから、
ファイルの読み出しに時間がかかっているのですかね。
(bbsdの書き込みでブロックされているとか。)
0051root▲ ★
垢版 |
NGNG
>>50
HDDとネットワークの割り込みの取り合い(race condition)かなぁと思っていたりします。
昨日の出来事でかなりの確率でそうかなと、思うようになってきました。

今日2:30の設定変更でDEVICE_POLLING(この部分に有効といわれている)を入れたのが、
どう働くかなと。
0052root▲ ★
垢版 |
NGNG
ex14で、昨日live22で詰めた設定の実験を始めた。

・Apache 2.2 / 64bit + patch + worker MPM
・libthr

・DEVICE_POLLINGなし
・non-雪だるまサーバ

<IfModule mpm_worker_module>
StartServers 4
Serverlimit 4
ThreadLimit 256
ThreadsPerChild 256
MaxClients 1024
MinSpareThreads 1024
MaxSpareThreads 1024
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
0053root▲ ★
垢版 |
2006/04/17(月) 22:45:42ID:???0
ex14、妙なシステムダウン。
pingかかるものの、ログインできず。

ブレーメンのログやapache statusのログを見ても、
負荷がかかったような様子はなし。

>>52 が原因か。ううむ。
0054root▲ ★
垢版 |
2006/04/17(月) 22:50:22ID:???0
サーバダウンスレは流れそうなので、こっちに状況を。

www port: 詰まる
telnet port: 正しく connection refused
ftp port: 詰まる
ssh port: 繋がるものの、その先の応答なし
0055root▲ ★
垢版 |
NGNG
で、>>52 にあたり変えたのは、

・libpthread => libthr (libmap.conf 設定)
・httpd.conf (>>52 の部分のみ)

ううむ。
0056 株価【666】◆cZfSunOs.U
垢版 |
2006/04/17(月) 23:25:56ID:66b4DbIa0
単なる憶測ですが,メモリか何かの資源を食い潰したとかそんな感じなんでしょうかねぇ......
0058root▲ ★
垢版 |
NGNG
いずれにせよ上がったら、
1024 thread も要らないっぽいので、 StartServers と ServerLimit を 3 にして、
768 に減らしてみるということで。

# 今日はもうだめぽ。
0060root▲ ★
垢版 |
NGNG
>>59
そんな気がするですね。
TCP で接続しようとすると、ユーザランドにいかないっぽい(>>54)ので。
0061root▲ ★
垢版 |
NGNG
リブート入ったので、

<IfModule mpm_worker_module>
StartServers 3
ServerLimit 3
ThreadLimit 256
ThreadsPerChild 256
MaxClients 768
MinSpareThreads 768
MaxSpareThreads 768
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>

に変更。 < ex14
0062root▲ ★
垢版 |
NGNG
結構、ネットワークからの割り込み入っていますね。
systat とかで見ると 2500 以上あります。< この時間

6.1R が出たら、DEVICE_POLLING にするということで。< ex14
0063root▲ ★
垢版 |
NGNG
で、
pid 789 (httpd), uid 2003: exited on signal 10
pid 791 (httpd), uid 2003: exited on signal 10
pid 2529 (httpd), uid 2003: exited on signal 10
pid 3980 (httpd), uid 2003: exited on signal 10

やはり、signal 10 で死ぬことがある模様。
read.cgi かな。

通常サーバを 256 threads/process で動かすと、ちと危険かもですね。
やはり、もうちょっと減らそう。
0064 株価【666】◆cZfSunOs.U
垢版 |
2006/04/18(火) 00:00:30ID:S3WKKMdr0
>>61-62 乙です.>>51 みたいなことが ex14 でも起きたんでしょうかね......?
race condition だとするとタイミングの問題でしょうし.
0065root▲ ★
垢版 |
NGNG
<IfModule mpm_worker_module>
# StartServers 3
# ServerLimit 3
# ThreadLimit 256
# ThreadsPerChild 256
StartServers 12
ServerLimit 12
ThreadLimit 64
ThreadsPerChild 64
MaxClients 768
MinSpareThreads 768
MaxSpareThreads 768
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>

こうしてみた。
0066root▲ ★
垢版 |
NGNG
>>64
ありえますね。

前にも数回、同じような不可解な停止(ただし高負荷時)にあったので、
そうかなと思っていたり。
0068root▲ ★
垢版 |
2006/04/18(火) 21:23:34ID:???0
Apr 18 04:48:07 <0.6> tiger2522 kernel: pid 49512 (httpd), uid 2001: exited on signal 10
Apr 18 04:48:08 <0.6> tiger2522 kernel: pid 51181 (httpd), uid 2001: exited on signal 10
Apr 18 04:48:11 <0.6> tiger2522 kernel: pid 47579 (httpd), uid 2001: exited on signal 10
Apr 18 04:48:53 <0.6> tiger2522 kernel: pid 54596 (httpd), uid 2001: exited on signal 10
Apr 18 04:48:54 <0.6> tiger2522 kernel: pid 54600 (httpd), uid 2001: exited on signal 10
Apr 18 04:49:02 <0.6> tiger2522 kernel: pid 47591 (httpd), uid 2001: exited on signal 10
Apr 18 04:49:03 <0.6> tiger2522 kernel: pid 49264 (httpd), uid 2001: exited on signal 10
Apr 18 04:49:23 <0.6> tiger2522 kernel: pid 54777 (httpd), uid 2001: exited on signal 10
Apr 18 04:49:24 <0.6> tiger2522 kernel: pid 46092 (httpd), uid 2001: exited on signal 10
Apr 18 04:49:26 <0.6> tiger2522 kernel: pid 50612 (httpd), uid 2001: exited on signal 10
Apr 18 04:49:29 <0.6> tiger2522 kernel: pid 51482 (httpd), uid 2001: exited on signal 10
Apr 18 04:49:30 <0.6> tiger2522 kernel: pid 54770 (httpd), uid 2001: exited on signal 10
Apr 18 04:50:00 <0.6> tiger2522 kernel: pid 54606 (httpd), uid 2001: exited on signal 10
Apr 18 04:50:12 <0.6> tiger2522 kernel: pid 54903 (httpd), uid 2001: exited on signal 10
Apr 18 04:51:22 <0.6> tiger2522 kernel: pid 54904 (httpd), uid 2001: exited on signal 10
Apr 18 04:51:45 <0.6> tiger2522 kernel: pid 54880 (httpd), uid 2001: exited on signal 10
Apr 18 04:51:55 <0.6> tiger2522 kernel: pid 55080 (httpd), uid 2001: exited on signal 10

ううむ。
0069root▲ ★
垢版 |
2006/04/18(火) 21:34:22ID:???0
とりあえず、

# XXX
kern.maxvnodes=200000

にしてみた。@ live22
0071root▲ ★
垢版 |
NGNG
このへんは大丈夫(だった)っぽいなぁ。

%netstat -m
544/4016/4560 mbufs in use (current/cache/total)
520/1878/2398/32768 mbuf clusters in use (current/cache/total/max)
14/562/8704 sfbufs in use (current/peak/max)
1176K/4760K/5936K bytes allocated to network (current/cache/total)
0 requests for sfbufs denied
0 requests for sfbufs delayed
355 requests for I/O initiated by sendfile
64 calls to protocol drain routines
0072 株価【600】◆cZfSunOs.U
垢版 |
2006/04/18(火) 22:25:21ID:S3WKKMdr0
CoreDumpDirectory が効いて core を取れればどこでコケてるか絞りやすいんでしょうけどね.
それがナゼ効かないのか......
0073root▲ ★
垢版 |
NGNG
Apache 2.2.0 にしてから試してなかったので、
今、入れてみた。

# XXX
CoreDumpDirectory /tmp
0074root▲ ★
垢版 |
NGNG
kern.polling.burst_max
Upper bound for kern.polling.burst. Note that when polling is
enabled, each interface can receive at most (HZ * burst_max)
packets per second unless there are spare CPU cycles available
for polling in the idle loop. This number should be tuned to
match the expected load (which can be quite high with GigE
cards). Default is 150 which is adequate for 100Mbit network and
HZ=1000.

うむむむ。
0077root▲ ★
垢版 |
NGNG
# XXX
kern.polling.burst_max=400
kern.polling.each_burst=15

HZ=2000 にするのは、今日寝る前あたりにトライで。
0079root▲ ★
垢版 |
NGNG
fsck -n /home とか find /home -ls とかやってみたけど、
苦しい状況は再現されず。
0080root▲ ★
垢版 |
NGNG
前に make -j 4 で再現した「ぐにゃぐにゃ」も、再現されない模様。

# 負荷が低いせいかも。
0081動け動けウゴウゴ2ちゃんねる
垢版 |
2006/04/19(水) 00:19:26ID:5IxMwuZQ0
ハードウェア的な問題はないのでしょうか?
具体的にはHDDとかメモリとか。

FreeBSDではなくてLinuxの話ですが、HDDが死にかけの時は、
コマンド入力したらSIGBUSで落ちたりしてました。
今回の件とは違うので、参考にならないかもですが。
0082root▲ ★
垢版 |
NGNG
>>81
ハードですか、、、。
一応、ないとは思いますけど、、、。 < 症状から

# そういえば某飲み会で、コマンドを入力すると全部バスエラーになるサーバの対応を
# していたような、していないような。(その時の原因はHDDのI/Oエラーだったみたいです)
0085root▲ ★
垢版 |
NGNG
HZ=2000 なカーネルに入れ替え。@ live22

%sysctl kern.clockrate
kern.clockrate: { hz = 2000, tick = 500, profhz = 1333, stathz = 266 }
0087root▲ ★
垢版 |
NGNG
@ live22

/etc/rc.conf:
# NFS for _datArea
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 8"
rpcbind_enable="YES"
rpc_statd_enable="YES"
rpc_lockd_enable="YES"

@ live22x1

/etc/rc.conf:
# NFS for _datArea
nfs_client_enable="YES"

/etc/fstab:
# NFS for _datArea
192.168.100.1:/home/ch2live22/_datArea /home/ch2live22x/_datArea nfs ro,bg,mntudp,intr,nosuid 0 0
0088root▲ ★
垢版 |
NGNG
>>87 の前に、今ある _datArea の rsync 止めて、
ディレクトリを mv した。
0091root▲ ★
垢版 |
NGNG
結局、_datArea の rsync をとりあえずやめることにして、
プライベートネットワーク経由での NFS (read only) にしてみた。

フロントで動く read.cgi バイナリや offlaw.cgi バイナリは
NFS 経由で、dat を読みに行くと。

他の部分(SETTING.TXT等)は、NFS使用せず(rsyncで運ぶ)。
0092root▲ ★
垢版 |
NGNG
ということで、以前のNFS利用と異なるのは、

・生datやSETTING.TXTはNFSしない

かな。

ようは、NFSするのは過去ログ関係だけにしたと。
で、代償に過去ログの rsync が不要になったと。

このぐらいの頻度なら、NFSの発狂やrace conditionもないといいなぁ、と。
0093 ◆SSu.zv/rvs
垢版 |
2006/04/19(水) 04:31:06ID:4+TIZ9up0
ちなみに _datArea という名前は非公開だったり
0094root▲ ★
垢版 |
NGNG
>>93
あ、、、そうでしたか。
ごめんなさい。


例のPIEへの大引越しの際に、_datArea という名前で
過去ログを公開していたので、公開情報だと思ってしまいました。
すみません。
0095root▲ ★
垢版 |
NGNG
…管理人にメールしておきます。
(´・ω・`)
0098 ◆SSu.zv/rvs
垢版 |
2006/04/19(水) 04:44:38ID:4+TIZ9up0
いくつか有る壁の一つだから
大きなことは起こらないとおもいますー

2002年でしたっけ
三台ほどデータ消されたの

たぶんそれ以降強固になっているはずですんで、
そのうち壁を一つ増築するということで、
■ このスレッドは過去ログ倉庫に格納されています

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