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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(1): root▲ ★ 2006/04/16(日) 00:17:55 ID:???0 BE AAS
2ch特化型サーバ・ロケーション構築作戦のスレッドです。

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

等を取り扱います。

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

また「2ちゃんねる証券取引所」をはじめとする「株」関連や「Be」の機能強化、
あるいは、次世代の携帯アクセス環境をめざした「べっかんこ作戦」の状況など、
気候も暖かくなり、そろそろ気になりだす季節にさしかかりつつある今日この頃、
あいかわらず2ちゃんねるは、刻一刻と確実に変化し続けています。
2
(1): root▲ ★ 2006/04/16(日) 00:21:01 ID:???0 BE AAS
過去ログ一覧:
Part1 2chスレ:operate
Part2 2chスレ:operate
Part3 2chスレ:operate
Part4 2chスレ:operate
Part5 2chスレ:operate
Part6 2chスレ:operate
Part7 2chスレ:operate
Part8 2chスレ:operate
Part9 2chスレ:operate
Part10 2chスレ:operate
Part11 2chスレ:operate (なぜか未HTML化)
Part12 2chスレ:operate
Part13 2chスレ:operate
Part14 2chスレ:operate
Part15 2chスレ:operate
Part16 2chスレ:operate
Part17 2chスレ:operate
Part18 2chスレ:operate
Part19 2chスレ:operate
Part20 2chスレ:operate
3: ◆KONAN/fu2I 2006/04/16(日) 00:21:09 ID:unnVu5wW0(1)調 AAS
>>1
乙! (・∀・)ニヤニヤ
4: root▲ ★ 2006/04/16(日) 00:24:55 ID:???0 BE AAS
前スレからの課題
・削除関係の呪文の雪だるま対応 (すみませんまだ進んでいないです)
・live22 バックエンドの安定稼動 (先は長いですね)
・matd を用いた受付の安定稼動 (ほぼ解決、フロントエンドの自動切り離し要)
・mod_cache の導入によりバックエンドの負荷を下げる (squidとのマッチング要調査)
・DNS ラウンドロビンから matd への移行 (解決!)
・heartbeat を利用した受付の冗長化 (ucarpで解決!)

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

重要な課題
・効率の良い金色会員維持 (進行中)
・家庭の保守 (・・・・・・)
5: 動け動けウゴウゴ2ちゃんねる 2006/04/16(日) 00:26:05 ID:HGK8xR5a0(1)調 BE AAS
オメ

