2ch特化型サーバ・ロケーション構築作戦のスレッドです。
・2ちゃんねるのサーバロケーション、PIEに関する関連作業・調整事項
・DNS登録・変更まわりの関連作業・調整事項
・2ちゃんねるのサーバで採用しているOS、FreeBSDに関する情報・調整事項
・各種作戦・プロジェクトとの連携、プロジェクト間の連携
等を取り扱います。
現在、複数サーバによる連携により、
サーバ能力のさらなるスケールアップをめざすための「雪だるま作戦」が進行中です。
雪だるま作戦は、現在以下のスレで雑談しながら進行中です。
<主な関連スレッド>
【しらたま】雪だるま作戦に思いを馳せながら雑談するスレッド Part11
http://aa5.2ch.net/test/read.cgi/nanmin/1121875871/
<主な関連リンク>
ブレーメンメーター: http://mumumu.mu/bremen/
MRTGによる統計情報: http://mumumu.mu/mrtg/
2ちゃんねる サーバ負荷監視所: http://ch2.ath.cx/load/
2ch 鯖監視係。: http://sv2ch.baila6.jp/
2ch CGI 軽量化: http://sunos.saita.ma/2ch-cgi-lw.html
2ch特化型サーバ・ロケーション構築作戦 Part19
■ このスレッドは過去ログ倉庫に格納されています
1root▲ ★
NGNG >>589
どもです。
でも、こっちがいいかも。
↓
【かぼちゃ】負荷監視所_20051123
http://live14.2ch.net/test/read.cgi/liveplus/1132747514/
どもです。
でも、こっちがいいかも。
↓
【かぼちゃ】負荷監視所_20051123
http://live14.2ch.net/test/read.cgi/liveplus/1132747514/
2005/12/12(月) 17:46:42ID:MXlgwhaVO
>>588
ちょwwwwwwヒドスwwwwwwwww
ちょwwwwwwヒドスwwwwwwwww
workerを利用して、
バックエンド(live22)の処理受付可能数を、>>566 の倍にしてみたつもり。
<IfModule worker.c>
StartServers 96
MinSpareThreads 512
MaxSpareThreads 3072
Serverlimit 144
ThreadLimit 32
ThreadsPerChild 32
MaxClients 4608
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
バックエンド(live22)の処理受付可能数を、>>566 の倍にしてみたつもり。
<IfModule worker.c>
StartServers 96
MinSpareThreads 512
MaxSpareThreads 3072
Serverlimit 144
ThreadLimit 32
ThreadsPerChild 32
MaxClients 4608
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
593stream ◆PNstream2s
2005/12/12(月) 21:22:40ID:bHUmkslz0 FreeBSD5.3Rでworkerがうまく動かないのってこれじゃないんですか?
■新春特別企画「雪だるま作戦」liveサーバの飛躍なるか!? Part1
http://qb5.2ch.net/operate/kako/1105/11050/1105035540.html
188 ◆cZfSunOs.U [sage] 05/03/10 20:55:04 ID:geHPxiLU0
http://www.mail-archive.com/dev@httpd.apache.org/msg24903.html
* FreeBSD, threads, and worker MPM. All seems to work fine
if you only have one worker process with many threads. Add
a second worker process and the accept lock seems to be
lost. This might be an APR issue with how it deals with
the child_init hook (i.e. the fcntl lock needs to be resynced).
More examination and analysis is required.
Status: Works with FreeBSD 5.3. Does not work in previous versions.
This has also been reported on Cygwin.
189 動け動けウゴウゴ2ちゃんねる [sage] 05/03/10 21:13:47 ID:KUErTDVR0
ほう。
つまり、1プロセスならば問題なさそう、という事ですね。
むしろ願ったりな状況なのかも。
■新春特別企画「雪だるま作戦」liveサーバの飛躍なるか!? Part1
http://qb5.2ch.net/operate/kako/1105/11050/1105035540.html
188 ◆cZfSunOs.U [sage] 05/03/10 20:55:04 ID:geHPxiLU0
http://www.mail-archive.com/dev@httpd.apache.org/msg24903.html
* FreeBSD, threads, and worker MPM. All seems to work fine
if you only have one worker process with many threads. Add
a second worker process and the accept lock seems to be
lost. This might be an APR issue with how it deals with
the child_init hook (i.e. the fcntl lock needs to be resynced).
More examination and analysis is required.
Status: Works with FreeBSD 5.3. Does not work in previous versions.
This has also been reported on Cygwin.
189 動け動けウゴウゴ2ちゃんねる [sage] 05/03/10 21:13:47 ID:KUErTDVR0
ほう。
つまり、1プロセスならば問題なさそう、という事ですね。
むしろ願ったりな状況なのかも。
596root▲ ★
NGNG news19, ex14, live22系でworker MPM(with -lpthread)を動かしてみた結果:
Apacheはどれも2.0.55を使用。
news19 (FreeBSD 5.3R):
・httpd落ちまくり、最終的には外部からのアクセス不能に、あわてて戻す
ex11 (FreeBSD 5.4R):
・概ね問題なし、ただしhttpdの数が減らない設定にしているはずなのに減っていく現象が発生
・アクセスが多くなればちゃんと増える
live22系 (FreeBSD 6.0R)
・現時点まで全く問題なし
ということでread.cgiのようなプログラムもさることながら、
OSそのものやスレッドライブラリの出来の違いも、大きいみたい。
昨日管理人から「worker MPMが普通にちゃんと動いたっていうの、初めて聞きましたー」
って言われたです。確かに、そうかも。
Apacheはどれも2.0.55を使用。
news19 (FreeBSD 5.3R):
・httpd落ちまくり、最終的には外部からのアクセス不能に、あわてて戻す
ex11 (FreeBSD 5.4R):
・概ね問題なし、ただしhttpdの数が減らない設定にしているはずなのに減っていく現象が発生
・アクセスが多くなればちゃんと増える
live22系 (FreeBSD 6.0R)
・現時点まで全く問題なし
ということでread.cgiのようなプログラムもさることながら、
OSそのものやスレッドライブラリの出来の違いも、大きいみたい。
昨日管理人から「worker MPMが普通にちゃんと動いたっていうの、初めて聞きましたー」
って言われたです。確かに、そうかも。
597root▲ ★
NGNG >>596
たぶん、これか。
FreeBSD/i386 5.4-RELEASE Release Notes
http://www.freebsd.org/releases/5.4R/relnotes-i386.html
> A number of bugfixes for libpthread have been merged from HEAD.
たぶん、これか。
FreeBSD/i386 5.4-RELEASE Release Notes
http://www.freebsd.org/releases/5.4R/relnotes-i386.html
> A number of bugfixes for libpthread have been merged from HEAD.
2005/12/13(火) 20:00:14ID:6UEXQNB00
>> 586
今年はもう受付嬢の実験はないようですが、
CNAMEをlive22y.peko.2ch.netにしておけば、
maido3の中のひとがいなくても、rootさんだけで
実験できるかも。
今年はもう受付嬢の実験はないようですが、
CNAMEをlive22y.peko.2ch.netにしておけば、
maido3の中のひとがいなくても、rootさんだけで
実験できるかも。
599▲ ◆cZfSunOs.U
2005/12/13(火) 23:33:11ID:pxLkBcfF0 worker MPM は,とりあえず順調なようですね.
>>571
>ThreadLimit = ThreadsPerChildより多くする、当面同じで
worker MPM では1プロセスあたりのスレッド数は固定なので,
ThreadLimit > ThreadsPerChild の状態にしてもメリットはなく,
むしろスレッド管理データ領域を必要以上に確保してメモリの無駄遣いになっちゃいます......
>>571
>ThreadLimit = ThreadsPerChildより多くする、当面同じで
worker MPM では1プロセスあたりのスレッド数は固定なので,
ThreadLimit > ThreadsPerChild の状態にしてもメリットはなく,
むしろスレッド管理データ領域を必要以上に確保してメモリの無駄遣いになっちゃいます......
2005/12/14(水) 02:07:57ID:LE2aS7aP0
FreeBSD 6.0R Apache2.2 + worker MPM
という人柱も海外にはチラホラ出現しているね。
という人柱も海外にはチラホラ出現しているね。
601root▲ ★
2005/12/14(水) 02:34:09ID:???0602root▲ ★
2005/12/14(水) 02:34:38ID:???0 >>601
<IfModule worker.c>
StartServers 144
MinSpareThreads 768
MaxSpareThreads 4608
Serverlimit 216
ThreadLimit 32
ThreadsPerChild 32
MaxClients 6912
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
<IfModule worker.c>
StartServers 144
MinSpareThreads 768
MaxSpareThreads 4608
Serverlimit 216
ThreadLimit 32
ThreadsPerChild 32
MaxClients 6912
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
603root▲ ★
NGNG ex14(FreeBSD 6.0R/amd64)もworker MPMに移行した。
問題ない模様。
問題ない模様。
604む@別のPC
2005/12/17(土) 22:13:14ID:8BhW9cSP0 http://live22.2ch.net/_service/bbsd-20051217.txt
で、2回ばかり、
> total worker threads = 4, idle worker threads = 1
があったので、
-n 32 => -n 48 にしてみた。@ bbsd
で、2回ばかり、
> total worker threads = 4, idle worker threads = 1
があったので、
-n 32 => -n 48 にしてみた。@ bbsd
605▲ ◆cZfSunOs.U
2005/12/18(日) 00:53:38ID:wzveF3mu0 >>604 PC 故障中乙です......
まぁ,現在の bbsd はスレッド数可変式なので足りなくなったら増えますけどね.
-n32 なら 4-32,-n48 なら 6-48 の範囲でスレッド数は変化します.
まぁ,現在の bbsd はスレッド数可変式なので足りなくなったら増えますけどね.
-n32 なら 4-32,-n48 なら 6-48 の範囲でスレッド数は変化します.
607root▲ ★
NGNG 来年の予定。
HEADS UP: Release schedule for 2006
http://lists.freebsd.org/pipermail/freebsd-stable/2005-December/020744.html
Jan 30: Freeze RELENG_5 and RELENG_6
Mar 20: Release FreeBSD 6.1
Apr 3: Release FreeBSD 5.5
Jun 12: Freeze RELENG_6
Jul 31: Release FreeBSD 6.2
Oct 23: Freeze RELENG_6
Dec 11: Release FreeBSD 6.3
5系は5.5Rでおしまい。
6系をがんがって3回出すと言っているけど、さて、どうなることやら。
HEADS UP: Release schedule for 2006
http://lists.freebsd.org/pipermail/freebsd-stable/2005-December/020744.html
Jan 30: Freeze RELENG_5 and RELENG_6
Mar 20: Release FreeBSD 6.1
Apr 3: Release FreeBSD 5.5
Jun 12: Freeze RELENG_6
Jul 31: Release FreeBSD 6.2
Oct 23: Freeze RELENG_6
Dec 11: Release FreeBSD 6.3
5系は5.5Rでおしまい。
6系をがんがって3回出すと言っているけど、さて、どうなることやら。
>>607
さっそく、FreeBSB 6.0R-p1になりました。
20051219: p1 FreeBSD-EN-05:04.nfs
Correct a locking issue in nfs_lookup() where a call to vrele()
might be made while holding the vnode mutex, which resulted
in kernel panics under certain load patterns.
さっそく、FreeBSB 6.0R-p1になりました。
20051219: p1 FreeBSD-EN-05:04.nfs
Correct a locking issue in nfs_lookup() where a call to vrele()
might be made while holding the vnode mutex, which resulted
in kernel panics under certain load patterns.
609root▲ ★
2005/12/22(木) 02:14:23ID:???0611root▲ ★
2005/12/22(木) 02:35:40ID:???0 *BSDのNFSでまともに動くのって、経験したことがないです。
2chでも大敗だったのは、記憶に新しいところ。
NFSをまじめに使いたいなら、Solarisしかないかなと。
rpc.lockdとか、ぼろいみたい。
2chでも大敗だったのは、記憶に新しいところ。
NFSをまじめに使いたいなら、Solarisしかないかなと。
rpc.lockdとか、ぼろいみたい。
2005/12/22(木) 07:47:05ID:dsgDEabi0
>*BSDのNFSでまともに動くのって、経験したことがないです。
Linuxはさらにダメぽ。
つまりroot★氏のいうとおりSolarisだけか……
Linuxはさらにダメぽ。
つまりroot★氏のいうとおりSolarisだけか……
2005/12/22(木) 10:49:16ID:rVVGEGh20
Linux の NFS は論外として、*BSD の NFS はそこそこ
というか、かなりよくなってきてると思うけど、
どの辺がダメぽなの?
というか、かなりよくなってきてると思うけど、
どの辺がダメぽなの?
614root▲ ★
2005/12/22(木) 12:05:16ID:???0 >>613
確かに昔よりは、相当いいかんじですね。それは認めるです。
NFS越しにfindを繰り返すとそのまま逝ってしまうとかいうことは、
なくなってきました。
・雪だるまで使った時は、ヘビーに読むと(read only mount)
I/O待ちになったまま、カーネル内でささる状況を観測
(psで見るとDの状態のままになる)
(FreeBSD 5.4R)
あと何より、
・NFS越しのロック機構(rpc.lockd)が相当しょぼい
これに尽きるかなと。
Solarisですら、rpc.lockdのパッチは相当出ていたように記憶しているです。
確かに昔よりは、相当いいかんじですね。それは認めるです。
NFS越しにfindを繰り返すとそのまま逝ってしまうとかいうことは、
なくなってきました。
・雪だるまで使った時は、ヘビーに読むと(read only mount)
I/O待ちになったまま、カーネル内でささる状況を観測
(psで見るとDの状態のままになる)
(FreeBSD 5.4R)
あと何より、
・NFS越しのロック機構(rpc.lockd)が相当しょぼい
これに尽きるかなと。
Solarisですら、rpc.lockdのパッチは相当出ていたように記憶しているです。
615root▲ ★
NGNG めもめも。
HEADS UP: MFC of local_startup changes to rc.d complete
http://lists.freebsd.org/pipermail/freebsd-stable/2005-December/020931.html
HEADS UP: MFC of local_startup changes to rc.d complete
http://lists.freebsd.org/pipermail/freebsd-stable/2005-December/020931.html
616root▲ ★
NGNG べっかんこ作戦関連のDNS登録依頼をします。
既に登録があるようなので、変更依頼になるはずです。
以下の設定変更をお願いします。
ログインアカウント情報等は、別途出します。
(現在)
+u.la:206.223.151.180
+www.u.la:206.223.151.180
(変更後)
+u.la:206.223.157.7
+www.u.la:206.223.157.7
既に登録があるようなので、変更依頼になるはずです。
以下の設定変更をお願いします。
ログインアカウント情報等は、別途出します。
(現在)
+u.la:206.223.151.180
+www.u.la:206.223.151.180
(変更後)
+u.la:206.223.157.7
+www.u.la:206.223.157.7
617root▲ ★
NGNG 続いて、第二弾のDNS登録依頼いきます。
(新規追加)
+same.u.la:206.223.157.12
+chirasi.u.la:206.223.157.17
+bbm.u.la:206.223.157.32
(新規追加)
+same.u.la:206.223.157.12
+chirasi.u.la:206.223.157.17
+bbm.u.la:206.223.157.32
620ピロリ
2005/12/24(土) 19:04:30ID:5ceyGHA+0 ありゃりゃ?
621ピロリ
2005/12/24(土) 19:05:26ID:5ceyGHA+0 誰が設定すれば良いのでしたっけ?
622root▲ ★
NGNG >>621
ns[12].maido3.com で設定すればいいはずですね。
%dig -t ns 0.157.223.206.in-addr.arpa.
; <<>> DiG 9.3.1 <<>> -t ns 0.157.223.206.in-addr.arpa.
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55384
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;0.157.223.206.in-addr.arpa. IN NS
;; ANSWER SECTION:
0.157.223.206.in-addr.arpa. 769 IN NS ns2.maido3.com.
0.157.223.206.in-addr.arpa. 769 IN NS ns1.maido3.com.
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Dec 24 02:22:28 2005
;; MSG SIZE rcvd: 90
ns[12].maido3.com で設定すればいいはずですね。
%dig -t ns 0.157.223.206.in-addr.arpa.
; <<>> DiG 9.3.1 <<>> -t ns 0.157.223.206.in-addr.arpa.
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55384
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;0.157.223.206.in-addr.arpa. IN NS
;; ANSWER SECTION:
0.157.223.206.in-addr.arpa. 769 IN NS ns2.maido3.com.
0.157.223.206.in-addr.arpa. 769 IN NS ns1.maido3.com.
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Dec 24 02:22:28 2005
;; MSG SIZE rcvd: 90
623ピロリ
2005/12/24(土) 20:54:08ID:5ceyGHA+0 はいー
624ピロリ
2005/12/24(土) 23:30:04ID:5ceyGHA+0 206.223.157.7 u.la
206.223.157.12 same.u.la
206.223.157.17 chirasi.u.la
206.223.157.32 bbm.u.la
DNS逆引き設定を登録しました。
206.223.157.12 same.u.la
206.223.157.17 chirasi.u.la
206.223.157.32 bbm.u.la
DNS逆引き設定を登録しました。
626▲ ◆cZfSunOs.U
2005/12/25(日) 01:45:36ID:kC90C2xX0 bbs.cgi とかで hostname によって処理を振り分けてる部分とかなかったでしたっけ.
load avg. に応じた処理変更とか.もっとも,DNS の逆引きがどうあれ gethostname() が
stigerXXX.maido3.com を返すのなら大丈夫でしょうけど.
load avg. に応じた処理変更とか.もっとも,DNS の逆引きがどうあれ gethostname() が
stigerXXX.maido3.com を返すのなら大丈夫でしょうけど.
627ピロリ
2005/12/25(日) 01:53:44ID:fD9qTbEU0 修正の方向で、
628root▲ ★
NGNG >>626
> もっとも,DNS の逆引きがどうあれ gethostname() が
> stigerXXX.maido3.com を返すのなら大丈夫でしょうけど.
のはずですね。
サーバごとの臨界LAを定めているところがありますが、
あそこはSys::Hostname を使っていたはず。
> もっとも,DNS の逆引きがどうあれ gethostname() が
> stigerXXX.maido3.com を返すのなら大丈夫でしょうけど.
のはずですね。
サーバごとの臨界LAを定めているところがありますが、
あそこはSys::Hostname を使っていたはず。
630root▲ ★
NGNG 虫を踏んだか。
類似例とか、あるのかしら。
【ブリ大根】負荷監視所_20051214
http://live14.2ch.net/test/read.cgi/liveplus/1134552855/523
523 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/12/25(日) 02:51:36 ID:tGhMF0WE0 ?
クラッシュダンプを収容中。(savecore)
vm_thread_new: kstack allocation failed
スタックを、使い切ったっぽい。
類似例とか、あるのかしら。
【ブリ大根】負荷監視所_20051214
http://live14.2ch.net/test/read.cgi/liveplus/1134552855/523
523 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/12/25(日) 02:51:36 ID:tGhMF0WE0 ?
クラッシュダンプを収容中。(savecore)
vm_thread_new: kstack allocation failed
スタックを、使い切ったっぽい。
631▲ ◆cZfSunOs.U
2005/12/25(日) 04:31:01ID:kC90C2xX0 http://www.monkey.org/freebsd/archive/freebsd-current/200505/msg00063.html
スレッド数が猛烈に増えるとカーネルメモリを食い尽くすってことですかね.
worker MPM で接続可能クライアント数を増やしたのもありますし(>>601-602).
そのカーネルメモリ領域を増やすとかできないんですかね......
スレッド数が猛烈に増えるとカーネルメモリを食い尽くすってことですかね.
worker MPM で接続可能クライアント数を増やしたのもありますし(>>601-602).
そのカーネルメモリ領域を増やすとかできないんですかね......
632root▲ ★
NGNG >>631
in sys/vm/vm_glue.c:
/*
* Get a kernel virtual address for this thread's kstack.
*/
ks = kmem_alloc_nofault(kernel_map,
(pages + KSTACK_GUARD_PAGES) * PAGE_SIZE);
if (ks == 0)
panic("vm_thread_new: kstack allocation failed");
if (KSTACK_GUARD_PAGES != 0) {
pmap_qremove(ks, KSTACK_GUARD_PAGES);
ks += KSTACK_GUARD_PAGES * PAGE_SIZE;
}
td->td_kstack = ks;
となっているのか。
in sys/vm/vm_glue.c:
/*
* Get a kernel virtual address for this thread's kstack.
*/
ks = kmem_alloc_nofault(kernel_map,
(pages + KSTACK_GUARD_PAGES) * PAGE_SIZE);
if (ks == 0)
panic("vm_thread_new: kstack allocation failed");
if (KSTACK_GUARD_PAGES != 0) {
pmap_qremove(ks, KSTACK_GUARD_PAGES);
ks += KSTACK_GUARD_PAGES * PAGE_SIZE;
}
td->td_kstack = ks;
となっているのか。
633root▲ ★
NGNG で、in vm/vm_kern.c:
/*
* kmem_alloc_nofault:
*
* Allocate a virtual address range with no underlying object and
* no initial mapping to physical memory. Any mapping from this
* range to physical memory must be explicitly created prior to
* its use, typically with pmap_qenter(). Any attempt to create
* a mapping on demand through vm_fault() will result in a panic.
*/
vm_offset_t
kmem_alloc_nofault(map, size)
vm_map_t map;
vm_size_t size;
{
vm_offset_t addr;
int result;
size = round_page(size);
addr = vm_map_min(map);
result = vm_map_find(map, NULL, 0,
&addr, size, TRUE, VM_PROT_ALL, VM_PROT_ALL, MAP_NOFAULT);
if (result != KERN_SUCCESS) {
return (0);
}
return (addr);
}
/*
* kmem_alloc_nofault:
*
* Allocate a virtual address range with no underlying object and
* no initial mapping to physical memory. Any mapping from this
* range to physical memory must be explicitly created prior to
* its use, typically with pmap_qenter(). Any attempt to create
* a mapping on demand through vm_fault() will result in a panic.
*/
vm_offset_t
kmem_alloc_nofault(map, size)
vm_map_t map;
vm_size_t size;
{
vm_offset_t addr;
int result;
size = round_page(size);
addr = vm_map_min(map);
result = vm_map_find(map, NULL, 0,
&addr, size, TRUE, VM_PROT_ALL, VM_PROT_ALL, MAP_NOFAULT);
if (result != KERN_SUCCESS) {
return (0);
}
return (addr);
}
634root▲ ★
NGNG #ifndef KSTACK_MAX_PAGES
#define KSTACK_MAX_PAGES 32
#endif
って、なってるですね。(in vm/vm_glue.c)
#define KSTACK_MAX_PAGES 32
#endif
って、なってるですね。(in vm/vm_glue.c)
635root▲ ★
NGNG で、
/*
* Create the kernel stack (including pcb for i386) for a new thread.
* This routine directly affects the fork perf for a process and
* create performance for a thread.
*/
void
vm_thread_new(struct thread *td, int pages)
となっているですね。うむむ。
/*
* Create the kernel stack (including pcb for i386) for a new thread.
* This routine directly affects the fork perf for a process and
* create performance for a thread.
*/
void
vm_thread_new(struct thread *td, int pages)
となっているですね。うむむ。
636root▲ ★
NGNG Googleしてみると、こんな記述が。
http://unix.derkeiler.com/Mailing-Lists/FreeBSD/performance/2005-08/0004.html
Hrm... I'll suggest one tunable:
options KSTACK_MAX_PAGES=32 # Maximum pages to give the kernel stack
Don't crank it up too far, but 64 seems to be a decent number in my
experience. I'd pimp more settings, but given that tuning is still
closer to an art than a science (it wouldn't be if someone catalogued
settings for various applications and hardware combinations, but I
digress), I'll suggest having you take a peak at the various NOTES
files and some of the headers, such as: src/sys/amd64/include/param.h.
I've divulged more in the archives, too. -sc
http://unix.derkeiler.com/Mailing-Lists/FreeBSD/performance/2005-08/0004.html
Hrm... I'll suggest one tunable:
options KSTACK_MAX_PAGES=32 # Maximum pages to give the kernel stack
Don't crank it up too far, but 64 seems to be a decent number in my
experience. I'd pimp more settings, but given that tuning is still
closer to an art than a science (it wouldn't be if someone catalogued
settings for various applications and hardware combinations, but I
digress), I'll suggest having you take a peak at the various NOTES
files and some of the headers, such as: src/sys/amd64/include/param.h.
I've divulged more in the archives, too. -sc
637root▲ ★
NGNG …でかくしてもよさそうな気がするけど、
よく調べてからでないと、ちと、こわいかも。
よく調べてからでないと、ちと、こわいかも。
638root▲ ★
NGNG さらに。
int kstack_pages = KSTACK_PAGES;
SYSCTL_INT(_kern, OID_AUTO, kstack_pages, CTLFLAG_RD, &kstack_pages, 0, "");
sysctl tunableか。
i386では2、amd64では4の模様。
(live22)
%sysctl -a | grep kstack
kern.kstack_pages: 2
(ex14)
%sysctl -a | grep kstack
kern.kstack_pages: 4
int kstack_pages = KSTACK_PAGES;
SYSCTL_INT(_kern, OID_AUTO, kstack_pages, CTLFLAG_RD, &kstack_pages, 0, "");
sysctl tunableか。
i386では2、amd64では4の模様。
(live22)
%sysctl -a | grep kstack
kern.kstack_pages: 2
(ex14)
%sysctl -a | grep kstack
kern.kstack_pages: 4
639root▲ ★
NGNG640root▲ ★
NGNG あと、bbsd ですが、そんなわけで -n 24 に減らしましたが、
もっと小さな値でも、いいのかも、かも。
もっと小さな値でも、いいのかも、かも。
2005/12/25(日) 12:48:31ID:ssnhnbTl0
643▲ ◆cZfSunOs.U
2005/12/25(日) 16:35:56ID:kC90C2xX0 全プロセストータルでのスレッド数が増えすぎないようにということでは,
MaxClients の引き下げとかいうあたりですかね.
# こういうのは,カーネルパニックじゃなくシステムコールのエラーリターンのように
# もっと graceful なやり方にできんものか,とも思ったりもしますが......
MaxClients の引き下げとかいうあたりですかね.
# こういうのは,カーネルパニックじゃなくシステムコールのエラーリターンのように
# もっと graceful なやり方にできんものか,とも思ったりもしますが......
644root▲ ★
2005/12/25(日) 17:15:19ID:???0 >>643
<IfModule worker.c>
StartServers 144
MinSpareThreads 768
MaxSpareThreads 4608
Serverlimit 216
ThreadLimit 32
ThreadsPerChild 32
MaxClients 6912
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
↓
<IfModule worker.c>
StartServers 96
MinSpareThreads 512
MaxSpareThreads 3072
Serverlimit 144
ThreadLimit 32
ThreadsPerChild 32
MaxClients 4608
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
に変更してみた。@ live22
<IfModule worker.c>
StartServers 144
MinSpareThreads 768
MaxSpareThreads 4608
Serverlimit 216
ThreadLimit 32
ThreadsPerChild 32
MaxClients 6912
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
↓
<IfModule worker.c>
StartServers 96
MinSpareThreads 512
MaxSpareThreads 3072
Serverlimit 144
ThreadLimit 32
ThreadsPerChild 32
MaxClients 4608
MaxRequestsPerChild 32000000
MaxMemFree 64000
</IfModule>
に変更してみた。@ live22
645root▲ ★
2005/12/25(日) 21:07:01ID:???0 【ブリ大根】負荷監視所_20051214
http://live14.2ch.net/test/read.cgi/liveplus/1134552855/709
カーネルパニックする前に救い出した。
bbsdが凍り付いて、LAがどんどん上がっている状態だった。
とりあえず、-n 24 を -n 8 にして、
httpdとbbsdをリスタートして、再開。
http://live14.2ch.net/test/read.cgi/liveplus/1134552855/709
カーネルパニックする前に救い出した。
bbsdが凍り付いて、LAがどんどん上がっている状態だった。
とりあえず、-n 24 を -n 8 にして、
httpdとbbsdをリスタートして、再開。
2005/12/25(日) 21:31:46ID:ssnhnbTl0
>>630
よく考えたら、panicの直接の原因はkstack allocation failedだけど、
別の何かが大量にメモリを掴んでいることが真の問題とかいうことも考えられますよね。
# vmstat -mz -M /var/crash/vmcore.1
とかして、何か変わったところとかはありますか?
よく考えたら、panicの直接の原因はkstack allocation failedだけど、
別の何かが大量にメモリを掴んでいることが真の問題とかいうことも考えられますよね。
# vmstat -mz -M /var/crash/vmcore.1
とかして、何か変わったところとかはありますか?
647root▲ ★
2005/12/25(日) 21:40:03ID:???0650▲ ◆cZfSunOs.U
2005/12/26(月) 01:11:40ID:o2brHKko0 >>645
>カーネルパニックする前に救い出した。
>bbsdが凍り付いて、LAがどんどん上がっている状態だった。
う〜む......その凍り付いてる時にどんな状態だかがわかればってとこですが......<bbsd
しかし
http://aa5.2ch.net/test/read.cgi/nanmin/1135352063/164
>[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
なんですよね...... でも,
http://live14.2ch.net/test/read.cgi/liveplus/1134552855/709
>(killでも死なない、kill -9で死んだ)。
ってことはメインスレッドも凍ってたってことでしょうから,
メインスレッドの状態だけでもわかれば手がかりになるかも......
>カーネルパニックする前に救い出した。
>bbsdが凍り付いて、LAがどんどん上がっている状態だった。
う〜む......その凍り付いてる時にどんな状態だかがわかればってとこですが......<bbsd
しかし
http://aa5.2ch.net/test/read.cgi/nanmin/1135352063/164
>[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
なんですよね...... でも,
http://live14.2ch.net/test/read.cgi/liveplus/1134552855/709
>(killでも死なない、kill -9で死んだ)。
ってことはメインスレッドも凍ってたってことでしょうから,
メインスレッドの状態だけでもわかれば手がかりになるかも......
2005/12/26(月) 01:50:02ID:9cjQ9jL80
rootさん、こんばんはーヾ('-')ノ
2005/12/26(月) 10:13:19ID:f+3Ce4xM0
むさんいつぞやはお世話になりましたー。
本業も一息つきそうなので、手伝えることがないか
このスレに参加させてもらいますー。
本業も一息つきそうなので、手伝えることがないか
このスレに参加させてもらいますー。
655▲ ◆cZfSunOs.U
2005/12/26(月) 13:04:26ID:T39eMwpp0 pthread_cond_signal(), pthread_cond_broadcast(), pthread_cond_wait()
pthread_mutex_lock(), pthread_mutex_unlock()
pthread_rwlock_rdlock(), pthread_rwlock_wrlock(), pthread_rwlock_unlock()
これらがエラーになったら abort() するようにしてみますた<bbsd, matd
通常ならこれらがエラーになるのは考えられないんですが,
その考えられないことが発生してるかも知れないので......
で,abort() すると /tmp に core dump します(setuid プロセスになったりしていなければ).
pthread_mutex_lock(), pthread_mutex_unlock()
pthread_rwlock_rdlock(), pthread_rwlock_wrlock(), pthread_rwlock_unlock()
これらがエラーになったら abort() するようにしてみますた<bbsd, matd
通常ならこれらがエラーになるのは考えられないんですが,
その考えられないことが発生してるかも知れないので......
で,abort() すると /tmp に core dump します(setuid プロセスになったりしていなければ).
656root▲ ★
2005/12/26(月) 14:26:06ID:???02005/12/26(月) 20:56:00ID:9cjQ9jL80
最近は鯖さんが氏んでも即復帰する体制作りやってるんですか?ヾ('-')ノ
658root▲ ★
2005/12/26(月) 23:17:59ID:???0NGNG
「絶対繋がる2ちゃんねる」への道
661root▲ ★
2005/12/27(火) 14:51:22ID:???0 …ということで、DNS登録依頼をするです。
雪だるまシステム開発用になります。
以下の登録をよろしくお願いします。
(新規登録)
+snow.2ch.net:206.223.152.30
雪だるまシステム開発用になります。
以下の登録をよろしくお願いします。
(新規登録)
+snow.2ch.net:206.223.152.30
2005/12/27(火) 15:45:27ID:zlg8K/ms0
やほーでsnow.2ch.net見えますた
2005/12/27(火) 16:17:18ID:k/hYTpBl0
>>662
いつもはえーですな
いつもはえーですな
2005/12/27(火) 16:57:14ID:YplRGJUj0
>>rootタン
何のことかよくわかりませんが、いつもお世話になっております
これからも頑張ってください
何のことかよくわかりませんが、いつもお世話になっております
これからも頑張ってください
NGNG
そして、実験用新板が生まれた…
http://snow.2ch.net/alaska/
http://snow.2ch.net/alaska/
668動け動けウゴウゴ2ちゃんねる
2005/12/28(水) 12:37:07ID:Pk1X6/2M0669root▲ ★
NGNG670root▲ ★
NGNG UNIX timeは別に関係ないから(だって所詮は単なる数値)、
dateコマンドとかローカルタイムにする(zoneinfo読む系)ところで、1秒ずれるのかな。
で、ずっとずれ続けると。
FreeBSDだと、
確か5.4R以降じゃないと2006年の閏秒は入ってないから、
そういうやつ(ほとんどのbanana、かなりのtiger)は、何かしないといけないのかな。
ちょっと調べてまとめて、必要ならmaido3.comの中の人にも作業お願いしようっと。
dateコマンドとかローカルタイムにする(zoneinfo読む系)ところで、1秒ずれるのかな。
で、ずっとずれ続けると。
FreeBSDだと、
確か5.4R以降じゃないと2006年の閏秒は入ってないから、
そういうやつ(ほとんどのbanana、かなりのtiger)は、何かしないといけないのかな。
ちょっと調べてまとめて、必要ならmaido3.comの中の人にも作業お願いしようっと。
671root▲ ★
NGNG いろいろ調べ中。
結論からいうと、
FreeBSDでは、デフォルトでは閏秒はシステムに入っていない状態なので、
「デフォルト状態で」「NTPでUTCに対して時間を合わせている限り」、
今回の閏秒挿入に関して、何らかのアクションを起こす必要はない。
つまり、我々は何もする必要がない。
になります。
TAIに合わせている場合(例えばclockspeedとかを使っている場合など)は、
FreeBSDでは最初にそもそも対応が必要だったはずで、
その対応と同じことを、ファイルを更新したうえで、再度やる必要がある。
ことになるはず。
結論からいうと、
FreeBSDでは、デフォルトでは閏秒はシステムに入っていない状態なので、
「デフォルト状態で」「NTPでUTCに対して時間を合わせている限り」、
今回の閏秒挿入に関して、何らかのアクションを起こす必要はない。
つまり、我々は何もする必要がない。
になります。
TAIに合わせている場合(例えばclockspeedとかを使っている場合など)は、
FreeBSDでは最初にそもそも対応が必要だったはずで、
その対応と同じことを、ファイルを更新したうえで、再度やる必要がある。
ことになるはず。
672root▲ ★
NGNG 重要なFAQ:
ネットワ−クによる時刻情報提供サービス(NTPサ−ビス)のうるう秒対応
http://jjy.nict.go.jp/news/leaps.html#l4
NTPの取り扱う時刻は1900年1月1日を起点とした時系ですが、
過去のうるう秒を積算していません。積算秒数をお知らせします。
日本標準時で1月1日8時59分60秒(UTCでは12月31日23時59分60秒)と
9時0分0秒(UTCでは1月1日0時0分0秒)は9時0分0秒に相当する
同じ積算秒数をカウントします。
すなわち、60秒と0秒は、同じ時刻を2度カウントすることになります。
ネットワ−クによる時刻情報提供サービス(NTPサ−ビス)のうるう秒対応
http://jjy.nict.go.jp/news/leaps.html#l4
NTPの取り扱う時刻は1900年1月1日を起点とした時系ですが、
過去のうるう秒を積算していません。積算秒数をお知らせします。
日本標準時で1月1日8時59分60秒(UTCでは12月31日23時59分60秒)と
9時0分0秒(UTCでは1月1日0時0分0秒)は9時0分0秒に相当する
同じ積算秒数をカウントします。
すなわち、60秒と0秒は、同じ時刻を2度カウントすることになります。
673root▲ ★
NGNG こんなページが。djbか。
ほんとに、同じ時刻を2度カウントするのね。すごいな。
http://cr.yp.to/proto/utctai.html
1997-06-30 23:59:59.7 UTC -> 867715199.7 xntpd
1997-06-30 23:59:59.8 UTC -> 867715199.8 xntpd
1997-06-30 23:59:59.9 UTC -> 867715199.9 xntpd
1997-06-30 23:59:60.0 UTC -> 867715200.0 xntpd
1997-06-30 23:59:60.1 UTC -> 867715200.1 xntpd
1997-06-30 23:59:60.2 UTC -> 867715200.2 xntpd
1997-06-30 23:59:60.3 UTC -> 867715200.3 xntpd
1997-06-30 23:59:60.4 UTC -> 867715200.4 xntpd
1997-06-30 23:59:60.5 UTC -> 867715200.5 xntpd
1997-06-30 23:59:60.6 UTC -> 867715200.6 xntpd
1997-06-30 23:59:60.7 UTC -> 867715200.7 xntpd
1997-06-30 23:59:60.8 UTC -> 867715200.8 xntpd
1997-06-30 23:59:60.9 UTC -> 867715200.9 xntpd
1997-07-01 00:00:00.0 UTC -> 867715200.0 xntpd
1997-07-01 00:00:00.1 UTC -> 867715200.1 xntpd
1997-07-01 00:00:00.2 UTC -> 867715200.2 xntpd
ほんとに、同じ時刻を2度カウントするのね。すごいな。
http://cr.yp.to/proto/utctai.html
1997-06-30 23:59:59.7 UTC -> 867715199.7 xntpd
1997-06-30 23:59:59.8 UTC -> 867715199.8 xntpd
1997-06-30 23:59:59.9 UTC -> 867715199.9 xntpd
1997-06-30 23:59:60.0 UTC -> 867715200.0 xntpd
1997-06-30 23:59:60.1 UTC -> 867715200.1 xntpd
1997-06-30 23:59:60.2 UTC -> 867715200.2 xntpd
1997-06-30 23:59:60.3 UTC -> 867715200.3 xntpd
1997-06-30 23:59:60.4 UTC -> 867715200.4 xntpd
1997-06-30 23:59:60.5 UTC -> 867715200.5 xntpd
1997-06-30 23:59:60.6 UTC -> 867715200.6 xntpd
1997-06-30 23:59:60.7 UTC -> 867715200.7 xntpd
1997-06-30 23:59:60.8 UTC -> 867715200.8 xntpd
1997-06-30 23:59:60.9 UTC -> 867715200.9 xntpd
1997-07-01 00:00:00.0 UTC -> 867715200.0 xntpd
1997-07-01 00:00:00.1 UTC -> 867715200.1 xntpd
1997-07-01 00:00:00.2 UTC -> 867715200.2 xntpd
674root▲ ★
NGNG ということで、今回の件をまとめると、
0) NTPで時刻あわせをしているシステムでは、
今回何の対応もしなくてよい。
つまり、私もmaido3.comの中の人も、何も作業しなくてよい。
1) ntpdは増える閏秒が発生した場合、
同じ秒を2回繰り返すことにより、つじつま合わせをしている。
2) 結果として今回、1136073600 というUNIX timeな時間が、
2ちゃんねる内において1秒間ではなく、2秒間存在することになる。
3) その際のlocaltime()ライブラリによる時間表示は、
Sun Jan 1 09:00:00 JST 2006 となる。
4) つまり、2006/01/01(日) 08:59:60 という表示が
2ちゃんねるにおいて 投稿日: のところに現れることはなく、
2006/01/01(日) 09:00:00 という表示が、2秒間発生することになる。
ということになるのかなと。
0) NTPで時刻あわせをしているシステムでは、
今回何の対応もしなくてよい。
つまり、私もmaido3.comの中の人も、何も作業しなくてよい。
1) ntpdは増える閏秒が発生した場合、
同じ秒を2回繰り返すことにより、つじつま合わせをしている。
2) 結果として今回、1136073600 というUNIX timeな時間が、
2ちゃんねる内において1秒間ではなく、2秒間存在することになる。
3) その際のlocaltime()ライブラリによる時間表示は、
Sun Jan 1 09:00:00 JST 2006 となる。
4) つまり、2006/01/01(日) 08:59:60 という表示が
2ちゃんねるにおいて 投稿日: のところに現れることはなく、
2006/01/01(日) 09:00:00 という表示が、2秒間発生することになる。
ということになるのかなと。
2005/12/28(水) 16:39:00ID:GSlwE4iB0
つまり、記念カキコしても無駄ですよと
それはそれで寂しいな
それはそれで寂しいな
if( time == 1136073600 and $$ % 10 == 0){ $FOX->{なんたら} =~ s/\b09:00:00/08:59:60/ }
wktk
wktk
2005/12/28(水) 17:01:05ID:7YQ9faMd0
1/1はX:YY:XX.aaにしてみるとか
無駄かな?
無駄かな?
2005/12/28(水) 17:01:37ID:txPabSy90
ログが2個できて壊れる可能性があると?特にVIP
680root▲ ★
NGNG qb6には、Time::HiRes が入ってないのね。
必要なのは一部サーバだけだろうから、
live22xとex14あたりだけ入れてみるとかかなと。
必要なのは一部サーバだけだろうから、
live22xとex14あたりだけ入れてみるとかかなと。
2005/12/28(水) 18:19:59ID:txPabSy90
あっち行ったりこっち行ったり大変そうですが頑張ってください。
>>682
あ、使えないか、、、λ.....
あ、使えないか、、、λ.....
684▲ ◆cZfSunOs.U
2005/12/28(水) 21:13:17ID:k/jEkinS0 http://www.bsddiary.net/doc/ntpd-leapseconds.html
># cd /usr/src/share/zoneinfo/
># vi leapseconds
>Leap 1998 の行の下に、以下の行を挿入する。
>Leap 2005 Dec 31 23:59:60 + S
>
># make clean
># make LEAPSECONDS=yes install
># cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
これで「60秒」が出現するのかな......
># cd /usr/src/share/zoneinfo/
># vi leapseconds
>Leap 1998 の行の下に、以下の行を挿入する。
>Leap 2005 Dec 31 23:59:60 + S
>
># make clean
># make LEAPSECONDS=yes install
># cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
これで「60秒」が出現するのかな......
2005/12/29(木) 01:03:05ID:vxoxULLv0
祭りたいのか?祭りたいんだなw
686root▲ ★
2005/12/29(木) 01:42:25ID:???0 >>684
FreeBSD 5.4R以降では、最初から2005年12月31日のエントリが入っているです。
で、時刻合わせをTAIでやってやれば、できなくはないのかな。
clockspeedとか使ってみるかんじか。
FreeBSD 5.4R以降では、最初から2005年12月31日のエントリが入っているです。
で、時刻合わせをTAIでやってやれば、できなくはないのかな。
clockspeedとか使ってみるかんじか。
687root▲ ★
NGNG 1/100秒対応:
通らないところで、use したものがない場合エラーになるようなので、
syscallで代用。
# 一部サーバではマイクロ秒もとる
if($ENV{SERVER_NAME} =~ /snow|ex14|live22/)
{
# 本当はこっちの方が普通だが、、、
#use Time::HiRes qw( gettimeofday );
#
#($GBX->{NOWTIME}, $GBX->{NOWMICROTIME}) = gettimeofday;
#
# FreeBSD 5.2.1Rなbananaサーバのperlには
# Time::HiResが入っていないので、
# 替わりにsyscallを使うことにする
my $tv = pack("L!L!", ()); # 2つのpackしたlong型変数
require 'sys/syscall.ph';
syscall(&main::SYS_gettimeofday, $tv, undef);
($GBX->{NOWTIME}, $GBX->{NOWMICROTIME}) = unpack("L!L!", $tv);
}
else
{
$GBX->{NOWTIME} = time ; #現在時刻
}
通らないところで、use したものがない場合エラーになるようなので、
syscallで代用。
# 一部サーバではマイクロ秒もとる
if($ENV{SERVER_NAME} =~ /snow|ex14|live22/)
{
# 本当はこっちの方が普通だが、、、
#use Time::HiRes qw( gettimeofday );
#
#($GBX->{NOWTIME}, $GBX->{NOWMICROTIME}) = gettimeofday;
#
# FreeBSD 5.2.1Rなbananaサーバのperlには
# Time::HiResが入っていないので、
# 替わりにsyscallを使うことにする
my $tv = pack("L!L!", ()); # 2つのpackしたlong型変数
require 'sys/syscall.ph';
syscall(&main::SYS_gettimeofday, $tv, undef);
($GBX->{NOWTIME}, $GBX->{NOWMICROTIME}) = unpack("L!L!", $tv);
}
else
{
$GBX->{NOWTIME} = time ; #現在時刻
}
688root▲ ★
NGNG ほいで、
# マイクロ秒の情報がある場合、1/100秒まで表示する
if(defined($GB->{NOWMICROTIME}))
{
my $csec = sprintf("%02d", int($GB->{NOWMICROTIME} / 10000));
$GB->{DATE} .= '.' . $csec;
}
# マイクロ秒の情報がある場合、1/100秒まで表示する
if(defined($GB->{NOWMICROTIME}))
{
my $csec = sprintf("%02d", int($GB->{NOWMICROTIME} / 10000));
$GB->{DATE} .= '.' . $csec;
}
2005/12/29(木) 07:01:11ID:ArqA66li0
ex11も入れてみたりしない?
eval "use Time::HiRes";
if ($@) {
# Time::HiResが無かったときの処理
$GBX->{NOWMICROTIME} = 1;
}
else {
# Time::HiResがあったときの処理
$GBX->{NOWMICROTIME} = undef;
}
# $GBX->{NOWMICROTIME} = $@ ? 1 : undef; # 1行にしてみるテスト
でもって、、、
$GBX->{NOWTIME} = &getNowTime(鯖名、板名、とかとか♪);
こんな式にしておいて・・・
sub getNowTime{
# 一部サーバではマイクロ秒もとる
return time unless $ENV{SERVER_NAME} =~ /^snow|^ex14|^live22/;
ナンタラカンタラ・・・
}
で値を返してあげるとかとか♪
if ($@) {
# Time::HiResが無かったときの処理
$GBX->{NOWMICROTIME} = 1;
}
else {
# Time::HiResがあったときの処理
$GBX->{NOWMICROTIME} = undef;
}
# $GBX->{NOWMICROTIME} = $@ ? 1 : undef; # 1行にしてみるテスト
でもって、、、
$GBX->{NOWTIME} = &getNowTime(鯖名、板名、とかとか♪);
こんな式にしておいて・・・
sub getNowTime{
# 一部サーバではマイクロ秒もとる
return time unless $ENV{SERVER_NAME} =~ /^snow|^ex14|^live22/;
ナンタラカンタラ・・・
}
で値を返してあげるとかとか♪
■ このスレッドは過去ログ倉庫に格納されています