2ch特化型サーバ・ロケーション構築作戦のスレッドです。
・2ちゃんねるのサーバロケーション、PIEに関する関連作業・調整事項
・DNS登録・変更関連の各種作業や調整事項
・2ちゃんねるのサーバで採用しているOS、FreeBSDに関する情報・調整事項
・各種作戦・プロジェクトとの連携、プロジェクト間の連携
等を取り扱います。
現在、複数サーバによる連携により、
サーバ能力のさらなるスケールアップをめざすための「雪だるま作戦」が進行中です。
しかし、問題はあらゆる意味で山積の状態です。
また「2ちゃんねる証券取引所」をはじめとする「株」関連や「Be」の機能強化、
あるいは、次世代の携帯アクセス環境をめざした「べっかんこ作戦」の状況など、
気候も暖かくなり、そろそろ気になりだす季節にさしかかりつつある今日この頃、
あいかわらず2ちゃんねるは、刻一刻と確実に変化し続けています。
2ch特化型サーバ・ロケーション構築作戦 Part21
■ このスレッドは過去ログ倉庫に格納されています
1root▲ ★
NGNG2root▲ ★
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/
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/
>>1
乙! (・∀・)ニヤニヤ
乙! (・∀・)ニヤニヤ
4root▲ ★
NGNG 前スレからの課題
・削除関係の呪文の雪だるま対応 (すみませんまだ進んでいないです)
・live22 バックエンドの安定稼動 (先は長いですね)
・matd を用いた受付の安定稼動 (ほぼ解決、フロントエンドの自動切り離し要)
・mod_cache の導入によりバックエンドの負荷を下げる (squidとのマッチング要調査)
・DNS ラウンドロビンから matd への移行 (解決!)
・heartbeat を利用した受付の冗長化 (ucarpで解決!)
・電源食い杉どうしよう (未解決、一部サーバの移設をすすめる方向で)
・携帯フルブラウザからの書き込み対応 (しかけは完了、個別対応していけばOK)
重要な課題
・効率の良い金色会員維持 (進行中)
・家庭の保守 (・・・・・・)
・削除関係の呪文の雪だるま対応 (すみませんまだ進んでいないです)
・live22 バックエンドの安定稼動 (先は長いですね)
・matd を用いた受付の安定稼動 (ほぼ解決、フロントエンドの自動切り離し要)
・mod_cache の導入によりバックエンドの負荷を下げる (squidとのマッチング要調査)
・DNS ラウンドロビンから matd への移行 (解決!)
・heartbeat を利用した受付の冗長化 (ucarpで解決!)
・電源食い杉どうしよう (未解決、一部サーバの移設をすすめる方向で)
・携帯フルブラウザからの書き込み対応 (しかけは完了、個別対応していけばOK)
重要な課題
・効率の良い金色会員維持 (進行中)
・家庭の保守 (・・・・・・)
NGNG
オメ
>・家庭の保守 (・・・・・・)
('A`)
>・家庭の保守 (・・・・・・)
('A`)
6root▲ ★
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 本格投入
・虫との闘い(継続中)
・ucarp/matdによる受付嬢の稼動
・www2の雪だるまへの収容(レンガ表示がスムーズに)
・www/menuのスタンバイ機作成(banana201
・携帯フルブラウザからの書き込み対応(情報を送信してもらえるケース、識別マークQ)
・FreeBSD 6.0R 実践投入、6.1-RC テスト投入(ex11/狼)
・Apache 2.2 + worker MPM, PHP 5.1.2 本格投入
・虫との闘い(継続中)
7root▲ ★
NGNG 今のところの虫との闘いの記録
・libthrのほうがいろんな意味でよい
・カーネル作成時にPREEMPTION を切ること
・DEVICE_POLLING は有効かもしれない(ただしPREEMPTIONなしに限る)
・dsoのところがMT-safeではないので、Apache 2.2 にパッチが必要
・libthr や カーネルにいろいろパッチ当て
・libthrのほうがいろんな意味でよい
・カーネル作成時にPREEMPTION を切ること
・DEVICE_POLLING は有効かもしれない(ただしPREEMPTIONなしに限る)
・dsoのところがMT-safeではないので、Apache 2.2 にパッチが必要
・libthr や カーネルにいろいろパッチ当て
8root▲ ★
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
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
9root▲ ★
NGNG ・プロセス数が多くてスレッド数が少ないのより、
プロセス数が少なくてスレッド数が多いほうがよい模様
http://qb5.2ch.net/test/read.cgi/operate/1140540754/983
・ThreadLimit, ThreadsPerChild, MaxClients には順番がある
http://qb5.2ch.net/test/read.cgi/operate/1140540754/991-992
プロセス数が少なくてスレッド数が多いほうがよい模様
http://qb5.2ch.net/test/read.cgi/operate/1140540754/983
・ThreadLimit, ThreadsPerChild, MaxClients には順番がある
http://qb5.2ch.net/test/read.cgi/operate/1140540754/991-992
10root▲ ★
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
...
となっていた模様。
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
...
となっていた模様。
11root▲ ★
NGNG で、本日寝る前に、PREEMPTION ありのカーネルに入れ替える作業する予定。< live22
12root▲ ★
NGNG あー、間違えた。DEVICE_POLLING ありでした。>>11
13root▲ ★
NGNG あと、前スレで登場されたjig.jpの中の方に伝言を。
新スレに変わったので、技術情報の準備ができたら、
こちらに書いていただけると助かりますです。
新スレに変わったので、技術情報の準備ができたら、
こちらに書いていただけると助かりますです。
2006/04/16(日) 01:28:04ID:8eE42Jnd0
>>10
kern.threads.max_threads_per_proc
kern.threads.max_groups_per_proc
は設定されてますか?
デフォルトは1500のはずなので、1プロセス2048スレッドなら設定が必要ですが。。
kern.threads.max_threads_per_proc
kern.threads.max_groups_per_proc
は設定されてますか?
デフォルトは1500のはずなので、1プロセス2048スレッドなら設定が必要ですが。。
>>10 SIGSEGV ですか......これもちょっと不可解ですね.
17root▲ ★
NGNG SYSCTL_INT ですか。
ということは、sysctl すればよさげですね。
ということは、sysctl すればよさげですね。
18root▲ ★
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とか踏んだ時にまるごとぼーんと死んじゃう瞬間があるのかしら。
%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とか踏んだ時にまるごとぼーんと死んじゃう瞬間があるのかしら。
19root▲ ★
NGNG topでみると:
52301 ch2live22 2050 4 0 339M 110M accept 1 4:31 27.25% httpd
なるほど、2050というぐらいで2048 + 2 なわけですか。
52301 ch2live22 2050 4 0 339M 110M accept 1 4:31 27.25% httpd
なるほど、2050というぐらいで2048 + 2 なわけですか。
>>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 ってのも妙ではありますが......
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 ってのも妙ではありますが......
21root▲ ★
NGNG /etc/sysctl.conf に追加した。
# Thank you for AC, http://qb5.2ch.net/test/read.cgi/operate/1145114275/14
kern.threads.max_threads_per_proc=4096
kern.threads.max_groups_per_proc=4096
# Thank you for AC, http://qb5.2ch.net/test/read.cgi/operate/1145114275/14
kern.threads.max_threads_per_proc=4096
kern.threads.max_groups_per_proc=4096
2006/04/16(日) 01:43:57ID:8eE42Jnd0
>>14 のように書きましたが、
個人的には、1プロセスあたりのスレッド数をあまり多くするのは反対ですけどね。
多すぎず、少なすぎずがいいと思いますが。
でも、いろいろ試してみるのも良いかもしれませんね。
個人的には、1プロセスあたりのスレッド数をあまり多くするのは反対ですけどね。
多すぎず、少なすぎずがいいと思いますが。
でも、いろいろ試してみるのも良いかもしれませんね。
24root▲ ★
NGNG25root▲ ★
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
# 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
>>23 まぁこれは↓ということもあったんで.
http://qb5.2ch.net/test/read.cgi/operate/1140540754/985
ただ,一方でスレッド数を増やした際の挙動が心配というのも確かにありますが.
http://qb5.2ch.net/test/read.cgi/operate/1140540754/985
ただ,一方でスレッド数を増やした際の挙動が心配というのも確かにありますが.
27root▲ ★
NGNG2006/04/16(日) 02:07:15ID:8eE42Jnd0
>>22
前から不思議に思ってたのが
>ただ,これまで SIGBUS になった時は
>どっちにしろ一気にどん詰まりになってるようなんで実際上あまり変わらないかもですが......
の動作で、何で一度にSIGBUSになるんだろうなぁと思っていました。
仮に thread library の問題だとして、1プロセスが落ちるならわかるんですが、
どうして一度に複数落ちちゃうのかなぁと。
まあ、load average が異常にあがったら落ちちゃうとか、
MaxClients に達したら落ちちゃうとか考えられるかもですが、
少なくとも、うちじゃあ load average が1000になろうと MaxClients いっぱいになろうと
SIGBUSで落ちるのは見たことないです。。
前から不思議に思ってたのが
>ただ,これまで SIGBUS になった時は
>どっちにしろ一気にどん詰まりになってるようなんで実際上あまり変わらないかもですが......
の動作で、何で一度にSIGBUSになるんだろうなぁと思っていました。
仮に thread library の問題だとして、1プロセスが落ちるならわかるんですが、
どうして一度に複数落ちちゃうのかなぁと。
まあ、load average が異常にあがったら落ちちゃうとか、
MaxClients に達したら落ちちゃうとか考えられるかもですが、
少なくとも、うちじゃあ load average が1000になろうと MaxClients いっぱいになろうと
SIGBUSで落ちるのは見たことないです。。
29root▲ ★
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>
動きがぐにゃぐにゃになりました。< スレッドが多いと
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>
30root▲ ★
NGNG ちなみにさっきおかしかった時は、top で見ると umtx という状態の httpd が
たくさんいました。たぶんですが、スレッドが多すぎなのかなと。
たくさんいました。たぶんですが、スレッドが多すぎなのかなと。
31root▲ ★
NGNG ということでこれは必要なさげなので、
/etc/sysctl.conf からコメントアウトした。
#kern.threads.max_threads_per_proc=4096
#kern.threads.max_groups_per_proc=4096
/etc/sysctl.conf からコメントアウトした。
#kern.threads.max_threads_per_proc=4096
#kern.threads.max_groups_per_proc=4096
>>30
ちょwwwグーグル先生は休校ですか?
ちょwwwグーグル先生は休校ですか?
33root▲ ★
NGNG2006/04/16(日) 02:17:07ID:8eE42Jnd0
>>30
umtxですか。
ucondならわかるんですが。
普段がacceptで、負荷の時にucondになるなら、
それは、空きworkerスレッドがないため、
listenerスレッドがworkerスレッドが空くのを待っている状態です。
つまり、ThreadsPerChildが256なら、256いっぱいいっぱいってことです。
umtxですか。
ucondならわかるんですが。
普段がacceptで、負荷の時にucondになるなら、
それは、空きworkerスレッドがないため、
listenerスレッドがworkerスレッドが空くのを待っている状態です。
つまり、ThreadsPerChildが256なら、256いっぱいいっぱいってことです。
35root▲ ★
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
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
36root▲ ★
NGNG2006/04/16(日) 02:23:29ID:8eE42Jnd0
>>35
ああ、すいません。
私が言ったのは、topでスレッドを展開せずに表示した時のことです。
経験上、スレッドを展開しなかったときは、
listnerスレッドの状態が accept とか ucond とかであらわれるようなので。
ああ、すいません。
私が言ったのは、topでスレッドを展開せずに表示した時のことです。
経験上、スレッドを展開しなかったときは、
listnerスレッドの状態が accept とか ucond とかであらわれるようなので。
38root▲ ★
NGNG2006/04/16(日) 02:36:34ID:8eE42Jnd0
例えば、
http://qb5.2ch.net/test/read.cgi/operate/1140540754/674
のような状態は、もう、どのプロセスもパンパンだと思うんですよ。
で、なんで、パンパンになっちゃうのかと言うと、
普通に考えれば worker の処理が完了する前にどんどん接続を受け入れちゃうからで、
つまり、workerの処理に時間がかかりすぎていると。
Apacheって、workerの処理時間ログに出せませんでしたっけ?
http://qb5.2ch.net/test/read.cgi/operate/1140540754/674
のような状態は、もう、どのプロセスもパンパンだと思うんですよ。
で、なんで、パンパンになっちゃうのかと言うと、
普通に考えれば worker の処理が完了する前にどんどん接続を受け入れちゃうからで、
つまり、workerの処理に時間がかかりすぎていると。
Apacheって、workerの処理時間ログに出せませんでしたっけ?
40root▲ ★
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
心なしか、軽くなったような気も。
%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
心なしか、軽くなったような気も。
41root▲ ★
NGNG >>39
WBCの時ですね。
あぁ、なんかちょっとだけ限界に近づいたなぁ、っていう感じを初めて受けた時でした。
work の処理時間ですか。んー、SunOS さんが詳しそうですね(私はそこまで知らないです)。
WBCの時ですね。
あぁ、なんかちょっとだけ限界に近づいたなぁ、っていう感じを初めて受けた時でした。
work の処理時間ですか。んー、SunOS さんが詳しそうですね(私はそこまで知らないです)。
42root▲ ★
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 しても、何も出てこないし。
...
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 しても、何も出てこないし。
43root▲ ★
NGNG で、この PREEMPTION なし、DEVICE_POLLING ありは、
BG3/BG4 (携帯バックエンド)にもいずれ使えそうだから、
苦しくなったら導入を考えようと。
BG3/BG4 (携帯バックエンド)にもいずれ使えそうだから、
苦しくなったら導入を考えようと。
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
ですね。
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
ですね。
45root▲ ★
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
(以下略)
おーっ ♥
%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
(以下略)
46root▲ ★
NGNG もう今日は、live22 をおびやかすような負荷は来ないかな。
HDDアクセスとネットワークアクセスが重なると、
特にHDDをヘビーに触ると、苦しくなりやすい
んだとすると、PREEMPTIONなし+DEVICE_POLLINGありの設定は、
理論上は効果を期待できそうな気がします。
で、Apacheのスレッド数の変更をし、
最初から最大値で待たせ、かつプロセス数をちょっと控えめに設定変更しました。
で、cobra サーバでも 6.1R にすれば、DEVICE_POLLING が使えることもわかりました。
まだまだ先は長そうですが、今日のところはこんなかんじで。
HDDアクセスとネットワークアクセスが重なると、
特にHDDをヘビーに触ると、苦しくなりやすい
んだとすると、PREEMPTIONなし+DEVICE_POLLINGありの設定は、
理論上は効果を期待できそうな気がします。
で、Apacheのスレッド数の変更をし、
最初から最大値で待たせ、かつプロセス数をちょっと控えめに設定変更しました。
で、cobra サーバでも 6.1R にすれば、DEVICE_POLLING が使えることもわかりました。
まだまだ先は長そうですが、今日のところはこんなかんじで。
47root▲ ★
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 を読めと。
今日はそろそろ寝る時間で。
(というか、あたりまえか)
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 を読めと。
今日はそろそろ寝る時間で。
2006/04/16(日) 03:13:53ID:8eE42Jnd0
お疲れさまでした。
あと、httpdが落ちた時にcoreファイルが作られれば、
もっと原因解明ができると思います。
その場合、libthr, httpd, apache モジュール等、関連する全てのバイナリを
-O オプションなし & -g オプションつきでコンパイルしていれば、
どこで落ちたかはっきりするはず。
パフォーマンスは多少ダウンするし、バイナリも大きくなりますけどね。。
あと、httpdが落ちた時にcoreファイルが作られれば、
もっと原因解明ができると思います。
その場合、libthr, httpd, apache モジュール等、関連する全てのバイナリを
-O オプションなし & -g オプションつきでコンパイルしていれば、
どこで落ちたかはっきりするはず。
パフォーマンスは多少ダウンするし、バイナリも大きくなりますけどね。。
2006/04/16(日) 16:18:57ID:bf93xmwa0
live22のapacheで、workerの処理時間がかかることって
なんでしょうかね。
.dat/.txtの読み出しぐらいしかしていないと思うから、
ファイルの読み出しに時間がかかっているのですかね。
(bbsdの書き込みでブロックされているとか。)
なんでしょうかね。
.dat/.txtの読み出しぐらいしかしていないと思うから、
ファイルの読み出しに時間がかかっているのですかね。
(bbsdの書き込みでブロックされているとか。)
51root▲ ★
NGNG >>50
HDDとネットワークの割り込みの取り合い(race condition)かなぁと思っていたりします。
昨日の出来事でかなりの確率でそうかなと、思うようになってきました。
今日2:30の設定変更でDEVICE_POLLING(この部分に有効といわれている)を入れたのが、
どう働くかなと。
HDDとネットワークの割り込みの取り合い(race condition)かなぁと思っていたりします。
昨日の出来事でかなりの確率でそうかなと、思うようになってきました。
今日2:30の設定変更でDEVICE_POLLING(この部分に有効といわれている)を入れたのが、
どう働くかなと。
52root▲ ★
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>
・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>
53root▲ ★
2006/04/17(月) 22:45:42ID:???054root▲ ★
2006/04/17(月) 22:50:22ID:???0 サーバダウンスレは流れそうなので、こっちに状況を。
www port: 詰まる
telnet port: 正しく connection refused
ftp port: 詰まる
ssh port: 繋がるものの、その先の応答なし
www port: 詰まる
telnet port: 正しく connection refused
ftp port: 詰まる
ssh port: 繋がるものの、その先の応答なし
55root▲ ★
NGNG 単なる憶測ですが,メモリか何かの資源を食い潰したとかそんな感じなんでしょうかねぇ......
57root▲ ★
NGNG >>56
http://mumumu.mu/mrtg/mrtg-rrd.cgi/memory/ex14memory.html
最初にそれを疑ったんですが、
あんまり、それっぽくもないんですよね(上記)。
libthr とかかしら。
http://mumumu.mu/mrtg/mrtg-rrd.cgi/memory/ex14memory.html
最初にそれを疑ったんですが、
あんまり、それっぽくもないんですよね(上記)。
libthr とかかしら。
58root▲ ★
NGNG いずれにせよ上がったら、
1024 thread も要らないっぽいので、 StartServers と ServerLimit を 3 にして、
768 に減らしてみるということで。
# 今日はもうだめぽ。
1024 thread も要らないっぽいので、 StartServers と ServerLimit を 3 にして、
768 に減らしてみるということで。
# 今日はもうだめぽ。
61root▲ ★
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
<IfModule mpm_worker_module>
StartServers 3
ServerLimit 3
ThreadLimit 256
ThreadsPerChild 256
MaxClients 768
MinSpareThreads 768
MaxSpareThreads 768
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
に変更。 < ex14
62root▲ ★
NGNG 結構、ネットワークからの割り込み入っていますね。
systat とかで見ると 2500 以上あります。< この時間
6.1R が出たら、DEVICE_POLLING にするということで。< ex14
systat とかで見ると 2500 以上あります。< この時間
6.1R が出たら、DEVICE_POLLING にするということで。< ex14
63root▲ ★
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 で動かすと、ちと危険かもですね。
やはり、もうちょっと減らそう。
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 で動かすと、ちと危険かもですね。
やはり、もうちょっと減らそう。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【石川】「能登には来なで」から1年の今、深刻なボランティア不足が続く能登「人手が足りない」★2 [七波羅探題★]
- 【芸能】タイミー、中居正広が出演するCM動画を削除… TBSの2番組は放送中止、フジは未定、日テレ『仰天ニュース』のみ放送予定★2 [冬月記者★]
- 日本製鉄のUSスチール買収中止命令 バイデン大統領発表 [香味焙煎★]
- 経営者「34万9000円の人件費を払っても、働く人の手取りは22万円にしかならない。給与税のような保険料が高すぎる」 ★2 [お断り★]
- 「帯状疱疹」が20〜40代に増えているワケはワクチン接種!? 回数も「一生に一度」ではない!? [Gecko★]
- 米バイデン大統領、日本製鉄のUSスチール買収阻止を決定 ワシントン・ポスト報道 ★3 [ぐれ★]
- 【三賀日恒例】!omikuji丼!damaで豚丼380円を出すスレ
- 【三賀日恒例】!omikuji丼!damaで豚丼380円を出すスレ
- 【豚】丼【380円】と【尊師】を出すスレ★102くらい
- 【三賀日恒例】!omikuji丼!damaで豚丼380円を出すスレ
- 【豚】丼【380円】と【尊師】を出すスレ★103くらい
- 【三賀日恒例】!omikuji丼!damaで豚丼380円を出すスレ