>・家庭の保守 (・・・・・・)
('A`)
6: root▲ ★ 2006/04/16(日) 00:31:17 ID:???0 BE AAS
前スレでやったこと(1)

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

・libthrのほうがいろんな意味でよい
・カーネル作成時にPREEMPTION を切ること
・DEVICE_POLLING は有効かもしれない(ただしPREEMPTIONなしに限る)
・dsoのところがMT-safeではないので、Apache 2.2 にパッチが必要
・libthr や カーネルにいろいろパッチ当て
8: root▲ ★ 2006/04/16(日) 01:09:41 ID:???0 BE AAS
・maxvnodes の値を見直してみるのはありかも。
2chスレ:operate

・PREEMPTION と DEVICE_POLLING について
2chスレ:operate
2chスレ:operate

・今後の作業メモ
2chスレ:operate
2chスレ:operate

・denyではじく負荷やら対策やらについて
2chスレ:operate
2chスレ:operate
2chスレ:operate

・6.1Rへのバージョンアップ作業について
2chスレ:operate

・これからのいろいろ
2chスレ:operate

・NFSしてみるとかなんとか
2chスレ:operate
9: root▲ ★ 2006/04/16(日) 01:12:13 ID:???0 BE AAS
・プロセス数が多くてスレッド数が少ないのより、
プロセス数が少なくてスレッド数が多いほうがよい模様
2chスレ:operate

・ThreadLimit, ThreadsPerChild, MaxClients には順番がある
2chスレ:operate
10
(3): root▲ ★ 2006/04/16(日) 01:13:30 ID:???0 BE AAS
で、
2chスレ:operate
> 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
...

となっていた模様。
11
(1): root▲ ★ 2006/04/16(日) 01:14:03 ID:???0 BE AAS
で、本日寝る前に、PREEMPTION ありのカーネルに入れ替える作業する予定。< live22
12: root▲ ★ 2006/04/16(日) 01:14:25 ID:???0 BE AAS
あー、間違えた。DEVICE_POLLING ありでした。>>11
13: root▲ ★ 2006/04/16(日) 01:17:31 ID:???0 BE AAS
あと、前スレで登場されたjig.jpの中の方に伝言を。

新スレに変わったので、技術情報の準備ができたら、
こちらに書いていただけると助かりますです。
14
(4): 動け動けウゴウゴ2ちゃんねる 2006/04/16(日) 01:28:04 ID:8eE42Jnd0(1/8)調 AAS
>>10
kern.threads.max_threads_per_proc
kern.threads.max_groups_per_proc
は設定されてますか?
デフォルトは1500のはずなので、1プロセス2048スレッドなら設定が必要ですが。。
15
(1): 株価【650】◆cZfSunOs.U 2006/04/16(日) 01:29:09 ID:tLC8VCxI0(1/5)調 AAS
>>10 SIGSEGV ですか......これもちょっと不可解ですね.
16
(1): root▲ ★ 2006/04/16(日) 01:31:09 ID:???0 BE AAS
>>14
してないですね。
なるほど、、、。

>>15
たぶん >>14 じゃないかなと。
17: root▲ ★ 2006/04/16(日) 01:32:47 ID:???0 BE AAS
SYSCTL_INT ですか。

ということは、sysctl すればよさげですね。
18
(1): root▲ ★ 2006/04/16(日) 01:37:15 ID:???0 BE AAS
%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とか踏んだ時にまるごとぼーんと死んじゃう瞬間があるのかしら。
19
(1): root▲ ★ 2006/04/16(日) 01:37:55 ID:???0 BE AAS
topでみると:

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

なるほど、2050というぐらいで2048 + 2 なわけですか。
20: 株価【650】◆cZfSunOs.U 2006/04/16(日) 01:38:33 ID:tLC8VCxI0(2/5)調 AAS
>>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 ってのも妙ではありますが......
21: root▲ ★ 2006/04/16(日) 01:39:39 ID:???0 BE AAS
/etc/sysctl.conf に追加した。

# Thank you for AC, 2chスレ:operate
kern.threads.max_threads_per_proc=4096
kern.threads.max_groups_per_proc=4096
22
(2): 株価【650】◆cZfSunOs.U 2006/04/16(日) 01:43:28 ID:tLC8VCxI0(3/5)調 AAS
>>18
>しかし子プロセス1つだと、
>signal 10とか踏んだ時にまるごとぼーんと死んじゃう瞬間があるのかしら。

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

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

システムのデフォルトのリミット値を尊重して、
まずは 2 プロセス、1024 スレッドで試してみようかなと。
25: root▲ ★ 2006/04/16(日) 01:46:49 ID:???0 BE AAS
<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
26
(1): 株価【650】◆cZfSunOs.U 2006/04/16(日) 01:49:03 ID:tLC8VCxI0(4/5)調 AAS
>>23 まぁこれは↓ということもあったんで.
2chスレ:operate

ただ,一方でスレッド数を増やした際の挙動が心配というのも確かにありますが.
27: root▲ ★ 2006/04/16(日) 01:50:44 ID:???0 BE AAS
>>26
ですね。

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

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

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

の動作で、何で一度にSIGBUSになるんだろうなぁと思っていました。
仮に thread library の問題だとして、1プロセスが落ちるならわかるんですが、
どうして一度に複数落ちちゃうのかなぁと。
まあ、load average が異常にあがったら落ちちゃうとか、
MaxClients に達したら落ちちゃうとか考えられるかもですが、
少なくとも、うちじゃあ load average が1000になろうと MaxClients いっぱいになろうと
SIGBUSで落ちるのは見たことないです。。
29: root▲ ★ 2006/04/16(日) 02:08:18 ID:???0 BE AAS
後ろで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>
30
(2): root▲ ★ 2006/04/16(日) 02:10:21 ID:???0 BE AAS
ちなみにさっきおかしかった時は、top で見ると umtx という状態の httpd が
たくさんいました。たぶんですが、スレッドが多すぎなのかなと。
31: root▲ ★ 2006/04/16(日) 02:14:53 ID:???0 BE AAS
ということでこれは必要なさげなので、
/etc/sysctl.conf からコメントアウトした。

#kern.threads.max_threads_per_proc=4096
#kern.threads.max_groups_per_proc=4096
32
(1): ◆boot//5v0I 2006/04/16(日) 02:15:10 ID:51oKQ0aA0(1)調 AAS
>>30
ちょwwwグーグル先生は休校ですか?
33: root▲ ★ 2006/04/16(日) 02:15:38 ID:???0 BE AAS
>>28
うーむ。そうですか。

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

普段がacceptで、負荷の時にucondになるなら、
それは、空きworkerスレッドがないため、
listenerスレッドがworkerスレッドが空くのを待っている状態です。
つまり、ThreadsPerChildが256なら、256いっぱいいっぱいってことです。
35
(1): root▲ ★ 2006/04/16(日) 02:18:54 ID:???0 BE AAS
>>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
36: root▲ ★ 2006/04/16(日) 02:21:00 ID:???0 BE AAS
>>34
> つまり、ThreadsPerChildが256なら、256いっぱいいっぱいってことです。

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

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

>>32
ん、何かまずかったかしら。
37
(1): 動け動けウゴウゴ2ちゃんねる 2006/04/16(日) 02:23:29 ID:8eE42Jnd0(5/8)調 AAS
>>35
ああ、すいません。
私が言ったのは、topでスレッドを展開せずに表示した時のことです。
経験上、スレッドを展開しなかったときは、
listnerスレッドの状態が accept とか ucond とかであらわれるようなので。
38: root▲ ★ 2006/04/16(日) 02:27:52 ID:???0 BE AAS
>>37
なるほど、そういうことですか。
(-H状態ではない場合と)
39
(2): 動け動けウゴウゴ2ちゃんねる 2006/04/16(日) 02:36:34 ID:8eE42Jnd0(6/8)調 AAS
例えば、
2chスレ:operate
のような状態は、もう、どのプロセスもパンパンだと思うんですよ。
で、なんで、パンパンになっちゃうのかと言うと、
普通に考えれば worker の処理が完了する前にどんどん接続を受け入れちゃうからで、
つまり、workerの処理に時間がかかりすぎていると。
Apacheって、workerの処理時間ログに出せませんでしたっけ?
40: root▲ ★ 2006/04/16(日) 02:37:53 ID:???0 BE AAS
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

心なしか、軽くなったような気も。
41
(1): root▲ ★ 2006/04/16(日) 02:40:07 ID:???0 BE AAS
>>39
WBCの時ですね。

あぁ、なんかちょっとだけ限界に近づいたなぁ、っていう感じを初めて受けた時でした。
work の処理時間ですか。んー、SunOS さんが詳しそうですね(私はそこまで知らないです)。
42
(1): root▲ ★ 2006/04/16(日) 02:47:05 ID:???0 BE AAS
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 しても、何も出てこないし。
43: root▲ ★ 2006/04/16(日) 02:49:30 ID:???0 BE AAS
で、この PREEMPTION なし、DEVICE_POLLING ありは、
BG3/BG4 (携帯バックエンド)にもいずれ使えそうだから、
苦しくなったら導入を考えようと。
44
(1): 動け動けウゴウゴ2ちゃんねる 2006/04/16(日) 02:53:41 ID:8eE42Jnd0(7/8)調 AAS
>>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

ですね。
45: root▲ ★ 2006/04/16(日) 02:56:19 ID:???0 BE AAS
>>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
(以下略)
46: root▲ ★ 2006/04/16(日) 03:05:07 ID:???0 BE AAS
もう今日は、live22 をおびやかすような負荷は来ないかな。

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

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

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

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

まだまだ先は長そうですが、今日のところはこんなかんじで。
47: root▲ ★ 2006/04/16(日) 03:09:50 ID:???0 BE AAS
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 を読めと。

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

あと、httpdが落ちた時にcoreファイルが作られれば、
もっと原因解明ができると思います。
その場合、libthr, httpd, apache モジュール等、関連する全てのバイナリを
-O オプションなし & -g オプションつきでコンパイルしていれば、
どこで落ちたかはっきりするはず。
パフォーマンスは多少ダウンするし、バイナリも大きくなりますけどね。。
49
(1): 株価【650】◆cZfSunOs.U 2006/04/16(日) 10:19:07 ID:tLC8VCxI0(5/5)調 AAS
乙でした.

>>39 >>41 これでしょうか?

%D  The time taken to serve the request, in microseconds.
50
(1): 動け動けウゴウゴ2ちゃんねる 2006/04/16(日) 16:18:57 ID:bf93xmwa0(1)調 AAS
live22のapacheで、workerの処理時間がかかることって
なんでしょうかね。
.dat/.txtの読み出しぐらいしかしていないと思うから、
ファイルの読み出しに時間がかかっているのですかね。
(bbsdの書き込みでブロックされているとか。)
51
(1): root▲ ★ 2006/04/16(日) 16:47:29 ID:???0 BE AAS
>>50
HDDとネットワークの割り込みの取り合い(race condition)かなぁと思っていたりします。
昨日の出来事でかなりの確率でそうかなと、思うようになってきました。

今日2:30の設定変更でDEVICE_POLLING(この部分に有効といわれている)を入れたのが、
どう働くかなと。
52
(2): root▲ ★ 2006/04/16(日) 18:34:47 ID:???0 BE AAS
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>
53: root▲ ★ 2006/04/17(月) 22:45:42 ID:???0 AAS
ex14、妙なシステムダウン。
pingかかるものの、ログインできず。

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

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

www port: 詰まる
telnet port: 正しく connection refused
ftp port: 詰まる
ssh port: 繋がるものの、その先の応答なし
55: root▲ ★ 2006/04/17(月) 23:21:13 ID:???0 BE AAS
で、>>52 にあたり変えたのは、

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

ううむ。
56
(1): 株価【666】◆cZfSunOs.U 2006/04/17(月) 23:25:56 ID:66b4DbIa0(1/2)調 AAS
単なる憶測ですが,メモリか何かの資源を食い潰したとかそんな感じなんでしょうかねぇ......
57
(1): root▲ ★ 2006/04/17(月) 23:28:01 ID:???0 BE AAS
>>56
外部リンク[html]:mumumu.mu

最初にそれを疑ったんですが、
あんまり、それっぽくもないんですよね(上記)。

libthr とかかしら。
58: root▲ ★ 2006/04/17(月) 23:33:33 ID:???0 BE AAS
いずれにせよ上がったら、
1024 thread も要らないっぽいので、 StartServers と ServerLimit を 3 にして、
768 に減らしてみるということで。

# 今日はもうだめぽ。
59
(1): 株価【666】◆cZfSunOs.U 2006/04/17(月) 23:34:08 ID:66b4DbIa0(2/2)調 AAS
>>57 なるほど......

カーネル内の何かのロックで引っかかってるかとかですかねぇ......
60: root▲ ★ 2006/04/17(月) 23:41:51 ID:???0 BE AAS
>>59
そんな気がするですね。
TCP で接続しようとすると、ユーザランドにいかないっぽい(>>54)ので。
61
(1): root▲ ★ 2006/04/17(月) 23:50:55 ID:???0 BE AAS
リブート入ったので、

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

に変更。 < ex14
62
(1): root▲ ★ 2006/04/17(月) 23:53:30 ID:???0 BE AAS
結構、ネットワークからの割り込み入っていますね。
systat とかで見ると 2500 以上あります。< この時間

6.1R が出たら、DEVICE_POLLING にするということで。< ex14
63: root▲ ★ 2006/04/17(月) 23:59:07 ID:???0 BE AAS
で、
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 で動かすと、ちと危険かもですね。
やはり、もうちょっと減らそう。
64
(1): 株価【666】◆cZfSunOs.U 2006/04/18(火) 00:00:30 ID:S3WKKMdr0(1/2)調 AAS
>>61-62 乙です.>>51 みたいなことが ex14 でも起きたんでしょうかね......?
race condition だとするとタイミングの問題でしょうし.
65: root▲ ★ 2006/04/18(火) 00:03:54 ID:???0 BE AAS
<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>

こうしてみた。
66: root▲ ★ 2006/04/18(火) 00:05:01 ID:???0 BE AAS
>>64
ありえますね。

前にも数回、同じような不可解な停止(ただし高負荷時)にあったので、
そうかなと思っていたり。
67: 動け動けウゴウゴ2ちゃんねる 2006/04/18(火) 18:11:36 ID:gQZn44ICO携(1)調 AAS
GFSはないか、ないな
68: root▲ ★ 2006/04/18(火) 21:23:34 ID:???0 AAS
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

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

# XXX
kern.maxvnodes=200000

にしてみた。@ live22
70: root▲ ★ 2006/04/18(火) 22:16:12 ID:???0 BE AAS
今は、ゆとりありだからわからないなぁ。

%sysctl vfs.numvnodes
vfs.numvnodes: 39509
%sysctl kern.maxvnodes
kern.maxvnodes: 200000

外部リンク[html]:www.freebsd.org
71: root▲ ★ 2006/04/18(火) 22:22:34 ID:???0 BE AAS
このへんは大丈夫(だった)っぽいなぁ。

%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
72: 株価【600】◆cZfSunOs.U 2006/04/18(火) 22:25:21 ID:S3WKKMdr0(2/2)調 AAS
CoreDumpDirectory が効いて core を取れればどこでコケてるか絞りやすいんでしょうけどね.
それがナゼ効かないのか......
73: root▲ ★ 2006/04/18(火) 22:30:39 ID:???0 BE AAS
Apache 2.2.0 にしてから試してなかったので、
今、入れてみた。

# XXX
CoreDumpDirectory /tmp
74: root▲ ★ 2006/04/18(火) 22:46:36 ID:???0 BE AAS
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.

うむむむ。
75: root▲ ★ 2006/04/18(火) 22:52:50 ID:???0 BE AAS
外部リンク[html]:lists.freebsd.org
76: root▲ ★ 2006/04/18(火) 22:53:31 ID:???0 BE AAS
外部リンク[html]:lists.freebsd.org
77: root▲ ★ 2006/04/18(火) 22:58:05 ID:???0 BE AAS
# XXX
kern.polling.burst_max=400
kern.polling.each_burst=15

HZ=2000 にするのは、今日寝る前あたりにトライで。
78: root▲ ★ 2006/04/18(火) 23:58:47 ID:???0 BE AAS
こんどは、HDDに負荷かけてみる。
79
(1): root▲ ★ 2006/04/19(水) 00:03:29 ID:???0 BE AAS
fsck -n /home とか find /home -ls とかやってみたけど、
苦しい状況は再現されず。
80: root▲ ★ 2006/04/19(水) 00:04:18 ID:???0 BE AAS
前に make -j 4 で再現した「ぐにゃぐにゃ」も、再現されない模様。

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

FreeBSDではなくてLinuxの話ですが、HDDが死にかけの時は、
コマンド入力したらSIGBUSで落ちたりしてました。
今回の件とは違うので、参考にならないかもですが。
82: root▲ ★ 2006/04/19(水) 00:21:47 ID:???0 BE AAS
>>81
ハードですか、、、。
一応、ないとは思いますけど、、、。 < 症状から

# そういえば某飲み会で、コマンドを入力すると全部バスエラーになるサーバの対応を
# していたような、していないような。(その時の原因はHDDのI/Oエラーだったみたいです)
83
(1): 株価【600】◆cZfSunOs.U 2006/04/19(水) 00:23:17 ID:viNfO5V/0(1)調 AAS
人為的にやるなら,ab 攻撃 + >>79 みたいなのとか.
84: root▲ ★ 2006/04/19(水) 00:24:17 ID:???0 BE AAS
>>83
やはりそれですかね。
85: root▲ ★ 2006/04/19(水) 00:39:04 ID:???0 BE AAS
HZ=2000 なカーネルに入れ替え。@ live22

%sysctl kern.clockrate
kern.clockrate: { hz = 2000, tick = 500, profhz = 1333, stathz = 266 }
86: root▲ ★ 2006/04/19(水) 03:34:19 ID:???0 BE AAS
read.cgi再開発スレ Part2
2chスレ:operate

今見ていますが、_datArea の rsync が、とっても負荷が高いですね。

どうせ不安定なんだから(おい)、ここをread onlyのNFSにしてみるとか。
やってみるか。
87
(2): root▲ ★ 2006/04/19(水) 03:58:41 ID:???0 BE AAS
@ 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
88: root▲ ★ 2006/04/19(水) 04:02:17 ID:???0 BE AAS
>>87 の前に、今ある _datArea の rsync 止めて、
ディレクトリを mv した。
89: root▲ ★ 2006/04/19(水) 04:05:15 ID:???0 BE AAS
@ live22
/etc/exports: 設定。
90: root▲ ★ 2006/04/19(水) 04:13:59 ID:???0 BE AAS
>>87 を、live22x2 と live22x3 にも適用。
91: root▲ ★ 2006/04/19(水) 04:22:06 ID:???0 BE AAS
結局、_datArea の rsync をとりあえずやめることにして、
プライベートネットワーク経由での NFS (read only) にしてみた。

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

他の部分(SETTING.TXT等)は、NFS使用せず(rsyncで運ぶ)。
92: root▲ ★ 2006/04/19(水) 04:24:49 ID:???0 BE AAS
ということで、以前のNFS利用と異なるのは、

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

かな。

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

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

例のPIEへの大引越しの際に、_datArea という名前で
過去ログを公開していたので、公開情報だと思ってしまいました。
すみません。
95
(1): root▲ ★ 2006/04/19(水) 04:35:59 ID:???0 BE AAS
…管理人にメールしておきます。
(´・ω・`)
96
(1): root▲ ★ 2006/04/19(水) 04:41:30 ID:???0 BE AAS
>>95 done.
97: 動け動けウゴウゴ2ちゃんねる 2006/04/19(水) 04:43:12 ID:xfzH2rUP0(1/2)調 AAS
|´・ω・)ゝ
98
(1): ◆SSu.zv/rvs 2006/04/19(水) 04:44:38 ID:4+TIZ9up0(2/2)調 AAS
いくつか有る壁の一つだから
大きなことは起こらないとおもいますー

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

たぶんそれ以降強固になっているはずですんで、
そのうち壁を一つ増築するということで、
99: root▲ ★ 2006/04/19(水) 04:46:53 ID:???0 BE AAS
>>98

はい。
100: [―{}@{}@{}-] ◆5/PMDV3/0o 2006/04/19(水) 04:50:18 ID:7dieUL5T0(1)調 BE AAS
2chスレ:accuse
101: 動け動けウゴウゴ2ちゃんねる 2006/04/19(水) 06:30:31 ID:qZB3EeX60(1)調 AAS
2chスレ:operate
>>10とか>>14とか
102: 動け動けウゴウゴ2ちゃんねる 2006/04/19(水) 06:42:22 ID:xfzH2rUP0(2/2)調 AAS
|´・ω・)ゝ 緊急時だから記憶しないであげて
103: 動け動けウゴウゴ2ちゃんねる 2006/04/19(水) 10:06:16 ID:z72z+rJt0(1)調 AAS
>>96
つ ▲
104: ◆SANUKI/VII 2006/04/19(水) 10:24:58 ID:1awf0BqRP(1)調 BE AAS
あれって非公開だったんだ、
105: root▲ ★ 2006/04/19(水) 11:57:09 ID:???0 BE AAS
rsync の負荷がおそろしく軽くなった。

「だんだん弱くなってきた」傾向からいっても、
これまでの観測結果からしても、過去ログの再帰的な rsync をやめたのは、
相当効果が大きいと思う。

あとは、この部分が NFS でうまく動いてくれれば。
106
(1): ◆XejmK2zG7E 2006/04/19(水) 16:35:51 ID:b6ipj1UF0(1/4)調 AAS
株式会社jig.jpの菊池です。
弊社サービス「jigブラウザ」から2ちゃんねる掲示板への書き込みの件ですが、
弊社テストサーバでの対応が完了致しましたので技術情報を公開致します。

IPアドレス:210.153.93.58

携帯側のIPアドレスはX-Forwarded-Forヘッダーで端末固有情報は
X-Subscriber-IDヘッダーで送信するようにしています。

テストサーバでの書き込みの確認ができましたら、全サーバのIPを公開したいと考えております。

宜しくお願い致します。
107: root▲ ★ 2006/04/19(水) 16:50:37 ID:???0 BE AAS
>>106
了解です。
まずは、テストサーバの仮登録ということですね。

X-Forwarded-For: xxx.xxx.xxx.xxx
X-Subscriber-ID: serial_string

という形であると想定して bbs.cgi に組み入れ、
このサーバ(qb5)に入れます。

こちらの作業ができたところで、このスレで連絡します。
よろしくお願いいたします。
108: ◆XejmK2zG7E 2006/04/19(水) 16:59:45 ID:b6ipj1UF0(2/4)調 AAS
早速の回答ありがとうございます。
ご連絡お待ちしております。
109
(2): root▲ ★ 2006/04/19(水) 17:00:51 ID:???0 BE AAS
あと、X-Subscriber-ID: 情報を送信いただくにあたっての確認です。

外部リンク[html]:br.jig.jp

# 対応機種が多いですね。

いい機会なので、個別の方法をまとめておきます。

1) DoCoMo

User-Agent: の serXXXXXXXXXXXXX を、加工せずそのまま送ってください。

2) au

X_UP_SUBNO の情報を、加工せずそのまま送ってください。

3) Vodafone

User-Agent: の SNxxxxxxxxxx を、加工せずそのまま送ってください。

4) Willcom

うーむ、とりあえず保留にさせてください。
仕様がわからないと、対応のしようが。

逆に仕様がわかれば、これを機会に対応できるのかな。
110: root▲ ★ 2006/04/19(水) 17:01:42 ID:???0 BE AAS
>>109 は、ser や SN を*つけたままで*、という意味になります。
よろしくおねがいします。
111
(1): root▲ ★ 2006/04/19(水) 17:07:14 ID:???0 BE AAS
いい機会だから、菊池さんにひとつ質問してしまいます。

Willcom 版 jig ブラウザは、

1) 2ちゃんねるには御社ゲートウェイ経由でのアクセスになるのですか。
2) それとも、携帯電話につく IP アドレス直でアクセスされるのでしょうか。
112
(1): 動け動けウゴウゴ2ちゃんねる 2006/04/19(水) 17:49:11 ID:zl/zliq10(1)調 BE AAS
[FreeBSD-Announce] FreeBSD Security Advisory FreeBSD-SA-06:14.fpu
外部リンク[html]:lists.freebsd.org
113
(1): root▲ ★ 2006/04/19(水) 17:51:50 ID:???0 BE AAS
お、ひょっとして、

> IPアドレス:210.153.93.58

は、逆引きできない IP アドレスかしら。

だとすると、
> X-Forwarded-Forヘッダー

との兼ね合いで、ちといまいちかもです。
(全然別のProxy判定にひっかかる可能性がある)

DNS逆引きが設定されていれば問題ないので、
テストの際には逆引きを正しく指定いただくか、
あるいは他のヘッダでIPアドレス情報を渡す必要があります。
114: root▲ ★ 2006/04/19(水) 17:53:46 ID:???0 BE AAS
…というか、こっちで対応すればいいのか。>>113

該当部分、IPアドレス 210.153.93.58 だけ一時的にスルーにします。
115
(1): ◆XejmK2zG7E 2006/04/19(水) 18:05:58 ID:b6ipj1UF0(3/4)調 AAS
>>109
了解致しました。
>>111
ゲートウェイ経由でのアクセスになります。
端末情報を送っていいかWILLCOMの方に確認致しますので、こちらの対応は保留とさせていただきます。
116: root▲ ★ 2006/04/19(水) 18:22:01 ID:???0 BE AAS
>>115
Willcom の端末情報は、
一般的な方法では素の Willcom 電話からは得られないはずです、、、。

ということで2ちゃんねるには、送っていただかなくて問題ありませんです。
というか、たぶん許可なく送っちゃいけないんだと思います。

# 端末情報とれると*すんごく*うれしいけど、たぶん非公開ですね、それ。

# Willcomの対応は、別途考えましょう。
117
(1): root▲ ★ 2006/04/19(水) 19:01:32 ID:???0 BE AAS
菊池様;

というわけで、qb5 サーバに対応版 bbs.cgi を入れました。

・DoCoMo/au/Vodafone いずれも対応できたはずです。
・Willcom は未対応です(携帯用ブラウザからの情報を取得できない旨のエラーになります)。
・ID の末尾の識別マークは Q になります。
・ID そのものは、携帯の標準ブラウザから書き込んだ場合と同じです。
・規制系(Samba24連投規制、BBM)は、各携帯ごとに個別で規制されます。

ということで、以下のテストを実施していただけますと助かります。

[test] 書き込みテスト 専用スレッド 61 [テスト]
2chスレ:operate

に、
1) jigブラウザ経由で書き込む
2) 携帯の標準ブラウザから書き込む

1) 2) が同じ ID となり、かつIDの末尾が Q と O になれば、実験は成功です。

以上、よろしくお願いいたします。
118
(1): 動け動けウゴウゴ2ちゃんねる 2006/04/19(水) 19:06:43 ID:2J7hK35lP(1)調 AAS
バーボンも端末個別?
119: root▲ ★ 2006/04/19(水) 19:08:40 ID:???0 BE AAS
>>118
リロードバーボンは従来通りですね。ゲートウェイ型の宿命かと。
書き込みバーボンは、携帯と同じ扱いになるはず。
120: root▲ ★ 2006/04/19(水) 19:13:56 ID:???0 BE AAS
(´-`).。oO(しかし対応キャリアが多いと、テストも大変だなと。)
121: 動け動けウゴウゴ2ちゃんねる 2006/04/19(水) 19:27:42 ID:UhuoF612Q(1)調 AAS
キャリアごと(計6回)の書き込みテストですね。
122: P061198250129.ppp.prin.ne.jp 2006/04/19(水) 19:48:09 ID:SWgMXyZo0(1)調 AAS
>>112
SAですか。
cobraだけ該当すると。
1-
あと 879 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.022s