2ch特化型サーバ・ロケーション構築作戦のスレッドです。
・2ちゃんねるのサーバロケーション、PIEに関する関連作業・調整事項
・DNS登録・変更関連の各種作業や調整事項
・2ちゃんねるのサーバで採用しているOS、FreeBSDに関する情報・調整事項
・各種作戦・プロジェクトとの連携、プロジェクト間の連携
等を取り扱います。
現在、複数サーバによる連携により、
サーバ能力のさらなるスケールアップをめざすための「雪だるま作戦」が進行中です。
しかし、問題はあらゆる意味で山積の状態です。
また「2ちゃんねる証券取引所」をはじめとする「株」関連や「Be」の機能強化、
あるいは、次世代の携帯アクセス環境をめざした「べっかんこ作戦」の状況など、
気候も暖かくなり、そろそろ気になりだす季節にさしかかりつつある今日この頃、
あいかわらず2ちゃんねるは、刻一刻と確実に変化し続けています。
2ch特化型サーバ・ロケーション構築作戦 Part21
■ このスレッドは過去ログ倉庫に格納されています
1root▲ ★
NGNG2006/04/30(日) 21:02:33ID:oNtMiNwU0
ID末尾に機種判定が出ない板で、たまたま末尾がPになっただけだったりして
291root▲ ★
NGNG PowerDNS recursor 3.0.1
http://downloads.powerdns.com/documentation/html/changelog.html
http://blog.netherlabs.nl/articles/category/powerdns
高パフォーマンスか。
試してみる価値はあるかも。
live22系での使用とかを考えると、レイテンシが高いといいかな。
http://downloads.powerdns.com/documentation/html/changelog.html
http://blog.netherlabs.nl/articles/category/powerdns
高パフォーマンスか。
試してみる価値はあるかも。
live22系での使用とかを考えると、レイテンシが高いといいかな。
mutex が怪しい?
void *apr_atomic_casptr(volatile void **mem, void *with, const void *cmp)
{
void *prev;
#if APR_HAS_THREADS
apr_thread_mutex_t *lock = hash_mutex[ATOMIC_HASH(mem)];
CHECK(apr_thread_mutex_lock(lock));
prev = *(void **)mem;
if (prev == cmp) {
*mem = with;
}
CHECK(apr_thread_mutex_unlock(lock));
#else
prev = *(void **)mem;
if (prev == cmp) {
*mem = with;
}
#endif /* APR_HAS_THREADS */
return prev;
}
void *apr_atomic_casptr(volatile void **mem, void *with, const void *cmp)
{
void *prev;
#if APR_HAS_THREADS
apr_thread_mutex_t *lock = hash_mutex[ATOMIC_HASH(mem)];
CHECK(apr_thread_mutex_lock(lock));
prev = *(void **)mem;
if (prev == cmp) {
*mem = with;
}
CHECK(apr_thread_mutex_unlock(lock));
#else
prev = *(void **)mem;
if (prev == cmp) {
*mem = with;
}
#endif /* APR_HAS_THREADS */
return prev;
}
293root▲ ★
NGNG ex11, ex14 にも適用しておこう。< 上記Apache2.2のパッチ
296263
2006/05/01(月) 07:02:25ID:S0NHnq+v0 全OS対応の汎用パッチも作ってみました。
このパッチでも、Apacheが落ちずに使えてます。
>>292 >>294
下記パッチで修正されることから考えるに、apr_atomic_casptr()自身よりも
その使い方に問題があると思われます。
apr_atomic_casptr()が成功した場合、new_recycleがキューにpushされたということであり、
一旦キューに入ったからには、apr_atomic_casptr()からreturnしてきた段階で、
既にpopされて別のところで使われているかもしれません。
そういう意味で、new_recycle->nextを比較演算子の右辺として使うのは
よろしくないんじゃないかと思います。
なお、このパッチは汎用なので、
FreeBSDの場合は >>277-278 のパッチを使用した方がちょっとだけ速いです。
--- server/mpm/worker/fdqueue.c.origMon May 1 05:56:14 2006
+++ server/mpm/worker/fdqueue.cMon May 1 06:08:02 2006
@@ -95,10 +95,10 @@
sizeof(*new_recycle));
new_recycle->pool = pool_to_recycle;
for (;;) {
- new_recycle->next = queue_info->recycled_pools;
+ struct recycled_pool *prev;
+ prev = new_recycle->next = queue_info->recycled_pools;
if (apr_atomic_casptr((volatile void**)&(queue_info->recycled_pools),
- new_recycle, new_recycle->next) ==
- new_recycle->next) {
+ new_recycle, prev) == prev) {
break;
}
}
@@ -163,7 +163,7 @@
* now nonzero, it's safe for this function to
* return immediately.
*/
- if (queue_info->idlers == 0) {
+ while (queue_info->idlers == 0) {
rv = apr_thread_cond_wait(queue_info->wait_for_idler,
queue_info->idlers_mutex);
if (rv != APR_SUCCESS) {
このパッチでも、Apacheが落ちずに使えてます。
>>292 >>294
下記パッチで修正されることから考えるに、apr_atomic_casptr()自身よりも
その使い方に問題があると思われます。
apr_atomic_casptr()が成功した場合、new_recycleがキューにpushされたということであり、
一旦キューに入ったからには、apr_atomic_casptr()からreturnしてきた段階で、
既にpopされて別のところで使われているかもしれません。
そういう意味で、new_recycle->nextを比較演算子の右辺として使うのは
よろしくないんじゃないかと思います。
なお、このパッチは汎用なので、
FreeBSDの場合は >>277-278 のパッチを使用した方がちょっとだけ速いです。
--- server/mpm/worker/fdqueue.c.origMon May 1 05:56:14 2006
+++ server/mpm/worker/fdqueue.cMon May 1 06:08:02 2006
@@ -95,10 +95,10 @@
sizeof(*new_recycle));
new_recycle->pool = pool_to_recycle;
for (;;) {
- new_recycle->next = queue_info->recycled_pools;
+ struct recycled_pool *prev;
+ prev = new_recycle->next = queue_info->recycled_pools;
if (apr_atomic_casptr((volatile void**)&(queue_info->recycled_pools),
- new_recycle, new_recycle->next) ==
- new_recycle->next) {
+ new_recycle, prev) == prev) {
break;
}
}
@@ -163,7 +163,7 @@
* now nonzero, it's safe for this function to
* return immediately.
*/
- if (queue_info->idlers == 0) {
+ while (queue_info->idlers == 0) {
rv = apr_thread_cond_wait(queue_info->wait_for_idler,
queue_info->idlers_mutex);
if (rv != APR_SUCCESS) {
297root▲ ★
NGNG >>296
おつです。
ftp://ftp.peko.2ch.net/pub/patch/apache22/apache-2.2.0-fdqueue.c.patch
を更新しました。
FreeBSDのやつは、こちらにリネームしました。
ftp://ftp.peko.2ch.net/pub/patch/apache22/apache-2.2.0-fdqueue.c-freebsd.patch
で、今 live22 を見ると、また core dump していました。
通常状態でのものなので原因違うかもですが、一応。
おつです。
ftp://ftp.peko.2ch.net/pub/patch/apache22/apache-2.2.0-fdqueue.c.patch
を更新しました。
FreeBSDのやつは、こちらにリネームしました。
ftp://ftp.peko.2ch.net/pub/patch/apache22/apache-2.2.0-fdqueue.c-freebsd.patch
で、今 live22 を見ると、また core dump していました。
通常状態でのものなので原因違うかもですが、一応。
298root▲ ★
NGNG (gdb) info threads
130 Thread 0x809c000 (LWP 100274) 0x2828a833 in read () from /lib/libc.so.6
129 Thread 0x809c500 (LWP 100368) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
128 Thread 0x809c600 (LWP 100369) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
127 Thread 0x809c700 (LWP 100371) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
126 Thread 0x809c800 (LWP 100374) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
...
67 Thread 0x81de400 (LWP 101244) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
66 Thread 0x81de500 (LWP 101248) 0x28289973 in poll () from /lib/libc.so.6
65 Thread 0x81de600 (LWP 101252) 0x28289973 in poll () from /lib/libc.so.6
...
23 Thread 0x8241000 (LWP 101964) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
22 Thread 0x8241100 (LWP 101965) 0x2828a4b3 in kill () from /lib/libc.so.6
21 Thread 0x8241200 (LWP 101966) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
...
130 Thread 0x809c000 (LWP 100274) 0x2828a833 in read () from /lib/libc.so.6
129 Thread 0x809c500 (LWP 100368) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
128 Thread 0x809c600 (LWP 100369) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
127 Thread 0x809c700 (LWP 100371) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
126 Thread 0x809c800 (LWP 100374) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
...
67 Thread 0x81de400 (LWP 101244) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
66 Thread 0x81de500 (LWP 101248) 0x28289973 in poll () from /lib/libc.so.6
65 Thread 0x81de600 (LWP 101252) 0x28289973 in poll () from /lib/libc.so.6
...
23 Thread 0x8241000 (LWP 101964) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
22 Thread 0x8241100 (LWP 101965) 0x2828a4b3 in kill () from /lib/libc.so.6
21 Thread 0x8241200 (LWP 101966) 0x282884d3 in _umtx_op ()
from /lib/libc.so.6
...
299root▲ ★
NGNG 2 Thread 0x8262500 (LWP 102200) 0x28289973 in poll () from /lib/libc.so.6
1 Thread 0x8262600 (LWP 102201) 0x2828a593 in accept () from /lib/libc.so.6
(gdb) thread 22
[Switching to thread 22 (Thread 0x8241100 (LWP 101965))]#0 0x2828a4b3 in kill
() from /lib/libc.so.6
(gdb) where
#0 0x2828a4b3 in kill () from /lib/libc.so.6
Cannot access memory at address 0xb8d92a3c
(gdb)
ううむ。
1 Thread 0x8262600 (LWP 102201) 0x2828a593 in accept () from /lib/libc.so.6
(gdb) thread 22
[Switching to thread 22 (Thread 0x8241100 (LWP 101965))]#0 0x2828a4b3 in kill
() from /lib/libc.so.6
(gdb) where
#0 0x2828a4b3 in kill () from /lib/libc.so.6
Cannot access memory at address 0xb8d92a3c
(gdb)
ううむ。
300root▲ ★
NGNG signal 10問題、簡単なまとめ
1) 通常状態で散発的に発生(全サーバ)
httpd子プロセスの一つが散発的にsignal 10で落ちる
負荷にあんまり関係ないっぽい
2) 高負荷状態で集中的に発生(live22)
httpd子プロセスがたくさんsignal 10で落ちる
高負荷時に発生している模様
ということで上のほうのパッチで 2) が直るといいかなと。
1) 通常状態で散発的に発生(全サーバ)
httpd子プロセスの一つが散発的にsignal 10で落ちる
負荷にあんまり関係ないっぽい
2) 高負荷状態で集中的に発生(live22)
httpd子プロセスがたくさんsignal 10で落ちる
高負荷時に発生している模様
ということで上のほうのパッチで 2) が直るといいかなと。
2006/05/01(月) 13:04:06ID:J451Dwo00
302root▲ ★
NGNG 6.1-RC2
%uname -a
FreeBSD banana273.maido3.com 6.1-RC2 FreeBSD 6.1-RC2 #3: Sun Apr 30 22:25:34 PDT 2006 root@banana273.maido3.com:/var/src/sys/i386/compile/I386_BANANA_61 i386
%uname -a
FreeBSD banana273.maido3.com 6.1-RC2 FreeBSD 6.1-RC2 #3: Sun Apr 30 22:25:34 PDT 2006 root@banana273.maido3.com:/var/src/sys/i386/compile/I386_BANANA_61 i386
2006/05/01(月) 17:45:34ID:bDtDitjaO
thttpdはcgiをBasicサポトしてます。
というのを知ったがどうにも私ゃ知らん。
明日からCプログラミングを習います、はい。
というのを知ったがどうにも私ゃ知らん。
明日からCプログラミングを習います、はい。
305root▲ ★
NGNG2006/05/01(月) 20:49:31ID:6BqJQb+40
Apache 2.0.58と2.2.2がリリースされました。
http://www.apache.org/dist/httpd/Announcement2.0.html
http://www.apache.org/dist/httpd/Announcement2.2.html
2.2.2のほうはmod_proxyにいっぱい修正が入ってます。
http://www.apache.org/dist/httpd/Announcement2.0.html
http://www.apache.org/dist/httpd/Announcement2.2.html
2.2.2のほうはmod_proxyにいっぱい修正が入ってます。
307root▲ ★
2006/05/02(火) 01:36:41ID:???0 >>306
%cat /usr/ports/www/apache22/distinfo
MD5 (apache22/httpd-2.2.2.tar.bz2) = 9c759a9744436de6a6aa2ddbc49d6e81
SHA256 (apache22/httpd-2.2.2.tar.bz2) = 51f8e00ca27ba4d4259daeff30ce6efcdcf086d277ffb7130e215b492a6f77cc
SIZE (apache22/httpd-2.2.2.tar.bz2) = 4851887
MD5 (apache22/apr_dbd_mysql.c) = 59d26a91cb7f1492fea9ab3e6cd054fc
SHA256 (apache22/apr_dbd_mysql.c) = db204a0e9a89620bf890985383b637d201b418002a0976a2476c0c58783cc3a3
SIZE (apache22/apr_dbd_mysql.c) = 18999
対応早。< ports
ぼちぼち、入れてみるか。
%cat /usr/ports/www/apache22/distinfo
MD5 (apache22/httpd-2.2.2.tar.bz2) = 9c759a9744436de6a6aa2ddbc49d6e81
SHA256 (apache22/httpd-2.2.2.tar.bz2) = 51f8e00ca27ba4d4259daeff30ce6efcdcf086d277ffb7130e215b492a6f77cc
SIZE (apache22/httpd-2.2.2.tar.bz2) = 4851887
MD5 (apache22/apr_dbd_mysql.c) = 59d26a91cb7f1492fea9ab3e6cd054fc
SHA256 (apache22/apr_dbd_mysql.c) = db204a0e9a89620bf890985383b637d201b418002a0976a2476c0c58783cc3a3
SIZE (apache22/apr_dbd_mysql.c) = 18999
対応早。< ports
ぼちぼち、入れてみるか。
308root▲ ★
NGNG ./srclib/apr/dso/unix/dso.c と
./server/mpm/worker/fdqueue.c へのパッチは、
そのまま必要がありそうですね(変わっていない)。
食事の後ででも、ごにょごにょと。
./server/mpm/worker/fdqueue.c へのパッチは、
そのまま必要がありそうですね(変わっていない)。
食事の後ででも、ごにょごにょと。
310root▲ ★
NGNG 電源ですが、各方面からの情報により以下のことがわかりました。
1) 現在、以下のサーバが同じ主幹(MasterSwitch)からとられている。
live22, live22x1, live22x2, live22x3, live22x4, live22x5, cobra2247(= live22-2 候補),
news19, hobby7
2) この主幹の電源は現在、ほぼおなかいっぱいの状態である。
3) live22x4, live22x5, cobra2247 は現在遊んでいる。
フル稼働させるには、電源系統のリアレンジが必要と考えられる。
4) XOロケーションには、余裕のある主幹が別にある。
1) 現在、以下のサーバが同じ主幹(MasterSwitch)からとられている。
live22, live22x1, live22x2, live22x3, live22x4, live22x5, cobra2247(= live22-2 候補),
news19, hobby7
2) この主幹の電源は現在、ほぼおなかいっぱいの状態である。
3) live22x4, live22x5, cobra2247 は現在遊んでいる。
フル稼働させるには、電源系統のリアレンジが必要と考えられる。
4) XOロケーションには、余裕のある主幹が別にある。
311root▲ ★
NGNG で、最初は、news19 と hobby7 の XO 外への移設を考えていました。
しかし、今後これらのサーバもかなり近い近未来に雪だるまの一員になることが
じゅうぶんありうるのかなと、思いました。
ということで現在サービスインしていない 3) のサーバ3台を、
4) の主幹に移動するのが、いちばんよい気がしてきました。
問題なければ、この路線で Jim さんと Ryan さん(現地電源関係担当)に、
相談してみようかなと。
しかし、今後これらのサーバもかなり近い近未来に雪だるまの一員になることが
じゅうぶんありうるのかなと、思いました。
ということで現在サービスインしていない 3) のサーバ3台を、
4) の主幹に移動するのが、いちばんよい気がしてきました。
問題なければ、この路線で Jim さんと Ryan さん(現地電源関係担当)に、
相談してみようかなと。
313root▲ ★
NGNG pid 92982 (httpd), uid 2001: exited on signal 10
pid 92988 (httpd), uid 2001: exited on signal 10
pid 92987 (httpd), uid 2001: exited on signal 10
pid 92992 (httpd), uid 2001: exited on signal 10
pid 92984 (httpd), uid 2001: exited on signal 10
pid 94520 (httpd), uid 2001: exited on signal 10
pid 23880 (httpd), uid 2001: exited on signal 10
pid 92983 (httpd), uid 2001: exited on signal 10
pid 92986 (httpd), uid 2001: exited on signal 10
pid 92989 (httpd), uid 2001: exited on signal 10
pid 92990 (httpd), uid 2001: exited on signal 10
pid 23822 (httpd), uid 2001: exited on signal 10
pid 23763 (httpd), uid 2001: exited on signal 10
pid 92994 (httpd), uid 2001: exited on signal 10
pid 12481 (httpd), uid 2001: exited on signal 10
pid 92995 (httpd), uid 2001: exited on signal 10
pid 24104 (httpd), uid 2001: exited on signal 10
pid 92980 (httpd), uid 2001: exited on signal 10
いつもの現象か。
Apache 2.2.2 + patch でも、発生すると。
pid 92988 (httpd), uid 2001: exited on signal 10
pid 92987 (httpd), uid 2001: exited on signal 10
pid 92992 (httpd), uid 2001: exited on signal 10
pid 92984 (httpd), uid 2001: exited on signal 10
pid 94520 (httpd), uid 2001: exited on signal 10
pid 23880 (httpd), uid 2001: exited on signal 10
pid 92983 (httpd), uid 2001: exited on signal 10
pid 92986 (httpd), uid 2001: exited on signal 10
pid 92989 (httpd), uid 2001: exited on signal 10
pid 92990 (httpd), uid 2001: exited on signal 10
pid 23822 (httpd), uid 2001: exited on signal 10
pid 23763 (httpd), uid 2001: exited on signal 10
pid 92994 (httpd), uid 2001: exited on signal 10
pid 12481 (httpd), uid 2001: exited on signal 10
pid 92995 (httpd), uid 2001: exited on signal 10
pid 24104 (httpd), uid 2001: exited on signal 10
pid 92980 (httpd), uid 2001: exited on signal 10
いつもの現象か。
Apache 2.2.2 + patch でも、発生すると。
2006/05/02(火) 18:53:49ID:gD/Ndbla0
>>313
corefileも、やっぱり同じ感じで役に立たないですか?
corefileも、やっぱり同じ感じで役に立たないですか?
316root▲ ★
NGNG >>315
状況は全く同じですね。
まだ core 一つしか調べてないですが。
今の方針は明確に「勝ちに行く」なので、
修正が入っているはずの、最新の OS にバージョンアップをする予定。
ゴールデンウィーク明けまでに 6.1R が出ない場合、
6.1-RC2 でいこうと。
状況は全く同じですね。
まだ core 一つしか調べてないですが。
今の方針は明確に「勝ちに行く」なので、
修正が入っているはずの、最新の OS にバージョンアップをする予定。
ゴールデンウィーク明けまでに 6.1R が出ない場合、
6.1-RC2 でいこうと。
2006/05/02(火) 19:01:01ID:gD/Ndbla0
319モーマン☆鯛。
NGNG 乗り遅れ…
>>310
電源について,主幹と有りますが,そう呼んでしまうとトランス2次側からの電源が別系統で と
受け取ってしまいます。
要は「分電盤のブレーカーに空きがある」ということで良いのかしら?
という前提で 3)ですが,フル稼働時で万が一落ちた時に切り離し及び復帰が
問題なく行えるのか心配だったり。
逆に,x1〜x5がひとつのバックエンドとして利用でき,切り離し・復帰が問題なく行えるであろうと言うのであれば,
─live22
┌live22x1
├live22x2
└live22x3
┌live22x4
└live22x5
という具合に3系統に分けられると,フロントが落ちた時以外は冗長化が容易では無いかと。
>>310
電源について,主幹と有りますが,そう呼んでしまうとトランス2次側からの電源が別系統で と
受け取ってしまいます。
要は「分電盤のブレーカーに空きがある」ということで良いのかしら?
という前提で 3)ですが,フル稼働時で万が一落ちた時に切り離し及び復帰が
問題なく行えるのか心配だったり。
逆に,x1〜x5がひとつのバックエンドとして利用でき,切り離し・復帰が問題なく行えるであろうと言うのであれば,
─live22
┌live22x1
├live22x2
└live22x3
┌live22x4
└live22x5
という具合に3系統に分けられると,フロントが落ちた時以外は冗長化が容易では無いかと。
320root▲ ★
NGNG >>319
> 電源について,主幹と有りますが,そう呼んでしまうとトランス2次側からの電源が別系統で と
> 受け取ってしまいます。
すみませんです。
私の電気屋的知識は、所詮門前のなんたら。
> 要は「分電盤のブレーカーに空きがある」ということで良いのかしら?
です。
> という具合に3系統に分けられると,フロントが落ちた時以外は冗長化が容易では無いかと。
なるほどです。
ただまだ全貌を掌握しているわけではないので、
まずは一歩ずつ進めていこうかなと。
> 電源について,主幹と有りますが,そう呼んでしまうとトランス2次側からの電源が別系統で と
> 受け取ってしまいます。
すみませんです。
私の電気屋的知識は、所詮門前のなんたら。
> 要は「分電盤のブレーカーに空きがある」ということで良いのかしら?
です。
> という具合に3系統に分けられると,フロントが落ちた時以外は冗長化が容易では無いかと。
なるほどです。
ただまだ全貌を掌握しているわけではないので、
まずは一歩ずつ進めていこうかなと。
321root▲ ★
NGNG >>317
(gdb) thread 73
[Switching to thread 73 (Thread 0x81d5e00 (LWP 101639))]#0 0x2828b4b3 in kill
() from /lib/libc.so.6
(gdb) info frame
Stack level 0, frame at 0xbc0c5a40:
eip = 0x2828b4b3 in kill; saved eip Cannot access memory at address 0xbc0c5a3c
(gdb) info registers
eax 0x0 0
ecx 0xc3ae7fec -1011974164
edx 0xf7f5 63477
ebx 0xa 10
esp 0xbc0c5a3c 0xbc0c5a3c
ebp 0xbc0c5a58 0xbc0c5a58
esi 0x285c5000 677138432
edi 0x3c9 969
eip 0x2828b4b3 0x2828b4b3
eflags 0x200296 2097814
cs 0x33 51
ss 0x3b 59
ds 0x3b 59
es 0x3b 59
fs 0x3b 59
gs 0x1b 27
(gdb) thread 73
[Switching to thread 73 (Thread 0x81d5e00 (LWP 101639))]#0 0x2828b4b3 in kill
() from /lib/libc.so.6
(gdb) info frame
Stack level 0, frame at 0xbc0c5a40:
eip = 0x2828b4b3 in kill; saved eip Cannot access memory at address 0xbc0c5a3c
(gdb) info registers
eax 0x0 0
ecx 0xc3ae7fec -1011974164
edx 0xf7f5 63477
ebx 0xa 10
esp 0xbc0c5a3c 0xbc0c5a3c
ebp 0xbc0c5a58 0xbc0c5a58
esi 0x285c5000 677138432
edi 0x3c9 969
eip 0x2828b4b3 0x2828b4b3
eflags 0x200296 2097814
cs 0x33 51
ss 0x3b 59
ds 0x3b 59
es 0x3b 59
fs 0x3b 59
gs 0x1b 27
322root▲ ★
NGNG (gdb) thread 14
[Switching to thread 14 (Thread 0x8249900 (LWP 100922))]#0 0x2828b4b3 in kill
() from /lib/libc.so.6
(gdb) where
#0 0x2828b4b3 in kill () from /lib/libc.so.6
Cannot access memory at address 0xb858aa3c
(gdb) info frame
Stack level 0, frame at 0xb858aa40:
eip = 0x2828b4b3 in kill; saved eip Cannot access memory at address 0xb858aa3c
(gdb) info registers
eax 0x0 0
ecx 0xab590bbd -1420227651
edx 0xf7f5 63477
ebx 0xa 10
esp 0xb858aa3c 0xb858aa3c
ebp 0xb858aa58 0xb858aa58
esi 0x285b2000 677060608
edi 0xa7 167
eip 0x2828b4b3 0x2828b4b3
eflags 0x200296 2097814
cs 0x33 51
ss 0x3b 59
ds 0x3b 59
es 0x3b 59
fs 0x3b 59
gs 0x1b 27
[Switching to thread 14 (Thread 0x8249900 (LWP 100922))]#0 0x2828b4b3 in kill
() from /lib/libc.so.6
(gdb) where
#0 0x2828b4b3 in kill () from /lib/libc.so.6
Cannot access memory at address 0xb858aa3c
(gdb) info frame
Stack level 0, frame at 0xb858aa40:
eip = 0x2828b4b3 in kill; saved eip Cannot access memory at address 0xb858aa3c
(gdb) info registers
eax 0x0 0
ecx 0xab590bbd -1420227651
edx 0xf7f5 63477
ebx 0xa 10
esp 0xb858aa3c 0xb858aa3c
ebp 0xb858aa58 0xb858aa58
esi 0x285b2000 677060608
edi 0xa7 167
eip 0x2828b4b3 0x2828b4b3
eflags 0x200296 2097814
cs 0x33 51
ss 0x3b 59
ds 0x3b 59
es 0x3b 59
fs 0x3b 59
gs 0x1b 27
323root▲ ★
NGNG とりあえず、二つ分。
2006/05/03(水) 04:45:06ID:qpNDFpsT0
>>321-323
情報どうもです。
ちょっとだけ光が見えてきたような気がします。
こうなるとVMのマップ状態が知りたくなってくるんですが、
/usr/ports/sysutils/procmap を使用して、現在稼働中のhttpdのマップ状態を
見ることは可能でしょうか?
なお、procmapはprocfsを必要としますので、現在mountしてないのでしたら、
一時的にでもmountする必要があります。
あと、kern.dflssiz, kern.maxssiz, kern.sgrowsiz等は設定されてますでしょうか?
また、Apacheの設定でThreadStackSizeは設定されてますでしょうか?
情報どうもです。
ちょっとだけ光が見えてきたような気がします。
こうなるとVMのマップ状態が知りたくなってくるんですが、
/usr/ports/sysutils/procmap を使用して、現在稼働中のhttpdのマップ状態を
見ることは可能でしょうか?
なお、procmapはprocfsを必要としますので、現在mountしてないのでしたら、
一時的にでもmountする必要があります。
あと、kern.dflssiz, kern.maxssiz, kern.sgrowsiz等は設定されてますでしょうか?
また、Apacheの設定でThreadStackSizeは設定されてますでしょうか?
2006/05/03(水) 11:48:39ID:qpNDFpsT0
2006/05/03(水) 11:53:27ID:qpNDFpsT0
次に、>>326の結果を利用して、関数呼び出しの流れが取得可能か試す。
(gdb) p/a *(0xbc0c5a58 + 4)
$11 = ...
(gdb) p/a *(0xXXXXXXXX + 4)
$12 = ...
(gdb) p/a *(0xYYYYYYYY + 4)
...
うまくいけば、関数名が表示されると思います。
(gdb) p/a *(0xbc0c5a58 + 4)
$11 = ...
(gdb) p/a *(0xXXXXXXXX + 4)
$12 = ...
(gdb) p/a *(0xYYYYYYYY + 4)
...
うまくいけば、関数名が表示されると思います。
328root▲ ★
NGNG329む P211018235141.ppp.prin.ne.jp
2006/05/03(水) 18:57:25ID:IAaJAFY00 外からですが、
見ていると、プロセスあたりのスレッド数が32の時のほうが、パフォーマンスは出るような感じですね。
でもそれだと、虫を踏んだ時にLAがめちゃくちゃ上がって、瀕死状態になってしまうと。
見ていると、プロセスあたりのスレッド数が32の時のほうが、パフォーマンスは出るような感じですね。
でもそれだと、虫を踏んだ時にLAがめちゃくちゃ上がって、瀕死状態になってしまうと。
330root▲ ★
NGNG まずは。
live22、signal 10 でのダウン(虫ふみ)多数。
別途解析すすめる予定。
live22, live22x1 は重くなった局面あり。
プライベート接続側の受信バッファがあふれた模様。
May 3 02:30:34 <0.4> tiger2522 kernel: em1: RX overrun
May 3 02:47:17 <0.4> tiger2522 kernel: em1: RX overrun
May 3 05:04:32 <0.4> tiger2522 kernel: em1: RX overrun
May 3 05:00:00 <0.4> tiger2523 kernel: em1: RX overrun
May 3 05:00:00 <0.4> tiger2523 last message repeated 2 times
live22x2 特に異常なし。
live22x3 リブートかかった模様、原因不明(メッセージなし)。
それとは別にこんなメッセージが。
やや不吉なるも、とりあえず経過観察。
May 3 08:49:50 <0.2> tiger2525 kernel: ad0: TIMEOUT - READ_DMA retrying (1 retry left) LBA=94099079
live22、signal 10 でのダウン(虫ふみ)多数。
別途解析すすめる予定。
live22, live22x1 は重くなった局面あり。
プライベート接続側の受信バッファがあふれた模様。
May 3 02:30:34 <0.4> tiger2522 kernel: em1: RX overrun
May 3 02:47:17 <0.4> tiger2522 kernel: em1: RX overrun
May 3 05:04:32 <0.4> tiger2522 kernel: em1: RX overrun
May 3 05:00:00 <0.4> tiger2523 kernel: em1: RX overrun
May 3 05:00:00 <0.4> tiger2523 last message repeated 2 times
live22x2 特に異常なし。
live22x3 リブートかかった模様、原因不明(メッセージなし)。
それとは別にこんなメッセージが。
やや不吉なるも、とりあえず経過観察。
May 3 08:49:50 <0.2> tiger2525 kernel: ad0: TIMEOUT - READ_DMA retrying (1 retry left) LBA=94099079
331root▲ ★
NGNG ex14は大きな破綻なしか。
cobra、強いなぁ。
cobra、強いなぁ。
332root▲ ★
NGNG live22x3、また変なリブート入った。
おかしいな。
おかしいな。
333root▲ ★
NGNG live22x3 は、ログインして状況確認中。
メールチェックしてきます。
作業終わっているといいな。
メールチェックしてきます。
作業終わっているといいな。
334root▲ ★
NGNG live22x3、いけませんね。
受付嬢の設定変えて、フロントエンドからはずします。
受付嬢の設定変えて、フロントエンドからはずします。
335root▲ ★
NGNG live22x3 は、ハードウェアトラブルっぽいですね。
いろいろ手配します。
matd の設定いじって、とりあえずフロントエンドからはずしました。
いろいろ手配します。
matd の設定いじって、とりあえずフロントエンドからはずしました。
336root▲ ★
NGNG live22x4, live22x5, cobra2247(= live22-2 予定)
電源移設作業完了したとの連絡が入りました。
ということで、雪だるま作戦本格再開です。
OSバージョンアップ、設定仕込み等、たんたんとすすめるということで。
電源移設作業完了したとの連絡が入りました。
ということで、雪だるま作戦本格再開です。
OSバージョンアップ、設定仕込み等、たんたんとすすめるということで。
337root▲ ★
NGNG tiger2525(= live22x3)、remote KVM でチェックしました。
HDD コントローラからエラー出まくり。
HDD or HDD コントローラがあぼーんした模様。
tiger503/507/cobra2247 の作業ありがとうメールに、
tiger2525 の緊急対応を依頼しました。
# ちなみに、tiger2525 はフロントの1台なので、
# 仮に HDD 完全あぼーんでも、交換して OS 入れれば問題なし。
HDD コントローラからエラー出まくり。
HDD or HDD コントローラがあぼーんした模様。
tiger503/507/cobra2247 の作業ありがとうメールに、
tiger2525 の緊急対応を依頼しました。
# ちなみに、tiger2525 はフロントの1台なので、
# 仮に HDD 完全あぼーんでも、交換して OS 入れれば問題なし。
338root▲ ★
NGNG tiger2525 (= live22x3) は、HDD あぼーんとのこと。
HDD 交換・OS 再インストールで中の人と調整中。
HDD 交換・OS 再インストールで中の人と調整中。
339root▲ ★
NGNG もののけ姫までに、
・live22x3 復活 & フロントに再投入
・live22x4, live22x5, live22-2 投入 with FreeBSD 6.1-RC2 or 6.1R
・live22, live22x[12] OS バージョンアップ + Apache 更新
をめざすことにしよう。
・live22x3 復活 & フロントに再投入
・live22x4, live22x5, live22-2 投入 with FreeBSD 6.1-RC2 or 6.1R
・live22, live22x[12] OS バージョンアップ + Apache 更新
をめざすことにしよう。
341root▲ ★
NGNG 過去ログ(NFS経由)を、すいているlive22のパブリック側で
アクセスするようにしてみた。
アクセスするようにしてみた。
342root▲ ★
NGNG live22x4, live22x5 をフロントに再投入。
・OS は 6.1-RC2
%uname -a
FreeBSD tiger507.maido3.com 6.1-RC2 FreeBSD 6.1-RC2 #0: Wed May 3 23:09:45 PDT 2006 root@tiger507.maido3.com:/var/src/sys/i386/compile/I386_TIGER_61 i386
・Apache 2.2.2 + patch + worker MPM + libthr
・カーネルパッチ(FD_SETSIZE) とりあえず導入せず
・PREEMPTION とりあえず有効
・OS は 6.1-RC2
%uname -a
FreeBSD tiger507.maido3.com 6.1-RC2 FreeBSD 6.1-RC2 #0: Wed May 3 23:09:45 PDT 2006 root@tiger507.maido3.com:/var/src/sys/i386/compile/I386_TIGER_61 i386
・Apache 2.2.2 + patch + worker MPM + libthr
・カーネルパッチ(FD_SETSIZE) とりあえず導入せず
・PREEMPTION とりあえず有効
343root▲ ★
NGNG 以降の予定
cobra2247 稼動
フロントエンドを切り替えつつ、バージョンアップ
バックエンドバージョンアップ(この際にはサービス停止)
cobra2247 稼動
フロントエンドを切り替えつつ、バージョンアップ
バックエンドバージョンアップ(この際にはサービス停止)
344root▲ ★
NGNG cobra2247、バージョンアップの準備していたら
いきなりハングアップした。
KVM 画面もフリーズしている模様。ううむ。
いきなりハングアップした。
KVM 画面もフリーズしている模様。ううむ。
345root▲ ★
NGNG 見たところ、カーネルパニックしている模様。
ううむ。
ちょっと、しらべてみます。
ううむ。
ちょっと、しらべてみます。
346root▲ ★
NGNG savecore: reboot after panic: spin lock held too long
ううむ、これって。
ううむ、これって。
347root▲ ★
NGNG いったん single CPU の kernel に替えてみるか。
なんだかだけど。
なんだかだけど。
>>347
まだソースがガシガシ更新されているから虫がいるんですかね?
まだソースがガシガシ更新されているから虫がいるんですかね?
349root▲ ★
NGNG >>348
まだ 6.0R のままなんですよ。< cobra2247
make buildworld の間に panic したという。
ほぼ同じハードウェア構成で 6.0R な ex14 はちゃんと動いているので、
ハードウェア障害の予感も。
まだ 6.0R のままなんですよ。< cobra2247
make buildworld の間に panic したという。
ほぼ同じハードウェア構成で 6.0R な ex14 はちゃんと動いているので、
ハードウェア障害の予感も。
350root▲ ★
NGNG カーネル作っている間にまた固まった、、、。 < cobra2247
352root▲ ★
NGNG しばらく待ってだめなら、リブート要請を再度出すということで。
(さっき一度出したのですが、その後ちゃんとパニックしてくれたので
いったんキャンセルした)
(さっき一度出したのですが、その後ちゃんとパニックしてくれたので
いったんキャンセルした)
354root▲ ★
NGNG だめなようですね。
リブート要請します。< cobra2247
リブート要請します。< cobra2247
355root▲ ★
NGNG >>325
> あと、kern.dflssiz, kern.maxssiz, kern.sgrowsiz等は設定されてますでしょうか?
> また、Apacheの設定でThreadStackSizeは設定されてますでしょうか?
http://httpd.apache.org/docs/2.2/ja/mod/mpm_common.html#threadstacksize
スタックオーバー風呂ということなら、
大きくする、という手はあるのかも。
> あと、kern.dflssiz, kern.maxssiz, kern.sgrowsiz等は設定されてますでしょうか?
> また、Apacheの設定でThreadStackSizeは設定されてますでしょうか?
http://httpd.apache.org/docs/2.2/ja/mod/mpm_common.html#threadstacksize
スタックオーバー風呂ということなら、
大きくする、という手はあるのかも。
357root▲ ★
NGNG <IfModule mpm_worker_module>
ThreadStackSize 262144
StartServers 64
ServerLimit 64
ThreadLimit 32
ThreadsPerChild 32
MaxSpareThreads 2048
MinSpareThreads 2048
MaxSpareThreads 2048
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
にしてみた。< live22
前に read.cgi のことをやった時に、確か SunOS さんが
65536 がデフォルトって言っていたっぽいような気がするので、
とりあえずスタックサイズを4倍にしてみたつもり。
ThreadStackSize 262144
StartServers 64
ServerLimit 64
ThreadLimit 32
ThreadsPerChild 32
MaxSpareThreads 2048
MinSpareThreads 2048
MaxSpareThreads 2048
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
にしてみた。< live22
前に read.cgi のことをやった時に、確か SunOS さんが
65536 がデフォルトって言っていたっぽいような気がするので、
とりあえずスタックサイズを4倍にしてみたつもり。
358root▲ ★
NGNG %uname -a
FreeBSD tiger2524.maido3.com 6.1-RC2 FreeBSD 6.1-RC2 #0: Thu May 4 10:04:11 PDT 2006 root@tiger2524.maido3.com:/home/src/sys/i386/compile/I386_TINYTIGER_61 i386
@ live22x2
FreeBSD tiger2524.maido3.com 6.1-RC2 FreeBSD 6.1-RC2 #0: Thu May 4 10:04:11 PDT 2006 root@tiger2524.maido3.com:/home/src/sys/i386/compile/I386_TINYTIGER_61 i386
@ live22x2
2006/05/05(金) 03:33:44ID:b3qevcS80
>>357
FreeBSD 6.x のデフォルトのスレッドスタックサイズは1MBです。
FreeBSD 6.x のデフォルトのスレッドスタックサイズは1MBです。
360root▲ ★
NGNG >>355 >>357
リンク先を読んでみると、
スレッドスタックサイズのデフォルト値が比較的小さく設定されている プラットホーム
(例えば HP-UX) では、自動変数用の領域で大きな容量を 使用するサードパーティ製
モジュールのために Apache がクラッシュする 場合もあります。そのモジュールは他の
プラットホームでは スタックサイズが大きいために、快調に動作するかもしれません。
このタイプのクラッシュは、ThreadStackSize で OS のデフォルト値より大きな値を指定
することで解決します。 サードパーティ製モジュールでこの処置が必要であると記載
されている 場合か、Apache の出力するメッセージでスレッドスタックサイズが
小さすぎると指摘されている場合にのみ、この調整をしてください。
デフォルトスレッドスタックサイズが、Web サーバ用途に必要な量よりも 明らかに
大きすぎる場合、ThreadStackSize を OS のデフォルト値よりも小さな値にすることで、
子プロセスあたりの スレッド数をより多く持たせられるようになります。 このタイプの
調整は、テスト環境でウェブサーバを完全に テストできる場合に限って行なうべきです。
まれに多数のスタックが要求されるリクエストを受けることがあるかも しれないからです。
Web サーバの設定を変更すると、現在の ThreadStackSize の設定が取り消される
場合があります。
…ううむ、大きくするのがよいのか、小さくするのがよいのか。
あるいは実はあまり効果がないのか。
とりあえず、今は >>357 にしておくか。
リンク先を読んでみると、
スレッドスタックサイズのデフォルト値が比較的小さく設定されている プラットホーム
(例えば HP-UX) では、自動変数用の領域で大きな容量を 使用するサードパーティ製
モジュールのために Apache がクラッシュする 場合もあります。そのモジュールは他の
プラットホームでは スタックサイズが大きいために、快調に動作するかもしれません。
このタイプのクラッシュは、ThreadStackSize で OS のデフォルト値より大きな値を指定
することで解決します。 サードパーティ製モジュールでこの処置が必要であると記載
されている 場合か、Apache の出力するメッセージでスレッドスタックサイズが
小さすぎると指摘されている場合にのみ、この調整をしてください。
デフォルトスレッドスタックサイズが、Web サーバ用途に必要な量よりも 明らかに
大きすぎる場合、ThreadStackSize を OS のデフォルト値よりも小さな値にすることで、
子プロセスあたりの スレッド数をより多く持たせられるようになります。 このタイプの
調整は、テスト環境でウェブサーバを完全に テストできる場合に限って行なうべきです。
まれに多数のスタックが要求されるリクエストを受けることがあるかも しれないからです。
Web サーバの設定を変更すると、現在の ThreadStackSize の設定が取り消される
場合があります。
…ううむ、大きくするのがよいのか、小さくするのがよいのか。
あるいは実はあまり効果がないのか。
とりあえず、今は >>357 にしておくか。
363root▲ ★
NGNG だんだん、思い出してきました。
前は、dso 版 read.cgi でこの局面になったですね。
auto 変数で 512M のバッファとかとっていて、
それが Apache 2.0 の worker MPM ではうまく動かなかったんでした。
ちょっと、過去ログを見てみるか。
前は、dso 版 read.cgi でこの局面になったですね。
auto 変数で 512M のバッファとかとっていて、
それが Apache 2.0 の worker MPM ではうまく動かなかったんでした。
ちょっと、過去ログを見てみるか。
367root▲ ★
NGNG × 512M
○ 512K
○ 512K
それはヒープ? >>366
2006/05/05(金) 03:46:14ID:b3qevcS80
>>361
http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libthr/thread/thr_private.h.diff?r1=1.42&r2=1.43
なので、1048576。
あと、64bit だと2MBがデフォルトですね。
65536は、5.4までのデフォルト。
(5.5は6.xと同じになるみたいです)
http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libthr/thread/thr_private.h.diff?r1=1.42&r2=1.43
なので、1048576。
あと、64bit だと2MBがデフォルトですね。
65536は、5.4までのデフォルト。
(5.5は6.xと同じになるみたいです)
371root▲ ★
NGNG read.cgi の件は、これですね。
read.cgi再開発スレ Part2
http://qb5.2ch.net/test/read.cgi/operate/1105909861/428 あたり。
read.cgi再開発スレ Part2
http://qb5.2ch.net/test/read.cgi/operate/1105909861/428 あたり。
373root▲ ★
2006/05/05(金) 03:48:29ID:???0375root▲ ★
2006/05/05(金) 03:49:50ID:???0 ということは、これではないっぽい、、、のかな。
あるいは 1M にしたことが、副作用を呼んでいるのか。< live22x
# ってことは、Apacheのドキュメントにあるように
# あえて少なくする(5.4Rの時のように)ことも、ありなのかしら。
あるいは 1M にしたことが、副作用を呼んでいるのか。< live22x
# ってことは、Apacheのドキュメントにあるように
# あえて少なくする(5.4Rの時のように)ことも、ありなのかしら。
どれだけ同時に起動されていて
どのように使っているのかわからないので、一概には言えないけど、
もと 65536 を read.dso に渡していたならそれを巨大にするのはかなり危険かも、
ただし Apache等で必要ならまた別の話ですが、
どのように使っているのかわからないので、一概には言えないけど、
もと 65536 を read.dso に渡していたならそれを巨大にするのはかなり危険かも、
ただし Apache等で必要ならまた別の話ですが、
378root▲ ★
2006/05/05(金) 03:55:19ID:???0 >>377
live22 は read.cgi 動いてないですが、
フロントにも同じことがいえるのかもですね。 < read.cgi の話
で、FreeBSD 6.0R で変わった(でかくなった)とすると、
そこの部分を元のように*減らして*みる、というのは、
意味があることなのかも。
live22 は read.cgi 動いてないですが、
フロントにも同じことがいえるのかもですね。 < read.cgi の話
で、FreeBSD 6.0R で変わった(でかくなった)とすると、
そこの部分を元のように*減らして*みる、というのは、
意味があることなのかも。
379root▲ ★
NGNG FreeBSD 6.0R では、こうか。
/*
* Miscellaneous definitions.
*/
#define THR_STACK_DEFAULT (sizeof(void *) / 4 * 1024 * 1024)
/*
* Miscellaneous definitions.
*/
#define THR_STACK_DEFAULT (sizeof(void *) / 4 * 1024 * 1024)
380root▲ ★
NGNG SunOS さんが試したのは、5.3R か。
read.cgi再開発スレ Part2
http://qb5.2ch.net/test/read.cgi/operate/1105909861/482
5.4R まで … 一律64K
6.0R, 5.5R 以降 … 32bit だと 1M 、64bit だと 2M
ということですか。
read.cgi再開発スレ Part2
http://qb5.2ch.net/test/read.cgi/operate/1105909861/482
5.4R まで … 一律64K
6.0R, 5.5R 以降 … 32bit だと 1M 、64bit だと 2M
ということですか。
382root▲ ★
NGNG という前提で >>360 を読むと、
> ThreadStackSize を OS のデフォルト値よりも小さな値にすることで、
> 子プロセスあたりの スレッド数をより多く持たせられるようになります。
が、とても気になりますね。
> ThreadStackSize を OS のデフォルト値よりも小さな値にすることで、
> 子プロセスあたりの スレッド数をより多く持たせられるようになります。
が、とても気になりますね。
2006/05/05(金) 04:11:39ID:b3qevcS80
通常、減らすのは、
ThreadsPerChild に 3000 とか、大きな値を指定する場合で、
普通なら減らす必要はないと思います。
ThreadsPerChild に 3000 とか、大きな値を指定する場合で、
普通なら減らす必要はないと思います。
385root▲ ★
NGNG つまり、これで試してみることには、おおいに意味があるかもしれないと。
スタック使いすぎでスワップが発生しているなら意味があるのではないかなぁ
そうでないなら意味ないと思う
そうでないなら意味ないと思う
「スタック使いすぎで」はランボーないい方か、
子供たちにスタックを与えすぎて合計のメモリが逼迫しているならってことです
子供たちにスタックを与えすぎて合計のメモリが逼迫しているならってことです
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【日経世論調査】国民民主党、政党支持率14%で2位(18-39歳層首位) 立憲民主党抜く [蚤の市★]
- 新米出回っても高いままのコメ価格「農水省は静観」11月は6割上昇★4 [Gecko★]
- 閉店間際のスーパー「半額シール品」に猛ダッシュ 賞味期限に消費期限、気になるけれど大丈夫? [少考さん★]
- 【スクープ】中居正広が女性との間に重大トラブル、巨額の解決金を支払う 重病から復帰後の会食で深刻な問題が発生 ★28 [Ailuropoda melanoleuca★]
- 川崎重工、40年前から架空取引繰り返したか 週内にも調査結果公表 [蚤の市★]
- 【芸能】『M-1』連覇の令和ロマン 早朝に生漫才を披露 3連覇へ期待の声は「そういった意見は封殺したい」 [冬月記者★]
- 【朗報】黒伝説:悟空、Switch版発売決定 [632966346]
- 南青山のタワマン、家賃3万1600円wwwwwwwwwwww [271912485]
- アース製薬「ゴキブリや蚊に感謝している」Part2
- (ヽ´ん`)「ん、唇カサカサ…」(ヽ´👅`)ベロベロ(ヽ´~`)クチュクチュ(ヽ´👄`) [779857986]
- たまに見かけるポアーチェみたいな名前の車wwwwwwwww
- ラノベ作家「AED訴訟で無罪になっても、署名を集めて社会的に抹殺しようとしてくる世の中。男はどうすればいいの…?」 [535628963]