◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:2ch特化型サーバ・ロケーション構築作戦 Part20->画像>1枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/operate/1140540754/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
2ch特化型サーバ・ロケーション構築作戦のスレッドです。
・2ちゃんねるのサーバロケーション、PIEに関する関連作業・調整事項
・DNS登録・変更まわりの関連作業・調整事項
・2ちゃんねるのサーバで採用しているOS、FreeBSDに関する情報・調整事項
・各種作戦・プロジェクトとの連携、プロジェクト間の連携
等を取り扱います。
現在、複数サーバによる連携により、
サーバ能力のさらなるスケールアップをめざすための「雪だるま作戦」が進行中です。
また、次世代の携帯アクセス環境をめざした「べっかんこ作戦」も稼動しはじめました。
「2ちゃんねる証券取引所」や、「Be」の機能強化等、
2ちゃんねるは今日も変化し続けています。
前スレ:
2ch特化型サーバ・ロケーション構築作戦 Part19
http://qb5.2ch.net/test/read.cgi/operate/1121886018/ 近い課題 ・削除関係の呪文の雪だるま対応 ・live22 バックエンドの安定稼動 ・matd を用いた受付の安定稼動 ・mod_cache の導入によりバックエンドの負荷を下げる ・DNS ラウンドロビンから matd への移行 ・heartbeat を利用した受付の冗長化 問題の解決 ・電源食い杉どうしよう 重要な課題 ・効率の良い金色会員維持 ・家庭の保守
転載
雪だるま作戦のスレを待ち続けるスレ Part3
http://aa5.2ch.net/test/read.cgi/nanmin/1140235427/373-377 373 名前:▲ ◆cZfSunOs.U [sage] 投稿日:2006/02/21(火) 23:45:53
特化型スレが 1000 目前なので,とりあえずこちらに...... ロードバランシングが
ちゃんと機能してるらしいのはいいんですが,どのフロントに振り分けられるかによって
ETag がバラバラになっちゃいますね......
ETag: "405469-1b63-69f6b640"
ETag: "2bd861-1b63-69f6b640"
ETag: "175c61-1b63-69f6b640"
違いが出るのは inode の部分なんでしょうけど,フロントが直接持ってるファイルに
関しては ETag 生成で inode 使わないようにした方がいいのかも知れませんね.
mod_proxy (+ mod_cache) で持ってくる dat 等は今のままでいいんでしょうけど.
377 名前:▲ ◆cZfSunOs.U [sage] 投稿日:2006/02/21(火) 23:56:44
>>376 こんな感じとか......
<FilesMatch "^(フロントで|直接|持ってる|ファイル)$">
FileETag -INode
できるとうれしいこと ・バーチャルホストごとに負荷軽く統計をとれるとうれしいな
雪だるま作戦のスレを待ち続けるスレ Part3
http://aa5.2ch.net/test/read.cgi/nanmin/1140235427/353-356 353 名前:FOX[] 投稿日:2006/02/21(火) 19:05:14 ?
www.2ch.net だけスタンバイ機作りますかねー
>>352 もしもの時は DNS 変更だけで仮復帰できるように
356 名前:FOX[] 投稿日:2006/02/21(火) 19:13:54 ?
あるんですけど、
んじゃ ex14 に
あと、何か課題はあるのかな。 とりあえず前スレを、再読してみるか。 で、epgの変更申請は、次のレスにて。
epg.2ch.net の新サーバへの移行申請をします。 以下のDNSサーバの設定変更をよろしくお願いします。 (現在) +epg.2ch.net:210.135.98.243 (変更後) +epg.2ch.net:210.135.99.7
rootたんありがたう。 ・電源食い杉どうしよう 増やすしかない。まぁいらん鯖はほかのラックにうつしたほうがいい。 データセンターでソーラーないし二重化電源を思い切って…(ry
2ch特化型サーバ・ロケーション構築作戦 Part19
http://qb5.2ch.net/test/read.cgi/operate/1121886018/35 35 名前:root▲ ★[sage] 投稿日:2005/07/22(金) 03:37:58 ID:???0
転載
786 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/07/21(木) 23:53:49 ID:B2JZ82ht
>>784 キーボード(とマウス?)なんですよね。
PIEで使っているKVMスイッチはデイジーチェインでつなぐブツなのです。
で、ACPIとの相性が悪くて、旧tiger(tiger5xx)だけ、FreeBSDの立ち上げ時に
パニックして止まってしまうという。
で、ACPI切ると上がるのですが、
そうすると別のところでハングアップして、止まってしまうです。
キーボードとマウスをつけていてもシステムBIOS画面は、問題なくKVM経由操作できるです。
FreeBSD*だけ*が、だめ。
で、キーボードとマウスをはずすと、ちゃんと上がる。
OSが上がっている時に、途中から刺しても大丈夫。
bananaと新tigerでは問題は起こってないので、
問題はかなり根深い気がします。
PIEに行ったら、旧tigerのBIOSを最新版に上げてみようかなと、
思っていたり。
787 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/07/21(木) 23:56:55 ID:B2JZ82ht
症状は、これとかこれと同じです。
XeonでSMPの時で、しかもブート時に、
特定の種類のマザーボードでしか、起こらない模様。
AP #1 (PHY# 1) failed
http://lists.freebsd.org/pipermail/freebsd-smp/2003-June/000185.html AP #1 (PHY#1) failed! Panic (y/n)?
http://lists.freebsd.org/pipermail/freebsd-stable/2005-February/012216.html ここも20スレ目ですか。。。PIEへ移住しようとしてた頃が懐かしい。。。 >重要な課題 >・効率の良い金色会員維持 >・家庭の保守 超重要ですね。。。
電源対策ですか。。。 手軽に出来るのは電源関連の強化だけどこればっかりは出来ることと出来ない 事に分かれるので難しいところですねぇ あとは前に漏れが書いてた省電力型bananaへのリプレースとかですね。
このぐらいですかね。 進行はゆっくりでしたが、いろいろと実り多いスレだったのかな。 ほとんど、おれさまメモだという話もあったり。
>>11 …ですね。
もう、2年になるですか。
コンパクトな番組表を、よく投稿していただいたものでした。
月日のたつのが、ほんとに速いなと感じるです。
今思うんだが、暇なサーバー(挑戦ら辺)にhttpdのログを回収させて(内部メールでもよいでよ)で回して管理センターにするのもいいかと。スクリプトは書くのマンドクセなんでtestにWebアナアライザー?を投入 #たまにはBSD触ろうかな。fedoraとCentOSしか触ったことしかないし。
>>20 いいアイディアな気がするので、そのうちやるかも。
二輪車乗員を模擬した衝突試験用人体模型 「MATDダミ:Motorcyclist Anthropometric Test Device Dummy」 とか言ってみる。w
えっ、中の人が騒音防止マット敷くの面倒臭いからデーモン召還したんじゃないの?
>>24 管理人とメールと同じセンスだ、、、。
管理人も、MAT のアルゴリズムに 興味を持っているようです。
NAT というのはもう一般的ですが、MAT は耳新しいかも。
# というか、私も雪だるま作戦するまでよくわかってなかったです。
MAT は MAC Address Translation と言われていて、MAC アドレスの
変換をするものです。
で、何のためにするかというと、帰りをロードバランサー経由ではなくて、
フロントエンドから直接戻るようにしたいからです。
Googleに聞くと、わかりやすい図面例がありました。
http://www.znw.co.jp/product/piolink/02.html >>27 ×
>>24 管理人とメール
○
>>24 管理人のメール
>>27 なるほど、NATのMACアドレス版というわけですか。
おいそがしいところすみませんが、、、。 新 www/menu になる予定のサーバの設定をすすめているのですが、 今気がついたのですが、メモリがちょっと少ない (というかそんなわけないので、正しく認識していないということだと思われる) ようです。 今までのbanana (例: banana613) real memory = 528416768 (503 MB) avail memory = 511455232 (487 MB) 今回受け取ったbanana (banana2848) real memory = 469696512 (447 MB) avail memory = 449945600 (429 MB) システムメッセージによると、 これまでの banana とマザーボードが異なっているようなので、 そのあたりにも何か原因があるのかもしれません。 すみませんが、調査の手配をよろしくお願いいたします。 パスワードは、これからいったん、いただいた時のものに戻しておきます。
で、
>>31 の補足ですが、
OS を FreeBSD 6.0R に上げた時点で気がついたので、
今は 6.0R になっていますが、もらった直後からメモリ容量の値が小さかったことは
改めて確認しました。
(もらった時の最初のシステムブートメッセージは、いつも最初に保存しています)
ということですみませんが、状況の調査をよろしくお願いします。
システムが占領しているかもね。ビデオメモリの最低が増えたとか。 データ配置どうにかならんかな? Mcellなら同じデータを呼び出すなら速いけどdatは頻繁に書き換えられるし、なかなか上手く行きそうにない。 やはりi-RAM使うかな。 やはり現状維持? 誰かソフトウェアでのアプローチきぼん
判明しました。 banana2848のメモリが少なく表示されていますが、 マザーボード上のグラフィック部分のチップセットが 今までのbananaサーバと異なり、BIOS部分で占有 するメモリが増えた為です。 banana613 : P4M266 banana2848 : P4M80P
>>35 了解です。
>>34 でビンゴということですか。
セットアップ作業続けるです。
FSB800かな。今後このロットはbananaマークIIと呼ぶことにしよう。
MATのLinux上の実装のひとつが、LVSということですね。 matdは、SolarisとFreeBSD上のMATの実装のひとつと。
過去ログはシンボリックリンク張って別に移してほしいけど●のなかいじらないといけない。やっぱり難しいか。 (●くらいdigest認証で良いような。名前の●もダイアログがそのたび出れば良いわけで。でも.htpasswdがでかくなりすぎるし管理が面倒臭いか。) 雪だるまの削除の呪文は (1)まず削除するとこの案内嬢に削除するものを示すデータベースに削除命令を掲示。 (2)バックが削除命令を実行。受付嬢に完了を知らせる。 (3)バックが(2)をもう一度するがそんなの無いとエラーを吐くこれを確認して削除命令の掲示を削除。 雪だるまいがいでもできそう。かな。
>>36 FSB800には対応しておるが
PM880ならメモリヅアル対応
PM800ならメモリ片肺(よってFSB800意味なし)
そしてS-ATA対応
しかしVT8237RはS-ATAII非互換なので要注意
VT8237R+なら心配はいらぬ
socketT仕様なら状況に応じて廉価なPenDを使用出来るかもしれない
(CPU性能のみを求めてXeonを使う必然性は薄くなる)
socket478ならほぼ従来通り
以下、参照のこと
http://kakaku.aol.co.jp/aol/akiba/040930_1.html いい具合に枯れております
>>44 どもです。
メッセージを見る限りP4M80Pになったこと以外、ほとんど変化がないようです。
CPU・HDD・ネットワークカード、全部前と同じ。
Ζとか新とかいう感じではないですね。マークIIということで。
wwwとmenu、まずは仮住まいから本住まいに再移転します。 次の段階で、冗長化とか分散化にとりかかるかんじで。 以下のDNS設定変更をお願いします。 (現在) +2ch.net:207.29.224.75:300 +www.2ch.net:207.29.224.75:300 +menu.2ch.net:207.29.224.75:300 (変更後) +2ch.net:206.223.157.122:300 +www.2ch.net:206.223.157.122:300 +menu.2ch.net:206.223.157.122:300
>>16 >mod_disk_cache (微妙にまだ挙動不審)
>
http://qb5.2ch.net/test/read.cgi/operate/1121886018/916-923 Age ヘッダが Squid に悪さをすると仮定して......
1. c の Squid で Age ヘッダを無効にしてみる.
header_access Age deny all
2. 1. がダメなら live22x の httpd で Age ヘッダを出さないようにしてみる.
ResponseHeader unset Age
>>47 我ながらボケてますね......w
-ResponseHeader unset Age
+Header unset Age
>>47-48 2. がよさげかな(キャッシュの様子がわかりにくくなるという欠点はあるけど)。
明日以降にでも。
ということで、yakin.ccの内容を戻しました。 以下の変更をよろしくお願いします。 (現在) +yakin:cc:206.223.151.10 +www.yakin.cc:206.223.151.10 (変更後) +yakin.cc:206.223.157.122 +www.yakin.cc:206.223.157.122 パスワードが再設定されましたので、情報をメールしておきます。
あう、タイプミス。 これでお願いします。 (現在) +yakin.cc:206.223.151.10 +www.yakin.cc:206.223.151.10 (変更後) +yakin.cc:206.223.157.122 +www.yakin.cc:206.223.157.122
>36 納入のときBIOSいじれないのかな。 正直設定できたら8Mでもいいと思いますが。
http://qb5.2ch.net/test/read.cgi/operate/1121886018/951- >>>
>>> いただいたbanana613ですが、今までのIPアドレスレンジと違うわけですが、
>>> (それ自体はめでたくて、PIEが成長したということだと思います)、
>>> DNSの逆引きの設定がおかしいようです。
>
なおったはずー
>>53 そうですね。512Mのうち56M減ってしまうのは、
ちょっと大きいかなと。
>>54 了解です。
でも、ちゃんとした逆引きの設定もあるといいかもです。(206.223.のところのように)
再稼動したtiger503/tiger507関係のDNS設定更新依頼を出します。 ということで、よろしくお願いします。 (設定追加) +live22y.2ch.net:206.223.150.110:300 +live22y.2ch.net:206.223.150.42:300 +www2f4.2ch.net:206.223.150.110:300 +www2f5.2ch.net:206.223.150.42:300
>>56 これ、キャンセルします。
理由は言わずもがなで。
banana403 が復活したので、 www2f4/www2f5をmatdの仲間から外した。
Jim-san, Sean-san, Cc: Hiroyuki-san, Yakin-san, (中の人)-san, This is Mumumu. First, I say thank you for your trouble recovery work, and I heard from Sean-san today an another power circuit has been added. But, I cannot trust you in the current situation. So, you say the power circuit has been added two times. But I have not heard from you an _accurate_ measurement result of the _peak_ of the power usage yet. I think we need the accurate measurement for the peak power usage at 22:00-24:00 JST. It is the peak access time in Japan. This is a basic and an important issue. Please do not forget about it. It is very important issue about the trust between you and 2ch.
(続き) And I have an idea to solve the problem. As you may heard from Yakin-san, some of servers in XO rack can be moved out to another location. Follow servers can be moved to another location. They are not needed neither 1Gbps connection not the private network connectivity. tiger504, tiger509, tiger510 cobra2245, banana402 But they are now served for 2ch BBS, so, we need step-by-step moving process. For example, scheduling, notify to 2ch users before moving, etc. So, we need a steady process and mind for success the project. Please do not short-cut. And all 2ch users are watching us. Please do not forget this again. Regards,
ひどい英語だ。 まぁ、とりあえず言いたいことは伝わっただろうと。
> neither 1Gbps connection not the private network connectivity. not => nor のtypoですね。 ねるねる。
rootたん、乙。 All 2ch users are watching you.
http://aa5.2ch.net/test/read.cgi/nanmin/1140235427/875 これは httpd が abort したりしてお亡くなりになるってやつかな?
バック側の httpd がお亡くなりになるのは mod_cache を使えるようになれば
かなりリスクは軽減できそうだけど,フロント側はさて......
ついでに,また 1000 越えも発生してしまったようで......
http://live14.2ch.net/test/read.cgi/liveplus/1139846761/648 http://qb5.2ch.net/test/read.cgi/operate/1140349345/750 これは httpd がお亡くなりになると副作用で道連れになってしまうのか......?
まだ中身を見てませんが、live22x1だけDB用のbbsdが動いていて、他のフロントより忙しいんですよね。 そのへんに手がかりがあるのかも。
>>66 起きて大丈夫なん?
たまには2chを忘れて、しっかり休んだ方がいいと思うです。
>>65 live22x1 ログインして様子見ましたが、
LAの超急上昇とかシステムログの変なメッセージといった異常はないようです。
live22がおかしくなったための巻き添えの可能性が大きい模様。
live22は例の現象が。
Feb 23 12:20:10 <0.2> tiger2522 kernel: calcru: runtime went backwards from 136858476 usec to 136858421 usec for pid 80472 (httpd)
Feb 23 12:20:37 <0.2> tiger2522 kernel: calcru: runtime went backwards from 137933957 usec to 137933660 usec for pid 80553 (httpd)
Feb 23 12:23:56 <0.2> tiger2522 kernel: calcru: runtime went backwards from 1855272 usec to 1855048 usec for pid 7955 (httpd)
Feb 23 12:24:48 <0.2> tiger2522 kernel: calcru: runtime went backwards from 3957023 usec to 3956924 usec for pid 7974 (httpd)
Feb 23 12:25:18 <0.2> tiger2522 kernel: calcru: runtime went backwards from 5120010 usec to 5119944 usec for pid 7961 (httpd)
Feb 23 12:26:09 <0.2> tiger2522 kernel: calcru: runtime went backwards from 1637417 usec to 1637382 usec for pid 8299 (httpd)
Feb 23 13:29:30 <0.2> tiger2522 kernel: calcru: runtime went backwards from 2328454 usec to 2328443 usec for pid 22270 (httpd)
>>67 かもすね。
今朝のグラフうpしたら、今日はオフライン気味で。
新設板・板移動情報・5.5@運用情報
http://qb5.2ch.net/test/read.cgi/operate/1132068329/193 FFFTPで表示ができない問題:
http://blog.goo.ne.jp/hetare-neko/e/a4a1603fe38ea17397bb97af12baeed8 にある、
# cd /usr/ports/distfiles
# fetch
http://www.hayasoft.com/haya/linux/proftpd-nlst-patch/proftpd-1.3.0rc3-nlst-ffftp.patch # vi /usr/ports/ftp/proftpd/Makefile.local
---
PATCHFILES += proftpd-1.3.0rc3-nlst-ffftp.patch
PATCH_DIST_STRIP = -p1
NO_CHECKSUM = yes
---
# portupgrade -rf proftpd
とかいうかんじで。
Jim-san,
Thank you for your effort. I understand the current situation.
But as you know, these servers in XO racks have so many users and very
important data, so, we should progress the project more carefully.
So, I seem to have to be cool-down a little, too. ;-)
Now we are discussing about the current situation and our next steps,
and I am sure that we can make ideas and strategies for our next steps.
Now we are now in progress a project named "Project Snowman" at XO
servers. It is composed of load balancer software, frontend clusters,
and backend servers. If it is completed, this is sure to become stronger,
high-ability BBS system from the current stand-alone server, for next
generation.
Thank you for your support of everyday.
Regards,
-- Mumumu <
[email protected] >
as 2ch engineer
>>72 Dear Mumumu,
Things will be ok, we are doing our best to support you. I have been sick
this week and am taking strong medicine.
Please relax and lets have a nice dinner together next time we are in the
same city.
Your friend,
Jim
とりあえず(お互いに)、落ち着きを取り戻せたようです。
メールにあるようにリラックスして、じっくり作戦を練る感じで。
# まずは二人とも、体を回復させなきゃってことで。
Apache2.2.0のロードバランサーで 30,40,40くらいに負荷分散したらいいとおもた。 by 携帯よりの使者
matd環境を冗長化すべく、作業をぼちぼちやろうと。 1) banana403 が死んでも、banana404 が代理で作業する、復活したら元に戻る 2) tiger2523-2525 のどれかが死んだら自動で切り離され、復活したら元に戻る
あと、banana806 (臨時に使ったwww/menu)ですが、 特に問題がないようならデータ同期の仕組みを入れて、 banana2848 (今のwww/menu)のスタンバイ機に仕立てるかんじがいいのかもとか。
>>75 > 1) banana403 が死んでも、banana404 が代理で作業する、復活したら元に戻る
これの設定をしたつもり。
これから banana404 に切り替えてみる。
うまく戻った模様。 今回は banana403 が上がったら、常に banana403 になるように設定。 (ha.cfでauto_failback on) matd の上げ下げはこんなかんじのを、/usr/local/etc/ha.d/resources.d/zzz-matd に置き、 /usr/local/etc/ha.d/haresources で以下のように設定。 banana403.maido3.com 206.223.150.96/32 zzz-matd #!/bin/sh _LIP="127.0.0.1" _VIP="206.223.150.96" _CFFILE="/usr/local/etc/matd.cf" _CFFILE_SKEL="/usr/local/etc/matd.cf.skel" case "$1" in start) echo -n 'Activating matd ' sed -e "s/%%IPADDR%%/${_VIP}/" < $_CFFILE_SKEL > $_CFFILE svc -h /var/service/matd echo 'done.' ;; stop) echo -n 'Standbying matd ' sed -e "s/%%IPADDR%%/${_LIP}/" < $_CFFILE_SKEL > $_CFFILE svc -h /var/service/matd echo 'done.' ;; *) echo "$0 start | stop" ;; esac
フロントの切り離しと接続は、ldirectord を使うのかな。 ぼちぼちと。
banana806 は当初の目的に使わないならば 引き上げるですー
>>83 了解。
であればやはり、うまく雪だるま等に収容する方向で。
c.2ch.net 系を Apache 2.2 + PHP5 + eacceleratorにバージョンアップ。 いろいろはまったので。以下。 まず、worker MPM では httpd がどんどん暴走状態になり、だめ。 prefork MPM では問題なく動作。 prefork MPM なので、mod_cgid じゃなくて mod_cgi じゃないとだめ。 Options MultiViews は*徹底的に*除去しないと、 思わぬところのものが有効になり、どつぼにはまる。 MultiViews を httpd.conf から全消ししたら動いた。これは後で精査必要。 なぜかどうやっても、.htaccess で Options +MultiViews と書けない。 理由は不明。これも後で精査必要。 結局、httpd.conf に移動して解決。 .htaccess にある、 addhandler php-script p を、 addhandler php5-script p に変えないと動かない。
; added by mumumu, 2005/9/6 ;eaccelerator.shm_only=1 をコメントにして、 ; added by mumumu, 2006/2/28 eaccelerator.cache_dir=/md/tmp にしてみた。 メモリディスク上にPHPのキャッシュを作る。
で、MultiViews 問題は、 <Directory /home/*/public_html> のところからも、MultiView をはずさないといけなかったと判明。
MultiView じゃなくて、MultiViews ですね。
>>88 httpd.conf を見比べているけど、
>>88 は Apache 2.0 と 2.2 で仕様が変わった、、、ように見える。ううむ。
あと、
[Mon Feb 27 11:45:19 2006] [alert] [client 210.136.161.193] /home/ch2c-docomo/public_html/.htaccess: Option execcgi not allowed here
となるのは、未解決。
ううむなぜだ。
Options=MultiViews とか書くと、ExecCGI がうんちゃらって言うってことは、 ただOptionsと書いたんじゃ、だめなのかな。ううむ。
Options=All,MultiViews が正解でした。 うーん、勉強になりましたぁ。
うんと、どっかでAllにMultiViewsは含まれないってあったけど、 それを引きずるってことですか。
いやー、Googleには書いてないし、どこ見ても載ってないし、 いろいろはまったし、ということは後発の人は ここを見て解決できることもあるんじゃないかなぁとか、 久しぶりに思った1日でした。 やっぱ、リハビリにはシステム設定がよさげね。 ドコモの方々には大変ご迷惑をおかけいたしました。 おやすみなさいです。
>>94 Options All では MultiViews は含まれないっていう仕様が前からあったわけですが、
Apache 2.2 からは新たに、AllowOverride Options ではだめで、
AllowOverride Options=All.MultiViews とここ*にも*書かないといけなくなった、
ということだと思います。
>>96 おっと、
- AllowOverride Options=All.MultiViews とここ*にも*書かないといけなくなった、
+ AllowOverride Options=All,MultiViews とここ*にも*書かないといけなくなった、
ということで、
>>91-92 は AllowOverride の話でした。
AllowOverride FileInfo AuthConfig Limit Options=All,MultiViews Indexes
おやすみさい。
eaccelerator.debug=0 をphp.iniに入れないと、延々とデバッグメッセージが出てちょっと遅くなるみたい。
>>98 はもちろん、
AllowOverride All
でもだめなので注意。
AllowOverride All Options=All,MultiViews と、
なんと All を2回も書いたうえで、かつ MultiViews を明示的に有効にしないといけない。
c.2ch不具合報告総合スレ5
http://qb5.2ch.net/test/read.cgi/operate/1138289353/347-360 Apache 2.2 + mod_proxy + mod_cache で
squid の代わりをしようと思ったのですが、
トラフィックを乗せたとたんに過負荷で爆死。
squid はとてもよくできていることと、
Apache 2.2 ではその代わりは務まらないことを痛烈に認識。しくり。
いきなりLAが急上昇し、
プロセスを止めることもできず、そのまま無反応状態へと。
>>103 squid はこのへん、きわめてよくできているんだなと。
あと試す余地があるのは、5.4R時代に一度試して 高パフォーマンスだったけどカーネルパニックで落ちた-lthrぐらいか。 今日明日はもうやらなくて(c-docomo系の結果を見ようかと)、 その後にでもまたぼちぼちと。
>>86 乙です.
>まず、worker MPM では httpd がどんどん暴走状態になり、だめ。
>prefork MPM では問題なく動作。
OS が 5.4R なのが問題なのか,それとも PHP5 (or eaccelerator) の
thread safety problem なのか......
あと,MultiViews も何か曲者みたいですね.まぁ元々,パフォーマンス面を考えても,
毎回 readdir(_r) することになるんで使わずに済ませられるならそうした方がいいんですけどね.
>>103-104 まぁ prefork MPM ならそんなもんかと......event MPM に
async read / write も実装した段階では Squid なみになるかも知れませんが.
>>105 Solaris でも 7 までは M:N モデルだったのが,8 では代替スレッドライブラリとして
1:1 モデルも用意されるようになり,9 からは 1:1 モデルに全面移行しましたからね.
理屈上のことはともかく,現実的には多くの場合シンプルな 1:1 モデルの方が
パフォーマンスがいいというのがその背景ということのようで.
あ、そうだ。 ハードウェアの状態、どうだっただろう。
さて、
>>106 MultiViews なしのほうが、パフォーマンス上がるということですか。
どのくらい差があるんだろう。
> まぁ prefork MPM ならそんなもんかと
…ですか。worker MPMでしたが、やはりだめでした。
aync read/write がでかいみたいです。
-lthr は、明日夜あたりに時間とれればぼちぼちというかんじで。
乙です.毎度おなじみのパターンですか......まぁ現状で打てる手はやはり mod_cache でしょうね. http://qb5.2ch.net/test/read.cgi/operate/1140699969/814-817n 814 :root▲ ★ :2006/02/28(火) 23:28:57 ID:???0 すぐにはハードウェアの追加は見込めないから、 何とかしないといけないなぁ。 まずは、フロントに mod_cache ですね。 今日作業しよう。 817 :root▲ ★ :2006/02/28(火) 23:30:08 ID:???0 calcru: runtime went backwards from 1186744 usec to 1186538 usec for pid 905 (httpd) pid 17287 (httpd), uid 2001: exited on signal 10 pid 17309 (httpd), uid 2001: exited on signal 10 pid 17273 (httpd), uid 2001: exited on signal 10 pid 17274 (httpd), uid 2001: exited on signal 10 pid 17279 (httpd), uid 2001: exited on signal 10 pid 17318 (httpd), uid 2001: exited on signal 10 pid 17306 (httpd), uid 2001: exited on signal 10 pid 17305 (httpd), uid 2001: exited on signal 10 pid 908 (httpd), uid 2001: exited on signal 10 pid 17272 (httpd), uid 2001: exited on signal 10 pid 1595 (httpd), uid 2001: exited on signal 10 pid 1597 (httpd), uid 2001: exited on signal 10 いつものやつか、、、。ううむ。 >>113 …ですね、、、。
コンソールをいつでも問題なく触ることが出来て、
時間をもっととれるなら、phk に付き合って最新の -current で人柱する、
というのもありなのかもですが、現状の私では残念ながら、無理な模様。
c-docomo5 の様子を観察中。 LA=4強ぐらい。 混んでいた時のnews19ぐらいですね。 一定の効果はあったのかなってかんじで。 問題は、明日以降なわけですが。
live22x[123] を、Apache 2.2.0 環境に更新中。 Apache 2.0.x なサーバと、read.cgi バイナリに互換性がなくなるので、 dso の配布リストから削除。 live22x1 から配布で。
で、kako/ はキャッシュしなくていいのかな。 Expires: と Age: を殺そうかと。
>>117 kako はローカルには持ってないんだった。
とりあえず設定には入れず。
で、mod_cache 化は完了のはず。
設定内容は次以降で。
869 名前:root▲ ★[sage] 投稿日:2006/03/01(水) 02:40:35 ID:???0 ○ mod_cache 関連 /usr/local/sbin/htcacheclean -d5 -p/md/cache -l64m を、/md 作成時に起動するようにrcファイルに追加。 <IfModule cache_module> # configure cache directory CacheRoot /md/cache # configure cache expiration time #CacheDefaultExpire 60 #CacheMaxExpire 60 # unset unneed headers Header unset Age Header unset Expires </IfModule> というファイルを作って、2ch-cache.conf という名前で Include に放り込み。 Age: と Expires: がないとそもそもキャッシュだとわからないので (昼間BG4でしくったときに実験した)、外からみた振る舞いに変化はないはず。
で、肝心のキャッシュは、 CacheDisable /dome/SETTING.TXT CacheEnable disk /dome/ CacheDisable /dancesite/SETTING.TXT CacheEnable disk /dancesite/ CacheDisable /endless/SETTING.TXT CacheEnable disk /endless/ CacheDisable /eq/SETTING.TXT CacheEnable disk /eq/ CacheDisable /eqplus/SETTING.TXT ... という、単純なもの。
あ、これだと、read.cgi の出力もキャッシュされるのかな。 このへんは、微妙なチューニングが必要かも。
で、昔やった予備実験の結果からすると、 20%〜25%ぐらい、バックエンドへのアクセス数が減少するはず。
http://mumumu.mu/bremen/live22.html それなりに減ったかな。
一定の効果は出ているっぽい。
live22のログを見てみるか。
3xx なレスポンスが多くなれば、うまくいっているということかしら。
2xx 3xx 4xx 5xx URL 221 13 0 0*/liveanb/dat/1141148550.dat 216 13 0 0 /livevenus/dat/1141144653.dat 57 0 0 0 /liventv/dat/1141142442.dat 50 4 0 0 /news/dat/1141142585.dat 27 0 0 0 /livetbs/dat/1141142582.dat 26 7 0 0 /liveetv/dat/1141130962.dat 26 0 0 0 /news/subject.txt 23 9 0 0 /livenhk/dat/1141148068.dat 22 4 0 0 /livewkwest/dat/1141148317.dat 19 0 0 0 /livewkwest/dat/1140972656.dat 16 2 0 0 /liveskyp/dat/1141140286.dat 12 10 0 0 /liveradio/dat/1141140643.dat 11 0 0 0 /liveanb/subject.txt 11 20 0 0 /liveanb/dat/1141147805.dat 悪くなさげ。
携帯系(というかSquid)への副作用が発生。対応中。
>>119 を修正。
<IfModule cache_module>
# configure cache directory
CacheRoot /md/cache
# configure cache expiration time
#CacheDefaultExpire 60
#CacheMaxExpire 60
# unset unneed headers
Header unset Age
Header unset Expires
Header unset Cache-Control
</IfModule>
>>114-127 乙です.Squid への副作用がなぜなのかいまいちわからないですね.
ただ......各フロントごとにキャッシュの内容が新旧入り交じっていて,
Squid から取得するたびに新しいのに当たったり古いのに当たったり
バラバラだったりすると,ひょっとしておかしくなるのかな,とも......
>>128 なるほど。それはあるかも。
いずれにせよ、squidの振る舞いをきっちりチェックする必要ありですね。
#LoadModule cache_module libexec/apache22/mod_cache.so
#LoadModule disk_cache_module libexec/apache22/mod_disk_cache.so
#LoadModule mem_cache_module libexec/apache22/mod_mem_cache.so
にして、今日はいったん撤退。
c.2ch不具合報告総合スレ5
http://qb5.2ch.net/test/read.cgi/operate/1138289353/374 >
> squidの振る舞いについては、じっくりした調査研究が必要そう。
> たぶん、squid側から何か言われても無視するようにすればよさげな気もしますが、
> そのへんはおいおい調べるということで。
で、今見たら120MBytesの/mdを64MBytesまでしか使わないはずなので、 既に90MBytesちかくになっていて、どきどきしたので、 /usr/local/sbin/htcacheclean -d1 -p/md/cache -l64m に変えた。(インターバル1分)
前にもsquidのキャッシュの取り扱いではちょっと悩んだことがあるので、
現在の設定をダンプしておこう。
# added override-lastmod by mumumu, 2004/7/29
#refresh_pattern . 2 0% 2 override-lastmod reload-into-ims
# shorten delay time to 1 minutes by mumumu, 2004/8/17
#refresh_pattern . 1 0% 1 override-lastmod reload-into-ims
# extend max value by mumumu, 2005/3/25
refresh_pattern . 1 0% 60 override-lastmod reload-into-ims
このスレまだ生きてた。
http://pc8.2ch.net/test/read.cgi/linux/997328024/182-183 http://qb5.2ch.net/operate/kako/1107/11073/1107376477.html の、453 か。
この 60 ってのが、とってもとってもあやしいような気がしてきたのです。
ということで、今日はここまで。
Yahoo! Developer Network - PHP Developer Center
http://developer.yahoo.net/php/ なんてものができてたらしい
>>133 お、これは。
>>134 パッチですか。
ちょっと、リスト読んでみるです。
http://lists.freebsd.org/pipermail/freebsd-current/2006-February/061137.html > Thanks. After applying your patch, I never get calcru messages on
> 6-STABLE. It seems fine. Thanks again!
効果あるのか。
>>134 > I've been getting calcru messages on 6-STABLE when stress-testing an
> application linked with libpthread. As far as my experience goes,
> these messages are only for ones linked with libpthread. If the same
> application is linked with libthr, these messages go away.
うわってかんじなんですが。
もうちょっと調べて、たぶん試してみようかと。
>>134 http://people.freebsd.org/ ~davidxu/patch/calcru_r61_060227.patch
に、ゆきあたった。
>>138 を適用した。
しばらくしたら、live22 リブートの予定。
リブートした(無事上がった)。 これで、どうなるのか。
以前適用した、 #kern.timecounter.hardware=TSC をやめた。(デフォルトのACPI-fastに戻した)
>>142-143 ざっと読みました。
これはとても興味深いですね。
worker MPMはいまや使いまくりなので、相当のパフォーマンスアップが期待できると。
> ところで、APR がすでにインストールされていると、configureオプションを変えて
> 再インストールしようとしても、すでにインストールされている APR を使おうとするため、
> APR をリビルドすることができないようです。
これに気をつけないと、いかんという話もあるのか。
ちょっと、調べてみるです。
.if defined(WITH_THREADS) CONFIGURE_ARGS+= --enable-threads . if ${OSVERSION} > 500023 . if ${ARCH} == i386 CONFIGURE_ARGS+= --enable-nonportable-atomics . endif . endif .endif となっているのか。< portsのMakefile 問題は、これが有効になっているかだが、、、。
. if ${WITH_MPM} != "prefork" PKGNAMESUFFIX= -${WITH_MPM:L} WITH_THREADS= yes WITH_THREADS_MODULES= yes WITHOUT_MODULES+= cgi ... なのか。< Makefile.modules
%nm /usr/local/lib/libapr-1.so.2 | grep atomic 0000ddf0 T apr_atomic_add32 0000dddc T apr_atomic_cas32 0000deb0 T apr_atomic_casptr 0000de10 T apr_atomic_dec32 0000de24 T apr_atomic_inc32 0000de58 T apr_atomic_init 0000df20 T apr_atomic_read32 0000de38 T apr_atomic_set32 0000de00 T apr_atomic_sub32 0000de48 T apr_atomic_xchg32 入っている模様。 で、mod_mem_cache はこれで動いている模様。 httpd は、、、。
…入っているようです。 (都合上、適宜折り返し) configured by ./configure, generated by GNU Autoconf 2.59, with options \"'--enable-layout=FreeBSD' '--with-perl=/usr/local/bin/perl5.8.7 ' '--with-port=80' '--with-expat=/usr/local' '--with-iconv=/usr/local' '--enable -http' '--enable-v4-mapped' '--with-dbm=sdbm' '--with-ssl=/usr' '--enable-thread s' '--enable-nonportable-atomics' '--with-mpm=worker' 'i386-portbld-freebsd6.0' (以下略) …ということで、ports猿マンセー状態だったということか。
しかし、勉強になりました。 ということはちゃんと動くんなら、worker MPM(や将来はevent MPM)のほうが、 パフォーマンスアップするということですね。 www.2ch.net/menu.2ch.net がサーバ更新後に異様に軽くなった理由が、 相当わかった気がします。worker MPMの力だけかと思っていたけど、そういう理由だとは。
>>149 補足
もちろん、www2.2ch.net が仲間から抜けたことも相当大きいですが。
で、このコードって
>>145 っていうぐらいで、i386 の時しか有効にならないのね。
cobra2247 をバックエンドに仕立てる次期計画を考えると、
amd64 でも動いてほしいなとか思ったり。
[FreeBSD-Announce] FreeBSD Security Advisory FreeBSD-SA-06:09.openssh
http://lists.freebsd.org/pipermail/freebsd-announce/2006-March/001049.html 対象はFreeBSD5.3と5.4のOpenSSHだそうで.
FreeBSD-SA-06:10.nfs もきたね。
[FreeBSD-Announce] FreeBSD Security Advisory FreeBSD-SA-06:10.nfs
http://lists.freebsd.org/pipermail/freebsd-announce/2006-March/001050.html こっちはAll FreeBSD releases.が対象、だけど、nfsつかっているんだっけ?
結構workerで動くもんなのだね。。 /* むやみに6.0にしたくなったけどMySQLの都合で出来ずorz */ bbs.cgiのSpeedyCGIはmod_speedycgiじゃないよね? 毎回プロセス起動のほう?
>>139-140 これで "calcru: runtime went backwards......" が出なくなれば,一つ山を越えることになると......
>>151 apr_atomic.c で↓のようになってるんで,AMD x86-64 でも行けるかなと.
#if (defined(__i386__) || defined(__x86_64__)) \
>>154 http://qb5.2ch.net/test/read.cgi/operate/1105909861/477-479n 話は変わりますが,mod_load_average なんてものがあるようで.
http://svn.force-elite.com/svn/mod_load_average/trunk/src/mod_load_average.c http://www.mail-archive.com/[email protected] /msg31056.html This way you could disable CGI when your LA is above 10,
and then disable everything when your LA is above 100:
LoadAvgMaxByHandler cgi-script 10
LoadAvgMax 100
おはよござます。
>>152 PAMとのconflictでうんぬんですか。
昔なら「FreeBSD only」っぽい(この項目いつの間にかなくなったっぽい?)やつかも。
状況からして、当てる必要ありで。
>>153 2ch/BBSPINKではNFSは使っていないので、
こっちは急ぐ必要ないですね。
>>154 私自身、結構驚いていたり。
前スレにも書きましたが worker MPM については、
5.2.1R 論外
5.3R だめだめ
5.4R 一応動くけど挙動不審
6.0R 今のところ大きな問題なし
という感じのようです。
> bbs.cgiのSpeedyCGIはmod_speedycgiじゃないよね?
> 毎回プロセス起動のほう?
毎回プロセス起動のほうです。
mod_ のほうは、worker MPM では動かないはず。
あと2ちゃんねるみたいな使い方(= CGIはばりばりいじられる、
全サーバのroot権限があるわけではない)だと、
プロセス起動にしておいたほうが、いろいろな意味で安全ですね。
mod_ な環境でCGI が暴走すると httpd を kill しなきゃならないので、
root 権限なかったりすると面倒です。
プロセス起動なら、speedy_backend を kill すればよいわけで。
>>155 >
>>139-140 これで "calcru: runtime went backwards......" が出なくなれば,
> 一つ山を越えることになると......
そう願いたいですね。
今週は日曜夜に巨大なトラフィックがある模様。
>
>>151 apr_atomic.c で↓のようになってるんで,AMD x86-64 でも行けるかなと.
> #if (defined(__i386__) || defined(__x86_64__)) \
なるほど、使えるですか。
> 話は変わりますが,mod_load_average なんてものがあるようで.
ちょっとそのスレッド読んでみました。
より細やかな制御ができると。
今は read.cgi / bbs.cgi とも LA チェック入っているので急務ではないですが、
使う機会は別にあるのかもなと。
>>157 うーん、やはり6.0はあなどれないな。。
5.2以前のネイティブスレッドは一つのスレッドのI/Oが大きいと
他のスレッドがたちまち遅くなるっていう致命を持った貧弱さだから。。
でも5.3でもだめなんだ。うーん、うちんとこは5.4だからここはpreforkのままでいくしかないな。。
一度workerMPMで動かしたことがあって、あのプロセス数:最大接続数の多さを見たときには感激したけど、
C++で書いたCGI+mod_cgidsoのどっかの動作でMT-safeでなかったらしくApacheが暴れたことがあり(preforkならOK)orz
MT-safeな書き方を学ぼうと思ってついに2006年の春を迎えてしまった。
Thread-safeってすごく便利だけど、やっぱり対応が未だ少ないのがネックか('д`)
>>159 > でも5.3でもだめなんだ。
…でした。
ちょっと前に news19 で試したんですが、SIGBUSで落ちまくりで
5分ぐらい掲示板が超挙動不審になってしまい、livemarket1 の住民さんに
「昼間のザラ場の時間にメンテなんて何考えてるんだ !!」って、
ものすごい勢いでおこられました。
デイトレーダーの人たちはどうやらものすごい勢いで、
この掲示板に強く依存しているようです。
MT-safe は、たぶん何かすごくこつがあるんでしょうね。
errno が普通の方法では参照できないとかいうので目からうろこが落ちてるようじゃ、
たぶん、全然だめなんだろうなと。
>>160 > 5分ぐらい掲示板が超挙動不審になってしまい、livemarket1 の住民さんに
> 「昼間のザラ場の時間にメンテなんて何考えてるんだ !!」って、
> ものすごい勢いでおこられました。
そんな時間に株系の板で実験ですか
予告してやったんでしょうか?
でなきゃ{起こ|怒}るのも当たり前でしょう・・・・
> デイトレーダーの人たちはどうやらものすごい勢いで、
> この掲示板に強く依存しているようです。
ワロス
>>162 む、、、。何か、私まずいことしたのかしら。
困るrootたん萌えってことで むぎゅって言って(*´Д`)
サーバダウン(鯖落ち)情報 part94
http://qb5.2ch.net/test/read.cgi/operate/1140710423/325 の件、、、。
live22x[123] の matd 化に向けて、httping(*1)で応答時間を監視していて、
(*1:
http://www.vanheusden.com/httping/ )
10パケットに1パケット程度、数秒のディレイが起きていることに気づきました。
で、banana403でdevice_polling(4)を試そうと決め、
もしリブートでしくってもheartbeatによりbanana404にフェイルオーバーするはずだと、
リブートをかけました。
しかし、いつもとリブートの感じが違いました。
いつもはputtyの窓がちゃんと閉じるのですが、今回は閉じずに
ただ反応だけがなくなりました。
で、banana404へのフェイルオーバーは起きたのですが、
「俺のIPアドレスを別のやつ(banana403)も名乗っているぞ」というエラーが404で出始めました。
(続く)
で、「これはおかしいぞ」と思い、 一度 banana404 のリブートもかけてみようと思い立ちました。 (今思うとこれがまずかったと思われ) で、banana404 は設定を変えずに、単に reboot コマンドでリブートしました。 しかしなぜか、さきほどの banana403 と同じ状態になりました。 つまり窓が閉じずに、反応だけがなくなる状態になりました。 ここで本能的に「まずい」と思いました。 案の定、両方のサーバともサービスがない状態になり、 www2.2ch.net は止まった状態になりました。 で、現在に至ります。 (続く)
今調べてみると、 banana403 実IPアドレス … ping かかる banana403 実IPアドレス … ping かかる サービス用 IP アドレス(www2.2ch.net) … ping かかる という状態にあるようです。 しかし、どのサービスも応答しない状態になっています。 推測ですが、これはリブートではなく、シャットダウンの途中で止まっている ように思えます。つまり、何らかの理由でシャットダウンできていない。 いつもは閉じる窓が閉じなかった(つまり向こうからTCPのセッションを切ってこなかった) ことから、ほぼ間違いないと思います。 しかし、設定を変えたbanana403はともかく、 設定を全く変えていないbanana404でも同じことが起きたのは、 かなり不可解です。 heartbeatが悪さをしたのか、 あるいは、remote KVMとかが悪さをしたのか、 あるいは他の原因か、、、。 いずれにせよ現在、remote KVMにアクセスできない状態なので、 (さきほどやってみましたがだめでした。これはSeanさんにさきほど問い合わせしました) コンソールの状況を確認できないです。 以上が現在の状況です。ううむ、、、。
> (さきほどやってみましたがだめでした。これはSeanさんにさきほど問い合わせしました) Seanさんから返事が来て、無事にKVMにアクセスできました。 やはりbanana403/404とも、シャットダウンの途中でしくっていました。 というか、Rebooted by ... というシステムログが出て、 プロセスは切られているのに、そこから先に進まない状態。 直感ですが、matd がというか、 たぶんヘビーなパケット処理により、カーネルが何らかの形で止まっているっぽいです。
…ちとまじで限界なので、 ここから先はリブートの中の人に403/404の両サーバをリブートいただいた後に、 別途リブート入れて検証してみることにするです。ううむ。
>>166-167 フェイルオーバしつつロードバランスもするって感じなんでしょうか.興味深いですね.
>>168-172 う〜む......matd の挙動も要観察ですかね.パケットのドロップが発生してるのかどうかとか......
Apache2.2.0の機能でプロセスが終わらないとサービスが切れない機能?があるらしいです。 無理矢理切ってエラー発生して結局システム真紀子み止まった。 てな感じかと。。。
> デイトレーダーの人たちはどうやらものすごい勢いで、 > この掲示板に強く依存しているようです。 デイトレーダーの人はモリタポ買ってね! と言っても良さそうな気がして来た。
無事(device_pollingしたほうも)上がりました。
>>173 ちと、じっくり調べてみるです。
>>174 今回のサーバではApache 2.0系で、CGI動かしてないです。
WARNING: / was not properly dismounted 両サーバとも、やはり正しく落ちなかった模様。
354 名前:root▲ ★[sage] 投稿日:2006/03/03(金) 11:43:48 ID:???0 ?# ふうむ、device polling ありだと、うまくないのね。 なし(前の状態)にしたら、つながりました。 まだよくわかりませんが、 device polling はいまやなしのほうが、よさげなのかも。
で、いろいろ変えてみる前に、
まずは今の設定での効率を調べて、状況をきちんと把握する
ことから始めようと。
ということで、httping -c 100 -g
http://www2.2ch.net/ の結果(cvsup.peko.2ch.netから)
connected to www2.2ch.net:80, seq=73 time=18.44 ms
connected to www2.2ch.net:80, seq=74 time=3014.49 ms
(略)
connected to www2.2ch.net:80, seq=75 time=21.35 ms
timeout receiving reply from host
connected to www2.2ch.net:80, seq=77 time=16.91 ms
connected to www2.2ch.net:80, seq=78 time=14.07 ms
(略)
connected to www2.2ch.net:80, seq=87 time=17.59 ms
connected to www2.2ch.net:80, seq=88 time=11.90 ms
connected to www2.2ch.net:80, seq=89 time=3017.84 ms
connected to www2.2ch.net:80, seq=90 time=3015.85 ms
(略)
connected to www2.2ch.net:80, seq=96 time=471.73 ms
connected to www2.2ch.net:80, seq=97 time=6219.80 ms
connected to www2.2ch.net:80, seq=98 time=15.69 ms
connected to www2.2ch.net:80, seq=99 time=19.33 ms
---
http://www2.2ch.net/ ping statistics ---
100 connects, 99 ok, 1.00% failed
round-trip min/avg/max = 11.7/449.1/6219.8 ms
同じく、www.2ch.net
connected to www.2ch.net:80, seq=94 time=2.66 ms
connected to www.2ch.net:80, seq=95 time=2.71 ms
connected to www.2ch.net:80, seq=96 time=2.67 ms
connected to www.2ch.net:80, seq=97 time=2.72 ms
connected to www.2ch.net:80, seq=98 time=2.69 ms
connected to www.2ch.net:80, seq=99 time=2.84 ms
...
---
http://www.2ch.net/ ping statistics ---
100 connects, 100 ok, 0.00% failed
round-trip min/avg/max = 2.6/2.8/4.6 ms
同じく、live22x.2ch.net
connected to live22x.2ch.net:80, seq=95 time=3.17 ms
connected to live22x.2ch.net:80, seq=96 time=3.26 ms
connected to live22x.2ch.net:80, seq=97 time=3.54 ms
connected to live22x.2ch.net:80, seq=98 time=3.13 ms
connected to live22x.2ch.net:80, seq=99 time=2.97 ms
---
http://live22x.2ch.net/ ping statistics ---
100 connects, 100 ok, 0.00% failed
round-trip min/avg/max = 3.0/3.2/6.3 ms
で、感想ですが、
matd はユーザランドで動いているせいか、15ms〜18ms 程度
遅延が生じるようです。(これは想定内)
しかし、たまにがくっと遅くなることがあります。(想定外です)
>>179 では100カウントやって、1つタイムアウトになりました。
これの原因が知りたいところです。
banana403 や banana404 からやってみればいいのかな。
このへんで、まずはめしを。
>>182 >matd はユーザランドで動いているせいか、15ms〜18ms 程度 >遅延が生じるようです。(これは想定内) ユーザランドということもあるかも知れませんが, http://qb5.2ch.net/test/read.cgi/operate/1121886018/901 >アプリとして動くみたいなので、カーネルとの切り替えがばかにならないのかなと。 >(パケット1個単位で切り替えですよね。) FreeBSD では BPF,Solaris では bufmod によるバッファリングが効いて パケット取り込みはある程度まとめて行われると思いますが, パケットの取りこぼしとか発生しないかどうかってのは,正直わかりません...... のようにバッファリングしてるわけですが,その際の待ち時間が最大 10ms に なっているので,それもあるかも知れません. >しかし、たまにがくっと遅くなることがあります。(想定外です) > >>179 では100カウントやって、1つタイムアウトになりました。 >これの原因が知りたいところです。 何らかの原因でパケットの取りこぼしが発生していることも考えられますが, そうだとするとなぜ取りこぼすのか(処理が追い付かないのか,それとも別の要因か)ってのが問題ですね. >>183 > のようにバッファリングしてるわけですが,その際の待ち時間が最大 10ms に
> なっているので,それもあるかも知れません.
なるほど、なるほど。
> 何らかの原因でパケットの取りこぼしが発生していることも考えられますが,
> そうだとするとなぜ取りこぼすのか(処理が追い付かないのか,それとも別の要因か)
> ってのが問題ですね.
そうですね。まさにこれを調べたいということで。
そもそも、普通のpingがいまいちであるらしいことに気がついた。 ... 64 bytes from 206.223.150.74: icmp_seq=4 ttl=64 time=0.175 ms 64 bytes from 206.223.150.74: icmp_seq=5 ttl=64 time=0.264 ms 64 bytes from 206.223.150.74: icmp_seq=6 ttl=64 time=0.242 ms 64 bytes from 206.223.150.74: icmp_seq=7 ttl=64 time=0.205 ms 64 bytes from 206.223.150.74: icmp_seq=9 ttl=64 time=0.273 ms 64 bytes from 206.223.150.74: icmp_seq=10 ttl=64 time=0.234 ms 64 bytes from 206.223.150.74: icmp_seq=11 ttl=64 time=0.214 ms 64 bytes from 206.223.150.74: icmp_seq=12 ttl=64 time=0.195 ms 64 bytes from 206.223.150.74: icmp_seq=13 ttl=64 time=0.155 ms 64 bytes from 206.223.150.74: icmp_seq=14 ttl=64 time=0.259 ms ... --- live22y.2ch.net ping statistics --- 30 packets transmitted, 28 packets received, 6% packet loss round-trip min/avg/max/stddev = 0.155/0.222/0.287/0.036 ms
tcpdump とかで,httping かけてる時の banana403 / banana404 上でのパケットの流れ見てみるとか
......と言おうと思ったら
>>185 う〜む,これはネットワークとかの問題でしょうか?
>>186 XOの高性能スイッチに繋がっているサーバの間の通信について、
パケットがきちんと通っているか、精査してみます。
おさらい: XOの2ちゃんねるラックにあって、高性能スイッチに繋がっているサーバ サーバ名 ホスト名 接続I/F一覧 ○雪だるま系 206.223.150.0/24 192.168.100.0/24 tiger503 live22x4 em0/em1 tiger507 live22x5 em0/em1 tiger2522 live22 em0/em1 tiger2523 live22x1 em0/em1 tiger2524 live22x2 em0/em1 tiger2525 live22x3 em0/em1 banana403 live22b1/www2 fxp0 fxp1 banana404 live22b2/www2 fxp0 fxp1 ○携帯系 206.223.150.0/24 192.168.0.0/24 tiger511 blackgoat3 em0/em1 tiger512 blackgoat4 em0/em1 tiger2507 c-au4 em0/em1 tiger2508 c-au5 em0/em1 tiger2509 c-au6 em0/em1 tiger2510 c-docomo5 em0/em1 tiger2511 c-docomo6 em0/em1 tiger2512 c-docomo7 em0/em1 banana405 c-others1/c1 fxp0 fxp1 banana406 c-others2/c2 fxp0 fxp1 ○どちらでもない系 tiger504 game10 em0 tiger509 news19 em0 tiger510 hobby7 em1 cobra2245 bbq bge0 (banana402 stock fxp0) 移動済みのはずだが、こないだの全停電でなぜか通信が途絶えた
まずは雪だるま系のパブリック側。 ping -c 30 サーバ名 を実行 tiger2522 から、 tiger2523 ○ tiger2524 ○ tiger2525 ○ tiger503 × --- tiger503.maido3.com ping statistics --- 30 packets transmitted, 26 packets received, 13% packet loss round-trip min/avg/max/stddev = 0.123/0.206/0.274/0.051 ms tiger507 ○ banana403 × --- banana403.maido3.com ping statistics --- 30 packets transmitted, 27 packets received, 10% packet loss round-trip min/avg/max/stddev = 0.135/0.192/0.298/0.031 ms banana404 × --- banana404.maido3.com ping statistics --- 30 packets transmitted, 24 packets received, 20% packet loss round-trip min/avg/max/stddev = 0.135/0.229/0.309/0.044 ms
>>188 修正
サーバ名 ホスト名 接続I/F一覧
○雪だるま系 206.223.150.0/24 192.168.100.0/24
tiger503 live22x4 em0/em1
tiger507 live22x5 em0/em1
tiger2522 live22 em0/em1
tiger2523 live22x1 em0/em1
tiger2524 live22x2 em0/em1
tiger2525 live22x3 em0/em1
cobra2247 未割り当て bge0/bge1
banana403 live22b1/www2 fxp0 fxp1
banana404 live22b2/www2 fxp0 fxp1
○携帯系 206.223.150.0/24 192.168.0.0/24
tiger511 blackgoat3 em0/em1
tiger512 blackgoat4 em0/em1
tiger2507 c-au4 em0/em1
tiger2508 c-au5 em0/em1
tiger2509 c-au6 em0/em1
tiger2510 c-docomo5 em0/em1
tiger2511 c-docomo6 em0/em1
tiger2512 c-docomo7 em0/em1
banana405 c-others1/c1 fxp0 fxp1
banana406 c-others2/c2 fxp0 fxp1
○どちらでもない系
tiger504 game10 em0
tiger509 news19 em0
tiger510 hobby7 em1
cobra2245 bbq bge0
(banana402 stock fxp0) 移動済みのはずだが、こないだの全停電でなぜか通信が途絶えた
banana403 から、 banana404 ○ tiger503 ○ tiger507 × --- tiger507.maido3.com ping statistics --- 30 packets transmitted, 24 packets received, 20% packet loss round-trip min/avg/max/stddev = 0.135/0.214/0.270/0.038 ms tiger2522 × --- tiger2522.maido3.com ping statistics --- 30 packets transmitted, 28 packets received, 6% packet loss round-trip min/avg/max/stddev = 0.135/0.197/0.259/0.037 ms tiger2523 × --- tiger2523.maido3.com ping statistics --- 30 packets transmitted, 27 packets received, 10% packet loss round-trip min/avg/max/stddev = 0.148/0.207/0.316/0.042 ms tiger2524 × --- tiger2524.maido3.com ping statistics --- 30 packets transmitted, 26 packets received, 13% packet loss round-trip min/avg/max/stddev = 0.136/0.206/0.375/0.048 ms tiger2525 × --- tiger2525.maido3.com ping statistics --- 30 packets transmitted, 26 packets received, 13% packet loss round-trip min/avg/max/stddev = 0.132/0.204/0.386/0.053 ms cobra2247 × --- cobra2247.maido3.com ping statistics --- 30 packets transmitted, 27 packets received, 10% packet loss round-trip min/avg/max/stddev = 0.117/0.208/0.423/0.063 ms
これは、、、。 2つの「うまく通信できるグループ」があって、 その間のパケットはぼろぼろロストしてるってことなのか? グループA tiger507 tiger2522 tiger2523 tiger2524 tiger2525 cobra2247 グループB tiger503 banana403 banana404
>>187-193 乙です.となると......スイッチがおかしいとか?
原因切り分けのため、 まったく関係ないところ(XOの外: PIE内部)からやってみた。 banana273 [206.223.147.225] から、 tiger2522 ○ tiger503 × --- tiger503.maido3.com ping statistics --- 30 packets transmitted, 25 packets received, 16% packet loss round-trip min/avg/max/stddev = 1.280/1.428/1.766/0.116 ms banana403 × --- banana403.maido3.com ping statistics --- 30 packets transmitted, 28 packets received, 6% packet loss round-trip min/avg/max/stddev = 0.658/0.899/2.144/0.365 ms banana404 × --- banana404.maido3.com ping statistics --- 30 packets transmitted, 28 packets received, 6% packet loss round-trip min/avg/max/stddev = 0.675/0.764/1.148/0.091 ms tiger503, banana403, banana404 だけがおかしい、で正解ですね。 でも、相互の通信はうまくいくと。 スイッチの設定上の問題の予感がします。 もう少し調べてから、状況(問題発生)をSeanさんにエスカレーションする方向で。 で、ここまでやっておじさんが 「stock (= banana402) と be (= ブラジル)との間の通信が微妙」と言っていたのを 思い出しました。 banana402は移動したと言っていますが、この間の電源トラブルのときに 巻き添えで落ちたので、同じスイッチに(あいかわらず)繋がっているのかもしれません。 これもあわせて、調べてみます。
> banana402は移動したと言っていますが、この間の電源トラブルのときに > 巻き添えで落ちたので、同じスイッチに(あいかわらず)繋がっているのかもしれません。 > これもあわせて、調べてみます。 わーい、だめだこりゃ。 --- banana402.maido3.com ping statistics --- 30 packets transmitted, 23 packets received, 23% packet loss round-trip min/avg/max/stddev = 0.665/0.734/0.801/0.041 ms
ちょっとひどそうなので、
>>190 のやつ全部、調べなおす方向で。
で、XOだけならいいんだけどということで、age。
なるほど、今までの不思議に思っていたことが 何か見えてくるかもしれませんね。
matd の挙動調査から思わぬ展開に...... でもまぁこういう問題を発見できたのはよかったと.
>>199 そうですね。
こういうのは、何かきっかけが無いと分かりにくいですから。
問題が発見できたのは良かったと思います。
banana273 から、 banana405 × --- banana405.maido3.com ping statistics --- 30 packets transmitted, 24 packets received, 20% packet loss round-trip min/avg/max/stddev = 0.657/7.266/158.052/31.441 ms banana406 ○ 不思議だ。同じOSバージョン同じサブネット同じネットワークI/Fなのに。 やはり、スイッチですね。
まさか「proxyに繋がらない。。。」の頻発も、これが原因? ってことは、プライベート側もきちんと精査しないといかんということですね。
banana273 (XOの外にあるone of standard banana)から、まとめ。 パブリック側I/Fでパケット落ちが起きているのは、 banana402 = stock banana403 = www2 banana404 = www2 banana405 = c/c1/c-others1 tiger503 = live22x4 tiger2511 = c-docomo6 の6台。 banana402 × banana403 × banana404 × banana405 × banana406 ○ tiger503 × tiger504 ○ tiger509 ○ tiger510 ○ tiger511 ○ tiger512 ○ tiger2507 ○ tiger2508 ○ tiger2509 ○ tiger2510 ○ tiger2511 × --- tiger2511.maido3.com ping statistics --- 30 packets transmitted, 26 packets received, 13% packet loss round-trip min/avg/max/stddev = 0.645/0.752/0.871/0.049 ms tiger2512 ○ tiger2522 ○ tiger2523 ○ tiger2524 ○ tiger2525 ○ cobra2245 ○ cobra2247 ○
続いて、プライベート側の調査。 プライベート側は目的毎に独立した2つのサブネットあり。 雪だるま系: 192.168.100.0/24 banana403 から。 tiger507のプライベート側がだめ。 banana404 ○ tiger503 ○ tiger507 × --- 192.168.100.6 ping statistics --- 30 packets transmitted, 24 packets received, 20% packet loss round-trip min/avg/max/stddev = 0.147/0.262/1.422/0.245 ms tiger2522 ○ tiger2523 ○ tiger2524 ○ tiger2525 ○ cobra2247 ○
(続き) 携帯系: 192.168.0.0/24 banana405 から。 プライベート側I/Fでパケット落ちが起きているのは、 banana406 = c/c2/c-others2 tiger2509 = c-au6 tiger2510 = c-docomo5 tiger2512 = c-docomo7 の4台。 ごていねいに、全キャリアに一つ以上異常なのがある。 この「ババ」を引くと、「proxyに繋がらない。。。」が頻発していると。 banana406 × --- 192.168.0.1 ping statistics --- 30 packets transmitted, 26 packets received, 13% packet loss round-trip min/avg/max/stddev = 0.150/0.263/1.020/0.196 ms tiger511 ○ tiger512 ○ tiger2507 ○ tiger2508 ○ tiger2509 × --- 192.168.0.163 ping statistics --- 30 packets transmitted, 27 packets received, 10% packet loss round-trip min/avg/max/stddev = 0.140/0.307/1.027/0.204 ms tiger2510 × --- 192.168.0.164 ping statistics --- 30 packets transmitted, 27 packets received, 10% packet loss round-trip min/avg/max/stddev = 0.141/0.222/0.352/0.059 ms tiger2511 ○ tiger2512 × --- 192.168.0.166 ping statistics --- 30 packets transmitted, 28 packets received, 6% packet loss round-trip min/avg/max/stddev = 0.153/0.290/1.097/0.225 ms
ということで、 1) なぜこんなことがXOの特定のスイッチで起こったのか 状況をみる限りでは、 何らかの意図(帯域制限など)を持って設定しているとは考えられないおかしさです。 => 先日の停電でスイッチがおかしくなった or 壊れた? => 何か設定を変えた? => その他? 2) どうすれば直るのか => スイッチのリセット? => スイッチの設定修正? => スイッチの交換? なお、このスイッチは1Gbps対応・VLAN設定対応等可能で、 処理能力もスイッチとしてはPIEでいちばんでかいもののはずです。 つまりもし万一スイッチのハードウェア障害だとすると tiger サーバや cobra サーバと同様、 交換部品がどきどき、、、以下略 の予感も。
いずれにせよXOの一部サーバの通信に異常が発生している、 という状況はつかみました。 また携帯系の「proxyに繋がらない。。。」が急に多発するようになったのも、 ほぼこれが原因と考えられます。 状況を書いて、Seanさんに調査と修正依頼を出すことにします。 とりあえず、以上で、 しばらく本業のため、依頼メール出すのはしばらく後になります。
2証で時々発生してるエラー 「be.2ch.netとの通信に失敗しました」 これも、それのせいなのかな?
即レスすぎて、ちょっとビックリ ふむふむ、2証は402なのか・・・ 原因が判明すれば諦めがつきますね、どうもでしたヽ(´―`)ノ
このぐらいでPIEのネットワーク的がへたれる(トラフィックとか処理量とか
ことはないと思うので(*1)、たんたんと不具合報告して、たんたんと直してもらうということで。
(*1 じゃなきゃこんな↓プロモーションを大々的にやらないだろうと)
http://www.maido3.com/server/banana100/ 1) 電源春暖によりおかしくなったかもしれないので、 まずはスイッチをリセット・電源再投入してもらう 2) それでもだめなら、じっくり取り組む で、いこうかと。 1) は Sean さんとのタイミングがあった時にやろうと思うので、 ショートノーティスでいきなりやる可能性あるです。 つまり「やるよー」「ぼん」で、一時的に実況とニュー速と携帯が、 数分程度全部死にます。 というわけで、あらかじめ告知(これがそれに相当)をば。
>>213 > 1) 電源春暖によりおかしくなったかもしれないので、
うわーん。瞬断だってば。
∧__∧ (><* ) いつでも来てくださいませっ! (⊃⌒*⌒⊂) /__ノωヽ__)
366 名前:root▲ ★[] 投稿日:2006/03/03(金) 20:06:22 ID:???0
Davidさん、Jimさん、私(Seanさん)にまずはパケット落ちの状況を送ってくれ、
という話になりました。そのうえで対応すると。
すぐのリブートはなくなりました。
以降は別スレにて。
>>217 ということで、状況次第ですね。
Seanさん、Davidさん、Jimさんにメールを送った。 管理人と関係者にCc:。
Sean-san, David-san, Jim-san, Cc: 2ch related folks, (中の人)-san, This is Mumumu. As I already reported to Sean-san, now we encountered suspicious packet dropping (approx. 15%-30%) at XO location servers. I investigated the current status of the trouble, and I will report to you about it per-server basis. Please be careful: A part of XO servers are connected two network I/Fs. So, I call "primary I/F", it is xx0 I/F on FreeBSD (em0, fxp0, bge0), and "secondary I/F", it is xx1 I/F on FreeBSD (em1, fxp1, bge1). The following I/Fs of servers are now in trouble. banana402 (primary I/F: fxp0, 100Mbps FDX) banana403 (primary I/F: fxp0, 100Mbps FDX) banana404 (primary I/F: fxp0, 100Mbps FDX) banana405 (primary I/F: fxp0, 100Mbps FDX) banana406 (secondary I/F: fxp1, 100Mbps FDX) tiger503 (primary I/F: em0, 1Gbps FDX) tiger507 (secondary I/F: em1, 1Gbps FDX) tiger2510 (secondary I/F: em1, 1Gbps FDX) tiger2511 (primary I/F: em0, 1Gbps FDX) tiger2512 (secondary I/F: em1, 1Gbps FDX) Please investigate the trouble and fix it. These servers are very important because they have so many mobile phone users and 2ch BBS for TV live broadcast users. Best regards,
スイッチのリブート by Seanさん、入りました。 これから確認しますが、パケロスなくなったっぽい。 --- tiger503.maido3.com ping statistics --- 30 packets transmitted, 30 packets received, 0% packet loss round-trip min/avg/max/stddev = 1.204/1.502/3.830/0.451 ms
お疲れ様です。 PCのこちら側で小躍りしてみます。
www2のパケットロス・遅延ともになくなりました。 全てがうまくいっているように見えます。 64 bytes from 206.223.150.96: icmp_seq=23 ttl=63 time=0.832 ms 64 bytes from 206.223.150.96: icmp_seq=24 ttl=63 time=0.779 ms 64 bytes from 206.223.150.96: icmp_seq=25 ttl=63 time=3.529 ms 64 bytes from 206.223.150.96: icmp_seq=26 ttl=63 time=0.754 ms 64 bytes from 206.223.150.96: icmp_seq=27 ttl=63 time=10.495 ms 64 bytes from 206.223.150.96: icmp_seq=28 ttl=63 time=13.702 ms 64 bytes from 206.223.150.96: icmp_seq=29 ttl=63 time=21.688 ms --- www2.2ch.net ping statistics --- 30 packets transmitted, 30 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.668/2.298/21.688/4.608 ms
banana403 = www2 の受付嬢 にログインしてみました。 生まれ変わったように反応が速くなっていました。 どうやら先日の停電以来、 XOロケーションのスイッチが、ずっと本来の力を発揮できない状態に陥っていたようです。
Seanさんは明日に備えてオフラインになりました。 こうなれば急ぐことはないので、 じっくり調べて、結果を別途メールで報告する旨伝えました。 私もいったん、オフラインで。
これなら、live22x系もmatdにのっけても大丈夫な予感。 明日昼にでも改めて、banana403/404のリブートテストとかそのへんを。
概ね問題ないことを確認しました。 教訓: 高性能でインテリジェントなスイッチはある種サーバと同じところがあり、 電源を手順に従ってきちんと落としたりきちんと上げたりしないと、 不可解な状態に陥ることがある。 で、不可解な状態になると原因の切り分けは結構大変。
>>223-226 乙です.すんなり解決でめでたしめでたしですね.
メモリにゴミファイルと虫が....カサコソしてた。 まぁ今は順調だからよかた。 #いつからパケットロスあったんだろう? #これはパケロスしてるかいちいちping掛けないといかんのね。
>>230 瞬断のあとって意外にメモリの内容がごく一部化けているケース多い
それでエラーが出て変な状態になるケースは
エンタープライズなレベルではよくある話みたいですな
そういえば、httpdのレスポンスが変な鯖があったような希ガスるです。。。@いまさら
>>233 えっと、もう記録が残っていないので何とも云えないのですです(苦笑)@監視係。のliveデータ
>>220 への自己フォロー
Folks,
Sean-san rebooted the Summit switch and all of the trouble of packet
dropping is now fixed.
I've checked servers and I verified all 2ch XO servers are fine.
Sean-san, thank you for your work.
So, we've got a good experience for intelligent switch management.
It is very sensitive and suddenly power outage is sometimes very
harmful for intelligent switch, too.
Regards,
>>227 瓢箪から駒のようで、乙でした。
public側も電車男スイッチにつながっていたのですね。
てっきりprivate側用のスイッチと思っていました。
>>166 FreeBSDだったら、CARPで仮想IPをそれぞれに割り当てて、
DNSラウンドロビンでできるようなきがする。
マルチキャストフレームが同一VLAN内に流れると思うので、
同じネットワークに属するホストの負荷が高くなるかもしれませんが。
春ということで全サーバ/スイッチの再起動をしておくとかするとどうなるのかな
スケジュールには載ってないんですがBETA3出ましたねぇ そろそろRCだと思ったんですが
某有名メーカーのHUBはAutoネゴシエーション設定の状態で ケーブルの抜き差しすると認識状態が変わったりします。 (100MFull→100Mhalf) 一部機器では100MFullしか受け付けないものもあり 問題になります。(なりました(つД`) ) 各HUBのポート設定はどうなってますか?
>>236 > public側も電車男スイッチにつながっていたのですね。
ですね。VLAN切っていると。
で、CARP使うですか。
マルチキャスト(というかたぶんエニーキャストの方が適切かな)なわけですが、
それ(フレームが流れること)は、私もちょっと気になったです。
>>237 不可解なトラブルが出てからでもいいかんじ。
>>238 BETA3いきましたか。
ということは、多分例によってちょっと遅れですね。
>>239 PIEでも、これまでもたまに問題になったです。
今は、
10Mbpsなサーバでは、full-duplexを明示的に指定していて、
100Mbpsなサーバでは、autoでネゴがうまくいくやつはautoで、
autoだとhalf-duplexになってしまうものはfull-duplex指定しているです。
前、100Mbps full-duplex固定指定で一度パフォーマンスが出なくなってしまう
症状が起こったので、そうしているです。(このスレの過去ログにあるはず)
で、週明けにでも live22x 系を matd 環境に移行しようかなと。
>>155 のテストも含めて、ex14をApache 2.2系にしてみるか。
こんなものが、davidxuさんのところに。
http://people.freebsd.org/ ~davidxu/patch/libc_thr_stubs.patch
何のパッチだろう。
>>242 %httpd -V
Server version: Apache/2.2.0
Server built: Mar 4 2006 07:15:17
Server's Module Magic Number: 20051115:0
Architecture: 64-bit
Server MPM: Worker
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/worker"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_FLOCK_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/usr/local"
-D SUEXEC_BIN="/usr/local/sbin/suexec"
-D DEFAULT_SCOREBOARD="/var/run/apache_runtime_status"
-D DEFAULT_ERRORLOG="/var/log/httpd-error.log"
-D AP_TYPES_CONFIG_FILE="etc/apache22/mime.types"
-D SERVER_CONFIG_FILE="etc/apache22/httpd.conf"
で、Makefile.local に
CONFIGURE_ARGS+= --enable-nonportable-atomics
って書いてみた。
>>244 リンク先読みました。そのようですね。
今試し中のパッチもdavidxuさんのもの(
>>138 )です。
で、明日夜は何やら高トラフィックが来るとか、なんとか。
>>247 Revision 1.121 / (download) - annotate - [select for diffs], Thu Feb 16 01:33:36 2006 UTC (2 weeks, 3 days ago) by deischen
Branch: MAIN
CVS Tags: HEAD
Changes since 1.120: +1 -0 lines
Diff to previous 1.120 (colored)
Don't forget to initialize a tailq before using it.
MFC candidate
Noticed by:luoqi
んーむ、当てたほうがよさげですね。
ソースを見る限り、TAILQを初期化せずに使用しているという明らかなバグなの で、パッチ当てた結果、動作が変になることはないはずです。 ちなみに、MySQLはsignal 10で落ちます。
>>249 どうもです。live22に当ててみました。
live22x[123] にも、当てたほうがいいかもですね。
httpd も例の虫を踏んだ場合には signal 10 で落ちているです。
同じ理由かもですね。
とりあえず libpthread.so を作り直して、httpd と bbsd をリスタートしました。
これは期待しちゃっていいのかな? 今夜がすげえ楽しみです
>>252 虫取りを2つ当てたので、それが効果あるかということになるですね。
手ごたえは確かですが、さて、どうなるのか。
>>247 を、live22x[123] にも当ててみた。
よくコードを見てみたら、M:N スレッドの場合は、問題の部分が実行される可能 性はほとんどないですね・・。なので、パッチ当てなくても大丈夫だったかも。 あと、FreeBSD + Apache 2.2.0(worker)の場合、configureスクリプトが pthread_kill()関数の検出に失敗するんですが、これってよく知られているのかな。 上記理由により、apacheの終了時に child process XXXX still did not exit, sending a SIGTERM のログが出て、結構うざかったりします。 % env CFLAGS="-O2 -pthread" ./configure --with-mpm=worker のように-pthreadを環境変数に指定するときちんと検出するんで、うちでは そうやってます。 ただ、mod_perl2なんかを組み込むと、上のようにconfigureをやってもやっぱり still did not exitのログは出ちゃいますね。
>>255 > 上記理由により、apacheの終了時に
> child process XXXX still did not exit, sending a SIGTERM
> のログが出て、結構うざかったりします。
原因はそれだったのですか、、、。
で、M:Nスレッドやめて、1:1にしてみるかな。
やっぱり虫踏むんで。
個人的には、6.0-RELEASE以降のlibthrはお薦めです。 ほとんどの場合、libpthreadより速いですし、現在も活発に開発されてますし。
httpdが暴走する症状が、出るようになった。 < フロント Apache 2.2 系の虫なのかも。
うーん、どうやろうが、 os_version="600034" # 502102 is when libc_r switched to libpthread (aka libkse). if test $os_version -ge "502102"; then apr_cv_pthreads_cflags="none" apr_cv_pthreads_lib="-lpthread" else が選ばれるようになっている、、、。 ( in srclib/apr/configure ) これは、libthr 化するのは容易ではないっぽい。
/etc/libmap.confを使用すれば良いのでは? echo "libpthread.so.2 libthr.so.2" > /etc/libmap.conf
>>260 やはりそれですか。
今日の騒ぎが落ち着いたら、やってみるです。
# prefork MPM にしました。< live22
LA=340 かぁ。 prefork MPM でも、 やっぱりだめなものはだめか。 ということは、スレッドが原因じゃないっぽいですね。
装置が働けば、それなりに動くと思うけど、 また死ぬ予感。
live22x のスレは、流れまくりなんで、ここで。 もう1回落とします。< live22
rootたんがんばってrootたん コマンダーなんかに負けないで!
worker MPM で、libmap.conf を設定。(
>>260 )
live22x1 にも、
>>274 を投入。
live22x2/live22x3 は、とりあえず今のまま(比較のため)。
フロントでの httpd の暴走は、
>>275 をやっても起きる模様。
kill では死なず、kill -9 しないとだめ。
で、今のところ確かに目に見えて軽いですね。< libmap.conf 設定後 このあと、どうなるのか。
明らかに軽いので、live22x[23] にも、libmap.conf を設定。
終わったら、フロントのApacheは2.0系に戻すか。 暴走がひどいみたい。 # ex14でそうならないのは、不思議だけど。
難しいようなことだと思いますので、ガンバレと言うことしかできませんが、いつも乙です。
LockFile /var/log/accept.lock #XXX#LockFile /md/accept.lock にしてみた。 暴走はこれが原因っぽい。
再度設定変更。 しかしいまいちなので、戻し中。< live22
落ち着いたかな。 番組終了までは、基本的にこれで。
バックでは暴走が起こらないということは、read.cgi かもしんないですね。
で、暴走ですが、RUN じゃなくて accept の状態で暴走になるですね。 ううむ。
わかったこと: - MPM の種別は虫には関係ない。prefork, worker どちらでも起こる。 - pthread か thr かも関係ない。どちらでも起こる。 - ひとたび虫を踏むと、httpd リスタートでも一発では復活しないっぽい。 しばらく待つと(たぶんカーネル内で何かが起こって?) 復活する。 - 虫を踏むと、httpd が kill では死ななくなり、kill -9 しないといけない。
live22x1 を Apache 2.0.55 (worker MPM)に戻した。 しばらく観察。暴走起こらないようならlive22x[23] も。
>>289 追加
で、2つの虫取りは、いずれも原因ではなかった。
…となると、次なる手は、、、。 すぐにはないかも。 FreeBSD 6.1R に期待か。 5.2.1R でだめだめだった SMP も、5.3R では動いたわけで。
>>292 お忙しいところお手数ですが、サーバーダウンスレの次スレお願いできますでしょうか? サーバダウン(鯖落ち)情報 part96 ◆サーバダウン(鯖落ち)情報の為のスレです、回線異常等も扱うかも。 前スレ:http://qb5.2ch.net/test/read.cgi/operate/1140710423/l50 ◇サーバダウンの場合、「ページを表示できません」「サーバーが見つかりません」などと表示されます。 これらのエラーメッセージではなく、別のページが表示される場合はサーバダウンではありません。 ※ただ「重い」だけの場合はスレ違いです、以下のスレでお願いします。 重い重い重い重い重い重い重い×35@運用情報 http://qb5.2ch.net/test/read.cgi/operate/1132144274/ ◆書き込む前に過去ログや以下のサイトを見て状況を確認しましょう 2ちゃんねるサーバ負荷監視所:http://ch2.ath.cx/load/ 2ch鯖監視係。:http://sv2ch.baila6.jp/sv2ch01.html 2ch鯖勝手な監視所:http://users72.psychedance.com/ ※上の二つと比べて精度が低いので参考程度に思ってください。 ※5分以上繋がらなかったら落ちているのかもしれません、それまでマターリ待ってみましょう ◇同一鯖の別板でも似たような症状が出る場合は、鯖落ちの可能性が高いです 稼動中のサーバ一覧:http://mumumu.mu/serverlist.html 鯖-板表:http://news.kakiko.com/mentai/2ch.html システム 総合情報: http://www.domo2.net/system/ ◆関連リンク ◇質問や雑談は質問・雑談スレでお願いします。 (流れが速いのでリンクは貼りません。「質問」でスレタイ検索してください。) ◇ CGIや板の挙動等がおかしい時はこちらへ報告をお願いします 2chの動作報告はここで。 パート19 http://qb5.2ch.net/test/read.cgi/operate/1140600013/ ◇新しい技術をテストしているかもしれないので、こちらもチェックしてみてください 2ch特化型サーバ・ロケーション構築作戦 Part20 http://qb5.2ch.net/test/read.cgi/operate/1140540754/ ◇サーバダウンを確認できたら、こちらをチェックしてみてください 避難所一覧 http://kisekiwo.com/hinan/index.htm 鯖落ち専用 臨時板・スレ案内所2 http://qb5.2ch.net/test/read.cgi/operate/1117059617/ あとフロント側httpd暴走の原因が、何かってことですね。 Apache 2.0.55 / worker MPM + PHP 4系 では暴走しなくて、 Apache 2.2.0 / worker MPM + PHP 5系 では暴走する とすると、PHP が原因であることも、ありうるのかも。
>>295 ちなみに、live22 (backend)では、
Apache 2.0.55 + worker MPM
Apache 2.2.0 + worker MPM
いずれも暴走は起こらず。(without PHP)
んと、そうか。 携帯系(c-docomo)はPHP5にしたけど、 worker MPMではだめで、prefork MPMで動かしたんだっけか。 フロント側ではPHPは使っているから、なしにはできないけど、 PHP4にするという手はあるのね。 これも、あとであわせて。 まずは2.0.55にダウングレードしてバージョンをあわせたら、いったんごはんにしよう。
http://ns1.php.gr.jp/pipermail/php-users/2004-December/024558.html > Apache2 側が worker MPM ですと、
> --enable-maintainer-zts オプションが必要になります。
ふうむ。
とりあえず FreeBSD の ports で、
>>299 をケアしていないっぽいことはわかった。
いったん、ごはんで。
PHPが頻繁に起動されないなら、PHPモジュールやめてCGIにしてみるって手もあるかも。
--enable-maintainer-zts って、いったい何が根拠(ソース)なんでしょうかね。 PHP5.1.2のソースコードのconfigureのヘルプ見ると、激しく胡散臭い気がします。 $ ./configure --help | grep zts --enable-roxen-zts Build the Roxen module using Zend Thread Safety --enable-maintainer-zts Enable thread safety - for code maintainers only!! configure時にApacheがマルチスレッドMPMなら Zend Thread Safetyが自動的に有効になり、 それで十分と聞いたんですけどねえ。
zts は有効になっていると思うですね。 20020429-zts っていうディレクトリに入るし。
今日はもうやらないけど、あとで、 Apache 2.2.0 / worker MPM + PHP 4系 を、やってみるです。
で、libmap.conf の手法は、BG3/4 (= squid) にも使えそうですね。 このへんも、明日以降に。
>>301 >>303 勝手な想像ですが、アクセスのほとんどがPHPと関係ない live22xN/www2fN なら、
mod_cgi(d)にしたほうがメモリ節約にもなる、かもかも。
/var/log/messages をチェック中。 calcru: のエラーは出ていませんでした。 これまでは虫を踏んだときはほぼ必ず出ていたわけですが、 それは、直った模様。 signal 10 で落ちるのは、出ている模様。 Mar 5 06:12:51 <0.6> tiger2522 kernel: pid 16750 (httpd), uid 2001: exited on signal 10 Mar 5 06:12:59 <0.6> tiger2522 kernel: pid 16761 (httpd), uid 2001: exited on signal 10 Mar 5 06:13:00 <0.6> tiger2522 kernel: pid 16774 (httpd), uid 2001: exited on signal 10 Mar 5 06:13:00 <0.6> tiger2522 kernel: pid 16744 (httpd), uid 2001: exited on signal 10 Mar 5 06:13:03 <0.6> tiger2522 kernel: pid 16752 (httpd), uid 2001: exited on signal 10 Mar 5 06:13:17 <0.6> tiger2522 kernel: pid 16781 (httpd), uid 2001: exited on signal 10 Mar 5 06:13:39 <0.6> tiger2522 kernel: pid 16707 (httpd), uid 2001: exited on signal 10 Mar 5 06:13:39 <0.6> tiger2522 kernel: pid 16656 (httpd), uid 2001: exited on signal 10 ...
>>308 なる気がしますね。
PHPなのは、例えば2ちゃんねるプロバイダや公式p2からの過去ログ取得とか、
そのへんの模様。
PHPをCGIスタイルで起動するのは、 どう設定するのがいいのかしら。(やったことがないので)
虫の再現について:
というか、限界を見ておくという意味でも必要かなと。
雪だるま作戦のスレを待ち続けるスレ Part4
http://aa5.2ch.net/test/read.cgi/nanmin/1140775455/558 現状:
>>289 バック: Apache 2.2.0 / worker MPM (without PHP) + libmap.conf (thr)
フロント: Apache 2..0.55 / worker MPM + PHP 4.4.2 + libmap.conf (thr)
明日以降の予定:
- Apache 2.2.0 / worker MPM + PHP 4.x系 を試してみる
- PHPを外部起動にしてみる
- 虫の再現実験
- BG3/4でlibmap.conf設定(squid)
あとは、、、。 雪だるまを前に進めるために、サーバの移動の相談をしてみるかな。 cobra2247 のバックエンドが tiger2522 よりどのくらい強いのか、 ぜひ、試してみたい。
>>312 自分も何回か試しただけなんですが、理論上これであってるはずです
■PHP側の修正
スクリプトの先頭に #!/usr/bin/php などを加える。
スクリプトに実行権限を付ける。
PHPのバイナリ?にはCGI版とCLI版があって、CLI版は Content-Type:text/html\n\n を吐かない。
もしCLI版としてコンパイルされてるなら再コンパイルしてCGI版にするか、スクリプト内でヘッダーを吐くように変更する。
/usr/bin/php と /usr/bon/php-cgi って感じで分かれているOS/ディストリビューションもあるらしい。
■mod_cgi(d)で動くようにする設定
(1) スクリプトの拡張子をcgiにする。
(2) AddHandler cgi-script .php
(3)
<ほにゃらら>
SetHandler cgi-script
</ほにゃらら>
ううむ、スクリプトの保守性の観点からは、そっちの修正は避けたいような。
やっぱそうですよねえ。 phpのバイナリをDocumentRoot以下に置いてmod_actionsを使えば #!/usr/bin/phpを加えないことも出来るらしいですけど よくわからなかったです
あと、考えられるのは、 実は読ませるだけでバックエンドがおなかいっぱい、という線か。 これは、ABあたりで負荷実験すればわかるのかもなと。
同一鯖上でポート番号変えて PHP 専用 httpd を立ち上げて, mod_proxy でそっちに渡すって方法もありますけどね. 今は単に話が出てるだけというレベルですが,将来的には静的コンテンツはマルチスレッドプロセス, PHP や mod_perl のような動的コンテンツはシングルスレッドプロセス,にそれぞれ 振り分けて処理するような MPM も作ったらどうか,みたいな話もあるようで.
フロントエンドでも、これ出まくりでした。 Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2895751 usec to 2895627 usec for pid 34379 (httpd) Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2870536 usec to 2870519 usec for pid 34349 (httpd) Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 10355073 usec to 10354983 usec for pid 68917 (httpd) Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2671023 usec to 2670785 usec for pid 35714 (httpd) Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2803103 usec to 2801908 usec for pid 35711 (httpd) Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2758074 usec to 2758009 usec for pid 35468 (httpd) Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2895751 usec to 2895627 usec for pid 34379 (httpd) Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 2870536 usec to 2870519 usec for pid 34349 (httpd) Mar 5 06:19:27 <0.2> tiger2523 kernel: calcru: runtime went backwards from 10355073 usec to 10354983 usec for pid 68917 (httpd) パッチ当てていないので、当然といえば当然かなと。 つまり、フロントでも初めて負荷が問題になった形。 で、これが出ると暴走状態になるという線は、ありうるのかもなと。
>>320 なるほど、ここの過去ログでもどこかで話した、
コンテンツの種別ごとの分業を図る路線ですか。
live22の虫再現試験の最中ですが、 banana403 / banana404 のリブートテストいきます。 これをクリアしたら、live22x も matd 環境へと。
同じ状態に陥ったですね(うまく落ちない)。 リブート要請いきます。
リブート依頼出しました。 matd が上がっていると、だめなのかな。
リブートいただきました。 もう1回テストしてみるです。 こんどは先に、matd を切ってから。
heartbeat を切って、切り替わったのを確認してから reboot コマンドを入れました。 が、状況は同じ模様。ううむ。 再度、リブート要請。。。
リモートコンソールを見ると、rebooted by だれだれ は出ていて、 プロセスは切れているみたいですが、その先にいかない模様。 つまり、ファイルシステムのsync等のシャットダウンプロセスにいかない状態。 (なので強制リブート時にはfsckが動く) ううむなぜだ。
今は、6.0-RELEASE-p5まで上がってますけど banana403も同じですか?
元に戻ったのを確認して、banana404 (待機側)でテスト。 まずは heartbeat を切ってから。 ちゃんとリブートかかった。
>>329 ちょっと古いですね。
そのへんに虫がいるとかですかね。
%uname -a
FreeBSD banana403.maido3.com 6.0-RELEASE-p4 FreeBSD 6.0-RELEASE-p4 #2: Mon Feb 20 23:46:08 PST 2006
[email protected] :/var/src/sys/i386/compile/I386_BANANA_60_FXP i386
今度は、heartbeat を切らないでリブートテスト。< 404
切れませんね。< 404 syslog の exit メッセージもないので、プロセスを切るところでしくっていると推測。 heartbeatが悪さをしているのか。 しばらく待ってだめなら、再度、要請へと。
>>331 まぁ、最新版にしてどうなるかって感じだけですけど。
要請しました。 上がったことを確認したら、 しばらく本業するので、実験はいったん中断で。
とりあえず、このへんか。 %ps axww | grep heart 567 ?? Ss 0:00.52 heartbeat: heartbeat: master control process (heartbeat) 573 ?? I 0:00.00 heartbeat: heartbeat: FIFO reader (heartbeat) 574 ?? S 0:00.04 heartbeat: heartbeat: write: ucast vr0 (heartbeat) 575 ?? I 0:00.01 heartbeat: heartbeat: read: ucast vr0 (heartbeat) 576 ?? S 0:00.09 heartbeat: heartbeat: write: ping 206.223.150.1 (heartbeat) 577 ?? S 0:00.05 heartbeat: heartbeat: read: ping 206.223.150.1 (heartbeat) 669 ?? I 0:00.01 sh -c /usr/local/lib/heartbeat/ipfail 672 ?? S 0:00.10 /usr/local/lib/heartbeat/ipfail matd ということも考えられなくないけど(こっちは別途検証で)。
上がりました。< banana404 元に戻ったはず。< www2 いったん、実験終了で。
> + fixed a shutdown hang problem ふうむ。こんなことが書いてあるあたり、、、。 # しばらく本業モード。
リブートの中の人がオンラインな間に、
>>340 の準備だけしておこう。
カーネル入れ替えとリブート必要につき。
banana404 準備工事完了。 banana403 とりかかり中。
heartbeat を切って、 banana404 に切り替わったことを外から確認して、 banana403 をリブート中。 やはりheartbeatがいなければ、正しくリブートする模様。
リブート完了。 数分のうちに、再度切り替わりが起こる予定。
切り替わりを確認。 matd の立ち上げなおしのタイミングが問題なのか。 これは、あとで調整しよう。
# CARP and PFSYNC
device carp
device pf
device pflog
device pfsync
このへんを追加してカーネルを作り直して、リブート。< 403/404
バージョンも更新。
%uname -a
FreeBSD banana403.maido3.com 6.0-RELEASE-p5 FreeBSD 6.0-RELEASE-p5 #1: Sun Mar 5 23:07:35 PST 2006
[email protected] :/var/src/sys/i386/compile/I386_BANANA_60_FXP_CARP_PFSYNC i386
FreeBSD でも 5.4R ぐらいから使えると。
ここが本家か。
PF: Firewall Redundancy with CARP and pfsync
http://www.openbsd.org/faq/pf/carp.html これ読めと。
Apache 2.0.55 + 1:1 スレッドでも初めて暴走を観測。 top で見ると、ucond という状態だった。 これは、例の虫を踏んだ時に(1:1スレッドで)出るものと同じ。 gdbでトレースすると、こんな感じだった。 (gdb) where #0 0x283b04d3 in _umtx_op () from /lib/libc.so.6 #1 0x2836d066 in _thread_bp_death () from /usr/lib/libthr.so.2 #2 0x2836c5bd in pthread_cond_destroy () from /usr/lib/libthr.so.2 #3 0x28329a2d in apr_thread_cond_wait () from /usr/local/lib/apache2/libapr-0.so.9 #4 0x080688b7 in ap_queue_info_wait_for_idler () #5 0x080666bd in listener_thread () #6 0x283277e8 in dummy_worker () from /usr/local/lib/apache2/libapr-0.so.9 #7 0x2836c05d in pthread_create () from /usr/lib/libthr.so.2 #8 0x00000000 in ?? () (gdb)
>>348 >#2 0x2836c5bd in pthread_cond_destroy () from /usr/lib/libthr.so.2
>#3 0x28329a2d in apr_thread_cond_wait ()
これが不可解ですね.
----[thread_cond.c]---------------------------------------------------
APR_DECLARE(apr_status_t) apr_thread_cond_wait(apr_thread_cond_t *cond,
apr_thread_mutex_t *mutex)
{
apr_status_t rv;
rv = pthread_cond_wait(&cond->cond, &mutex->mutex);
#ifdef PTHREAD_SETS_ERRNO
if (rv) {
rv = errno;
}
#endif
return rv;
}
----------------------------------------------------------------------
なぜ apr_thread_cond_wait() 中で pthread_cond_destroy() されるのか......
pingかかるまではできたけど、matdは応答せず。 ANY で listen している ssh には 206.223.150.96 で繋がったので、 matd の問題、、、なのか。(一応matdのリスタートはしてみました) 何か、設定間違った or 足りないのかなと。 fxp0: 外向けI/F vr0: 直結I/F あらかじめbanana403とbanana404で、/etc/pf.confに、 # for MAT/CARP/PFSYNC pass quick on vr0 proto pfsync pass on fxp0 proto carp keep state と書いておく。そのうえで、とりあえず以下を手で実行。 banana403 as master: # sysctl -w net.inet.carp.preempt=1 # ifconfig pfsync0 syncdev vr0 # ifconfig pfsync0 up # ifconfig carp1 create # ifconfig carp1 vhid 1 pass mugyu 206.223.150.96 255.255.255.0 banana404 as standby: # sysctl -w net.inet.carp.preempt=1 # ifconfig pfsync0 syncdev vr0 # ifconfig pfsync0 up # ifconfig carp1 create # ifconfig carp1 vhid 1 pass mugyu advskew 128 206.223.150.96 255.255.255.0
carp1 はいわゆる cloned interface だったりするので、 そのへんの問題、、、。かも。 例えば pcap で捕捉がうまくできてないとか。
net/ip_carp.c を見ると、BPFには対応しているっぽいですね。 fxp0 と carp1 の所属するネットワークがまったく同じだと、 carp1 にアタッチしたくても、fxp0 になってしまうとか、、、。なのかな。 いずれにせよ、落ち着いて見てみる感じで。
あ、、、ipf.rules で、 block in quick proto tcp from any to 206.223.150.96 port = 80 って書いてあるのが原因かも、かも。 今は時間とれないので、あとでこれを解除してから。
>>353 carp1 に行く前に fxp0 段階で block されてしまってるってことかな.
block in quick on carp1 proto tcp from any to 206.223.150.96 port
>>354 ミス......
block in quick on carp1 proto tcp from any to 206.223.150.96 port = 80
とかにすればいいんですかね.carp1 に対して ipf が機能するのかどうかはわかりませんが......
で、なんか素の状態で、 net.inet.carp.arpbalance Balance local traffic using ARP. Disabled by default. って書いてあったりします。 …バラ色の未来?
>>357 それは......前 LVS で苦しんで代替手段を探してた時にもあったと思いますが, carp でのロードバランスが有効なのは同一セグメント内だけですね. http://www.freebsd.org/cgi/man.cgi?query=carp Note: ARP balancing only works on the local network segment. It cannot balance traffic that crosses a router, because the router itself will always be balanced to the same virtual host. >>358 いや、banana403 と banana404 を両方稼動させられるんじゃないかなって。
…いや、甘いかな。 いずれにせよ、まずはベーシックな状態が動かないと。
>>359 あぁ,上の方で言ってた Active + Active ってやつですか.
>>361 ですね。
いずれにせよ、
>>360 かなと。
# 本業的にはいよいよ「地獄の3月(前からわかっていたけど)」だったりしますが、、、。
>>353 pfとipfって共存できるすかね。
今回はセッションの同期はないので、pfsyncは必要ないと
思うのですがどうなんでしょ。
>>355 >>347 のURLの下の方にあるRuleset Tipsに"Filter the physical interface"と
あるので、sampleをもとにするとpfでは、
pass in on fxp0 inet proto tcp from any to carp0 port 80
なんでしょうかね。
きりわけのため、filterは全部とっぱらってやるのがよいのでは。
>>357 arpbalanceっていうのがどういうものかわかりませんが、
たぶん、以下URLのGLBP相当ではないかと。
http://www.cisco.com/japanese/warp/public/3/jp/product/hs/switches/cat6500/prodlit/pdf/Campus_Design.pdf フロー毎にルータがarp requestを投げてくれるのなら、
load balanceできそうですが、普通はそんなことないと思うので、
1台しかルータがつながっていないのならできないと思います。
すみません、matdではpcapでパケットを取り出しているから、 パケットを捨てるために、passでなくblockなんですね。 # なんか、まだ勘違いしていそう。
>>363 なるほど、carp だけでいけるということですか。
>>364 ふむむ。
まずは、やってみるです。
>>365 そういうことですね。
6.1には間に合いそうにないからそれ以降に入ってくるかな
標準Cライブラリの最新版「glibc 2.4」リリース
http://pcweb.mycom.co.jp/news/2006/03/07/342.html ふうむ、 carp1に、普通にbind()することはできる。 でも、tcpdump -i carp1 とやっても、何も出ない。 つまり、bpf (つまりlibpcap)ではcarp1は捕捉できないらしい、、、。
なるほど、、、。206.223.150.96 宛てのパケットは、fxp0 に到着するのか。 ううむ。
input_if=fxp0 なんて、matd.cf に書けると、うれしかったりするのかな。
>>367 glibcを搭載したFreeBSDというと、Debian GNU/kFreeBSDですか?
http://www.debian.org/ports/kfreebsd-gnu/ …しかし、
>>370 なんてできるんだろうか。
それはとりあえず、おいておいて。
状況をダンプ。
まず、pfsync は確かに必要ありませんでした。
CARP だけで、ちゃんと VRRP のパケット出して通信できているっぽい。
で、CARP でサービス用IPアドレスを carp1 とかにつけると、
こういう状態になる。
fxp0: 206.223.150.95
carp1: 206.223.150.96
しかし、この状態において 206.223.150.96 宛てのIPパケットは、
carp1 ではなく、fxp0 I/F に到着する。
つまり、206.223.150.96 宛てのパケットは、
tcpdump -i carp1 では何一つ拾うことはできなくて、
tcpdump -i fxp0 としなければならない。
ということで、pcap でパケットを拾う場合も、
carp1 からではなくて、fxp0 から拾わなければならない。
しかしどうも、matd は carp1 からパケットを拾おうとしているらしく(自然な動作ですが)、
何一つ拾い上げてくれないので、当然 matd は今のままでは動かない。
ふうむ、内部的には lo0 みたいな扱いみたいですね。< carpのI/F %tcpdump -i carp1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on carp1, link-type NULL (BSD loopback), capture size 96 bytes とか、言ってきます。 で、実際のパケットはcarp1には来なくて、fxp0(物理I/F)にやってくるのか。 ということで、 ifconfig fxp0 alias 206.223.150.96 というのと同じようにふるまうけど、 I/F の名前は carp1 になるってかんじなんですね。 まぁ、だからサービス用の(shared)IPアドレスを作る、 みたいな芸当ができるんでしょうけど。 ということで、本日のところはこれで。
なんか、matd で飛ばした後のパケットみたい。 lo0 についているIPアドレス宛てのパケットなんだけど、 やってくるI/Fはem0からみたいな。 本日はこれで、おやすみなさい。
う〜む......
>>370 >input_if=fxp0
>なんて、matd.cf に書けると、うれしかったりするのかな。
そうできるように修正することは可能だとは思いますが,そうなると別の問題が......
carp1 なら待機中はちゃんとお休みしてくれるのでしょうけど,一方 fxp0 で
パケットキャプチャすると,待機中つまりパケットの転送をしてはならない時まで
パケットを拾って転送してしまうことになるかも知れないですね.その I/F に
対して付されていない IP アドレス宛のパケットをキャプチャするとなると
promiscuous モードにすることになりますが,そうなると全部拾っちゃいますからね.
load balancingしたいなら、これでいけるのでは?
IncomingとOutgoing両方できるみたいだし。
Address Pools and Load Balancing
http://www.openbsd.org/faq/pf/pools.html ファイヤーウォールってパケットの行き先設定出来なかったっけ?
>>376 それは NAT では?
要は carp を使った場合の問題というのは,fxp0 とは別に carp1 などの別 I/F を
用いることになる,しかもそちらではパケットキャプチャが機能しないってことなんですよね.
別 I/F を用いず fxp0 自体でフェイルオーバできればよさそうなんですけど.
で,こういうものもあるようですが......
http://www.freshports.org/net/freevrrpd/ freevrrpd is a VRRP (Virtual Router Redundancy Protocol) implementation
daemon under FreeBSD, NetBSD and OpenBSD.
>>375 >>378 ふむふむ。
VRRPの実装はいくつかあるようですので、
そのへんをあたってみるです。
ようは、
> 別 I/F を用いず fxp0 自体でフェイルオーバできればよさそうなんですけど.
を満たすうまい仕組みがあるとよいということですか。
今のheartbeatも悪くなさげなんですが、gracefulにシャットダウンできないというのは、
いざ事故が起きた時の動作が問題になりそうなので、フェイルオーバーの意味がちと、、、。
freevrrpdは本家のMLにたまに話が出てきますが、
もうメンテされてないというようなレスがつくのがオチだった気がします。
最近だと
http://lists.freebsd.org/pipermail/freebsd-net/2006-February/009899.html とか。
>>380 う〜む......
>>379 2.0.4 が出たばかりのようですが,これはどうなんでしょう......
http://linux-ha.org/download/index.html#2.0.4 Stable release 2.0.4 (Mon Feb 27 10:09:15 MST 2006)
>>375 ユーザトラフィックのパケットは仮想MACあてなので、
スイッチを使っていれば、Master側のI/Fにしか届かない
はずなので、両方で転送することはないんじゃないかと思います。
# 仮想MACはユニキャストアドレスでした。
あと、
>>79 のようにできればよいのかなと思うのですが、
CARPでもできるかは知らないです。
>>381 ports にあるやつそのままだったりするですね。
1.2.3 かな。
2.x はまだ試していないです。
で、
>>375 を改めてじっくり読んでみると、
もしcarp環境でも、promiscにしないでfxp0から拾えれば問題ないようにも思えたり。
>>382 >ユーザトラフィックのパケットは仮想MACあてなので、
>スイッチを使っていれば、Master側のI/Fにしか届かない
>はずなので、両方で転送することはないんじゃないかと思います。
>>384 >もしcarp環境でも、promiscにしないでfxp0から拾えれば問題ないようにも思えたり。
non-promiscuous モードで tcpdump 使って carp1 宛のパケットを fxp0 で拾える,
そして standby 状態では拾わない,ということならそれで Ok でしょうね.
>>350 > banana403 as master:
> # sysctl -w net.inet.carp.preempt=1
> # ifconfig pfsync0 syncdev vr0
> # ifconfig pfsync0 up
> # ifconfig carp1 create
> # ifconfig carp1 vhid 1 pass mugyu 206.223.150.96 255.255.255.0
これの動作ですが、
> # ifconfig carp1 vhid 1 pass mugyu 206.223.150.96 255.255.255.0
の時点で、自動的に fxp0 が promiscuous mode になるようです。
そういう実装なのか。
で、
fxp0: promiscuous mode enabled
arp_rtrequest: bad gateway 206.223.150.97 (!AF_LINK)
というシステムメッセージが出ます。(2行目がやや気になる)
手でオフにする際には、
ifconfig carp1 down
ifconfig carp1 destroy
という手順になりますが、これの destroy の時点で、
fxp0: promiscuous mode disabled
と出て、promiscuous mode ではなくなりました。
ううむ。
>>386 なるほど......いったん carp1 が動き始めると destroy するまでは
promiscuous モードになってしまうと.そうなると standby 状態でもってことですね.
で,スイッチによって active 側にしか転送されないだろう (
>>382 ) ということだそうですが,
これは実際確認した方が良さそうですね.
>>388 以前 LVS の代替品を探してた時にもちょっと出てたやつですね.
カーネルデバイス版の carp と比べると
・ 既存の I/F に対する alias としてアドレスを付す.
・ I/F を promiscuous モードにしない.
という点では扱いやすそうですね.
テストはうまくいきました。 現在、banana403/banana404 は ucarp で冗長化して動いています。 ping がとぎれることなく切り替わったのには、結構感動しました。 これで、live22x を 受付嬢環境で動かす準備が整いました。 つまり、雪だるまサーバ環境は、形としてようやくフルスペックにできることになります。
あと、課題は、フロントエンドが落ちたのを検知して、 matd の仲間から自動的に切り離す部分ですね。 これは、httping とかを使って別途スクリプトを書こうかと。
…って書いてたら、ping がかからなくなりました。 ucarp を起動しなおしたら直った。ううむ、バグかな。 しばらく、観察と調整をば。
で、しばらく動かして安定なのを確認してから、live22x をのっけることにしようかと。
○ ucarp の設定 daemontools 経由で利用することにする。 (banana403: /var/service/ucarp) #!/bin/sh exec 2>&1 exec env - TZ=JST-9 PATH="/usr/sbin:/sbin:/usr/bin:/bin:/usr/local/bin:/usr/local/sbin" \ ucarp --preempt --interface=fxp0 \ --srcip=206.223.150.95 \ --vhid=1 --pass=むぎゅむぎゅ \ --addr=206.223.150.96 \ --upscript=/usr/local/etc/zzz-matd-up.sh \ --downscript=/usr/local/etc/zzz-matd-down.sh \ --shutdown (banana404: /var/service/ucarp) #!/bin/sh exec 2>&1 exec env - TZ=JST-9 PATH="/usr/sbin:/sbin:/usr/bin:/bin:/usr/local/bin:/usr/local/sbin" \ ucarp --preempt --interface=fxp0 \ --srcip=206.223.150.140 \ --advskew=128 \ --vhid=1 --pass=むぎゅむぎゅ \ --addr=206.223.150.96 \ --upscript=/usr/local/etc/zzz-matd-up.sh \ --downscript=/usr/local/etc/zzz-matd-down.sh \ --shutdown
(zzz-matd-up.sh) #!/bin/sh _LIP="127.0.0.1" _VIP="206.223.150.96" _CFFILE="/usr/local/etc/matd.cf" _CFFILE_SKEL="/usr/local/etc/matd.cf.skel" ifconfig fxp0 $_VIP netmask 255.255.255.255 alias sed -e "s/%%IPADDR%%/${_VIP}/" < $_CFFILE_SKEL > $_CFFILE svc -h /var/service/matd (zzz-matd-down.sh) #!/bin/sh _LIP="127.0.0.1" _VIP="206.223.150.96" _CFFILE="/usr/local/etc/matd.cf" _CFFILE_SKEL="/usr/local/etc/matd.cf.skel" sed -e "s/%%IPADDR%%/${_LIP}/" < $_CFFILE_SKEL > $_CFFILE svc -h /var/service/matd ifconfig fxp0 $_VIP delete
観察中、、、。 問題なさげなので、これでしばらく動かしてみるです。
>>391 乙でした。
http://www.freebsd.org/releases/6.1R/todo.html を
みると、とても3月中にリリースされるとは思えない状態ですね。
次は、mod_cacheですかね。
>>398 どもです。
ちょっと某所で聞いてみたんですが、どうも10日ぐらいはかかるっぽいみたいな。
でもとても出そうもない状態、というのもまぁ、いつものことっぽいらしいので、
見切り発車で出るのかもしんないですね。
うまく matd に乗せ換えられれば、フロントのメンテやバージョンアップも楽になります。
例えば mod_cache を入れた個体と入れない個体を準備しておくとかすれば、
テストもやりやすいのかなと。
>>390-399 乙です.ucarp の README 見ると,
And last, but not least, you can use a script that will connect to your switches
and flush their ARP cache. Some users reported that transitions were way faster
when also switching MAC addresses.
ってことも書いてありますね.
>>400 なるほど、これは確かheartbeatでも使われているテクですね。
あと、VRRPで話すのに専用チャンネル(直結のところ)を使うとよさげなので、
おいおい、それにも挑戦してみるです。
信頼性を上げるため、相手方のチェックを直結I/Fに変更。 (banana403:/var/service/ucarp/run) #!/bin/sh exec 2>&1 exec env - TZ=JST-9 PATH="/usr/sbin:/sbin:/usr/bin:/bin:/usr/local/bin:/usr/local/sbin" \ ucarp --preempt --interface=vr0 \ --srcip=10.0.0.1 \ --vhid=1 --pass=むぎゅ \ --addr=206.223.150.96 \ --upscript=/usr/local/etc/zzz-matd-up.sh \ --downscript=/usr/local/etc/zzz-matd-down.sh \ --shutdown (banana404:/var/service/ucarp/run) #!/bin/sh exec 2>&1 exec env - TZ=JST-9 PATH="/usr/sbin:/sbin:/usr/bin:/bin:/usr/local/bin:/usr/local/sbin" \ ucarp --preempt --interface=vr0 \ --srcip=10.0.0.2 \ --advskew=128 \ --vhid=1 --pass=むぎゅ \ --addr=206.223.150.96 \ --upscript=/usr/local/etc/zzz-matd-up.sh \ --downscript=/usr/local/etc/zzz-matd-down.sh \ --shutdown
>>395 を
>>402 に変更。
リブートテスト良好。
これで、ほぼ理想的な姿になりました。< banana403/404
同時に働くことはできませんが、当初の目的は十分果たせたなと。
ここで思案のしどころですが、
1) 今 live22x も受付嬢に収容して実験する
2) 今日はこれで動かしてピークを越えられることを確認し、明日じっくりと
さて、どっち。↓
>>403 いきなり実験も2ch的で面白いですけど,rootさんのこと
考えると2の方がいいと思います……
バーチャルIPアドレスを変えて(例えば206.223.150.97)もう一組、 matd+ucarpのペアを動かして、 そっちはbanana404スタメン・banana403ピンチヒッターに設定して 動かすってのはどうだろうか。
>>405 は直感的にはよさげだけど、
いろんなことを考えると、一長一短かもしんないですね。
今の段階ではフォワーディング能力的には十分余裕なので、
そこまでする必要もなさそうですし。
BG3/BG4、live22系と同じように /etc/libmap.conf を設定した。 マルチスレッドで動いている squid の効率が、少しでもよくなれば。 %cat /etc/libmap.conf libpthread.so.2 libthr.so.2
とりあえずメモ マスター側のリブートでは、まったく問題なし。 しかしバックアップ側をリブートすると、微妙なことが起こった。< ucarp 一瞬マスターモードになり、すぐにバックアップモードに。 で、その影響でちょっとの間マスターが2匹になり、www2がつながらなく。 バックアップ側は、--preempt をやめればいいのかな。
ついに掲示板サーバで(プライベート側だから圧縮なしだけど)、
1サーバの転送量だけで、トラフィックの32ビットカウンターがあふれる日がやってきた。
【ひなあられ】負荷監視所_20060301
http://live14.2ch.net/test/read.cgi/liveplus/1141207819/383 後で、雪だるま系のMRTGは別系統にする予定。
live22 httpd が signal 10 でダウン。 pid 41367 (httpd), uid 2001: exited on signal 10 pid 25496 (httpd), uid 2001: exited on signal 10 pid 25531 (httpd), uid 2001: exited on signal 10 pid 25484 (httpd), uid 2001: exited on signal 10 pid 25523 (httpd), uid 2001: exited on signal 10 pid 25488 (httpd), uid 2001: exited on signal 10 pid 25476 (httpd), uid 2001: exited on signal 10 pid 25475 (httpd), uid 2001: exited on signal 10 pid 25541 (httpd), uid 2001: exited on signal 10 pid 25520 (httpd), uid 2001: exited on signal 10 pid 25495 (httpd), uid 2001: exited on signal 10 pid 25527 (httpd), uid 2001: exited on signal 10 pid 25562 (httpd), uid 2001: exited on signal 10 pid 25535 (httpd), uid 2001: exited on signal 10 pid 25506 (httpd), uid 2001: exited on signal 10 pid 25533 (httpd), uid 2001: exited on signal 10
>>411 は、例の虫を踏んだ時ですね
libmap.conf 設定。
パッチあてて以降は、calcru: .. のメッセージは出なくなりました。
live22x.2ch.net を matd (受付嬢)環境に移行します。 以下のDNSサーバの設定変更をよろしくお願いします。 (現在) Clive22x.2ch.net:live22y.2ch.net:300 (変更後) +live22x.2ch.net:206.223.150.96:300
>>414 いよいよですか.
>>405 各仮想アドレスには DNS RR で割り振って,それぞれを ucarp で冗長化するって感じですか.
今後受付1台だけでは手に余るようになったら,その方向でってところですかね.
【実況】 live22x Part13
http://qb5.2ch.net/test/read.cgi/operate/1141564207/397 (gdb) where
#0 0x283b04d3 in _umtx_op () from /lib/libc.so.6
#1 0x2836d066 in _thread_bp_death () from /usr/lib/libthr.so.2
#2 0x2836c5bd in pthread_cond_destroy () from /usr/lib/libthr.so.2
#3 0x28329a2d in apr_thread_cond_wait ()
from /usr/local/lib/apache2/libapr-0.so.9
#4 0x080688b7 in ap_queue_info_wait_for_idler ()
#5 0x080666bd in listener_thread ()
#6 0x283277e8 in dummy_worker () from /usr/local/lib/apache2/libapr-0.so.9
#7 0x2836c05d in pthread_create () from /usr/lib/libthr.so.2
#8 0x00000000 in ?? ()
(gdb)
前のと同じか。
特化型サーバスレのこともたまには思い出してあげてください
つ
http://search.cpan.org/ ~ingy/orz-0.10/lib/orz.pm
>>421 ↓が最新みたいですが、これはいったい、、、。
http://search.cpan.org/ ~ingy/orz-0.11/lib/orz.pm
>>422 "use orz"から"no orz"までソースをコメントするAcme::的なモジュールです
0.10から0.11の変更点は"orz !!!"を"orz..."に変更しています
Module::Compileのお遊び的な使い方としてのモジュールでしょうね
>>423 なるほど、そういうものですか。
しかしなぜorz、、、。
>>425 おー、これは。
しかし、超いそがしい時期かも。
>>427 正しく変わったのを確認しました。
特に問題は観察されていません。
これで、雪だるまシステムは「形として」、描いたとおりのものになりました。
構想から1年以上ですか。
あとは、より磨いていくことになります。
とりあえず、虫を踏まないようになってほしいとか、
フロントやバックを増やすにはもうちょっと作業が必要とか、
過去ログ関係とかをもっとスマートにやりたいなとかありますが、
このあたりは、例によってぼちぼちすすめていこうかなと。
で、本気モードでパケットが来た時に、matd がどうなるかということですね。 あとで matd.stats を外から見られるようにしておくか。
とりあえず、今の状態(matd.stats)。 [matd statistics] Tue, 14 Mar 2006 15:41:47.105 (JST) user CPU time = 0:02:24.583, system CPU time = 0:20:11.934 elapsed time = 95:34:27.758, CPU load = 0.39% minor page faults = 231, major page faults = 0, swaps = 0 block inputs = 0, block outputs = 0 messages sent = 2, messages received = 0 signals = 2, vol ctx switches = 32584418, invol ctx switches = 2811721 forwarded packets: 00:30:48:53:ec:20 = 47641159 00:30:48:83:ab:30 = 47656010 00:30:48:83:a6:2a = 47658945 elapsed time (configuration age) = 95:34:26.741
>>428 ということは雪だるま作戦プロジェクトはリリース版稼動開始ってことでよろしいのでしょうか。
>>432 実験はずっと続きますが、
ネットワークの形というか各サーバの論理構成(≠台数)としては、
メンバーがそろったという認識です。
・ロードバランサ(受付嬢: ユーザからの接続要求を各フロントに振り分ける)
・フロントエンド(ユーザからの要求の処理: bbs.cgi、read.cgi、削除系の呪文(未対応…)が動作)
・バックエンド(フロントエンドからの要求の処理: フロントにdat提供、実際の書き込み処理)
超簡便な図を描くと、今の構成こんなかんじ。 クライアントたち Webブラウザとか専用ブラウザとかBG3/4とか │ ↑ ↓ │ b1⇔b2 │ ポイント: 帰りのトラフィックはb1(b2)を経由せず、x1〜x3から直接届く ├┬┐ │ b1が落ちるとb2に自動切換え、x1〜x3が落ちると自動切り離し(未実装) ↓↓↓ │ x1 x2 x3─┘ 各種cgiはここで動く │││ dat/index.html/subject.txt/subback.htmlはlive22から必要に応じてすぐもらう │││ SETTING.TXTやdat落ちした過去ログはlive22から定期的にゆっくりもらう ↓↓↓ live22 実際の書き込み処理を受けつける ここではcgiは動かない(今はまだ削除系cgiとかが動いている) x1〜x3にdat/index.html/subject.txt/subback.htmlを提供する Samba24やtimecount/timecloseのための規制系データは、 live22x1が上記のlive22の位置にいて、そこで一元管理 もし仮にlive22x1が落ちてもこれらの規制がスキップになるだけで、動作は継続
今の構成はlive22が落ちると全滅。 live22のところの冗長化・強化手段の例とか。 ↓ ↑ B1⇔B2 │ ├─┬─┐ │ B1が落ちるとB2に自動切換え、SV1〜SVnが落ちると自動切り離し ↓ ↓ ↓ │ SV1 SV2 ... SVn┘ │ │ │ 外部HDD FC-AL等でSV1〜SVnが外部HDDを共有 HDDはRAID 5構成
昔やったおまじないを思い出したので、 banana403/banana404 の matd 起動スクリプトを nice してみた。 とりあえず WCPU がちょっぴり増えたので、それなりに動いているかなと。 苦しくなったら、BG3/4 の squid もやろうかと。 #!/bin/sh exec 2>&1 exec env - TZ=JST-9 PATH="/usr/sbin:/usr/bin:/bin:/usr/local/bin" \ /usr/bin/nice -n -20 /usr/local/sbin/matd -F \ -f /usr/local/etc/matd.cf \ -s /var/log/matd.stats
>>435 問題は冗長化通信部分の実装ですね
NFSがいまいちって前におっしゃってましたけど、クラサバどちらとも?それとも片方でしょかね?
>>437 同じ外部ストレージの中身を(FC-ALとかで)共有する路線かなと。
そうしておいて SV1 〜 SVn を並列で稼動できれば、
HDDのI/Oキャパが板一枚でいっぱいになるか(2chではありえないと思う)、
帰り側のネットワークがいっぱいになるまでは、スケールするんじゃないかなと。
>>438 そうなるとSumaみたいなのが必要になってくるわけですな・・・
>>440 前からきになっていたのですが、SumaってFCにつながっている
複数のサーバから同一ファイルをアクセスできるのですか?
箱物のみ共有で、ファイルの共有はできないと思っていたのですが。
(AppleのXsanみたいなソフトがサーバ側に必要と思っていました。)
>>441 なるほど、SV1でmountしたファイルシステムを
SV2からも普通にmountしようとすると、EBUSYとかになったりするのかしら。
>>442 普通は排他処理が働いて書き込みできないかと
リードオンリーならNFSマウントみたいな形で十分対処できますがね・・・
書き込みありだから何か工夫がいると思います
今までにrootさんがお守り修行で培ってきた経験が生かせるか、それとも新しい修行が必要かはわかりませんがね
>>443 + 普通のマウント方法だと排他処理が働いてマウントできないかもですね
- 普通は排他処理が働いて書き込みできないかと
質問・雑談スレ218@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1142144559/347 うーむ、またこのエラーが。
Apache 2.2 + 64bit 版のみなのかなぁ。
>>443-444 ro で複数ホストから mount できるなら、読ませるほうを分担させることは可能かもですね。
書き込みは(とりあえず)1箇所でやることにして、読み出しを別のやつらに分業させるとか。
とうとう matd 本格稼働ですか.とりあえず今のところ異常なしで一安心ですかね.
>>429 >で、本気モードでパケットが来た時に、matd がどうなるかということですね。
というのは確認しておきたいところですが.
で,
>>435 >>438 というのはバック側をフェイルオーバだけじゃなく
ロードバランスするって意味ですか? そうなると......bbsd では
subject データなどをオンメモリ管理してるので,remote shared memory
とか使わないとつじつまが合わなくなってしまいますね.単一鯖の shared memory
でも処理が煩雑になるので,それを避けるためマルチプロセスでなく
シングルプロセスにしてるんですが.というか,単一鯖での bbsd の限界が来る前に
ユーザが追随できなくなりそうな気もしますが......今のところ最速 1000 は
4秒ですが,1スレを数秒で使い切るようなレス速度になれば,現実的には
次スレを探すのにある程度時間がかかるとか,一方みんながスレを立てようとすれば
スレ立て制限に引っかかるとか,そういう部分で必然的にブレーキがかかりそうな気もします.
ということで,bbsd についてはフェイルオーバだけ考えればいいのではないかと思います.
httpd の方は,フロント側で mod_cache を使ってもなお不足であればロードバランスも
考えた方がいいのかも知れませんけど.
pthread_cond_wait() が実行されるべきところで pthread_cond_destroy() が
実行されてしまうとか(
>>416 ),dlopen() or dlsym() が失敗してるらしいとか(
>>445 ),
このあたりは不可解ですね...... OS の虫なのか libapr が腐ってるのか......
>>446 > とうとう matd 本格稼働ですか.とりあえず今のところ異常なしで一安心ですかね.
ですね。
今実況が盛り上がっていますが、問題なく動作しています。
> ということで,bbsd についてはフェイルオーバだけ考えればいいのではないかと思います.
そですね。
そのほうが(= 書く人は一人にする)いろんな意味でよさそうなかんじ。
最終段落は、確かにってかんじかなと、、、。
ex14 (64bit) も Apache 2.0.55 ではこの現象は発生しなかったので、
apr 問題なのかもしれないですね。
【実況】 live22x Part13
http://qb5.2ch.net/test/read.cgi/operate/1141564207/414 32bit でも発生。つまり、32bitか64bitかは無関係と。
Apache 2.0系では発生したことがないので、それ系か。
…Apache 2.2系でmod_cgidsoを作る時ですが、
gcc -c read.c -I`apxs -q INCLUDEDIR` `apr-1-config --includes` -O2 -Wall -funsigned-char -fPIC -o read.o
gcc -shared read.o `apr-1-config --link-ld` `apxs -q LIBS` -Wl,-S,-soname,read.so -o read.so
とやっていますが、これではだめとか、
あるいはApacheのほうで、
#if defined(AP_SERVER_MINORVERSION_NUMBER) && AP_SERVER_MINORVERSION_NUMBER >= 2
ap_filter_rec_t frec = {"READDAT", {rdat_filter}, NULL, AP_FTYPE_RESOURCE, NULL, NULL, 0, 0};
#else
ap_filter_rec_t frec = {"READDAT", {rdat_filter}, NULL, AP_FTYPE_RESOURCE, NULL};
#endif
に類似するような変更が、実は他にも存在しているのかとか。
# でもそれだと、途中からおかしくなる理屈が、、、。
今見たらex14でも再発していた。(httpd restart) ううむ。
あとひょっとすると、libthr なコンディションの時だけ発生するのかな。 ex14で設定変えて試してみるか。
libmap.conf を mv して、Apache をリスタートした。 今の ex14 の状況下なら、 数日この状況が再現しなかったら、libthr がらみな予感。
>>448 そのあたりの理由だと,
># でもそれだと、途中からおかしくなる理屈が、、、。
ということで最初からおかしくなると思うんですよね......
となると,
>>450 ですかね......
eAccelerator 0.9.5-beta1 来ましたね。
>>454 さっき外から読んでました。
前に当てたパッチの延長線上のやつっぽいですね。
帰宅後に適用へと。
>>455 ふむふむ。
すみませんが今日はもう電池切れなので、
>>456 やepg のシングルスレッド(prefork MPM)化などは、あとで。
FreeBSDのdlopen() & dlclose()は完全にはスレッドセーフではないので、 mod_cgidsoはworkerだとうまく動かないと思います。。。 libthrよりlibpthreadの方が問題が起こり難いのは確かですが、 それでも問題が起こることは変わらず。
>>458 なるほど.Solaris 流に MT-Safe かと思ってましたが......
こんなのを httpd 起動時に LD_PRELOAD とかすれば何とかなるのかなぁ......?
#include <dlfcn.h>
#include <pthread.h>
static pthread_mutex_t dlmutex = PTHREAD_MUTEX_INITIALIZER;
void *dlopen(const char *pathname, int mode)
{
static union {
void *v;
dlfunc_t d;
void *(*f)(const char *, int);
} o_dlopen;
void *rv;
pthread_mutex_lock(&dlmutex);
if (!o_dlopen.v)
o_dlopen.d = dlfunc(RTLD_NEXT, "dlopen");
rv = o_dlopen.f(pathname, mode);
pthread_mutex_unlock(&dlmutex);
return rv;
}
int dlclose(void *handle)
{
static union {
void *v;
dlfunc_t d;
int (*f)(void *);
} o_dlclose;
int rv;
pthread_mutex_lock(&dlmutex);
if (!o_dlclose.v)
o_dlclose.d = dlfunc(RTLD_NEXT, "dlclose");
rv = o_dlclose.f(handle);
pthread_mutex_unlock(&dlmutex);
return rv;
}
void *dlsym(void *handle, const char *name)
{
static union {
void *v;
dlfunc_t d;
void *(*f)(void *, const char *);
} o_dlsym;
void *rv;
pthread_mutex_lock(&dlmutex);
if (!o_dlsym.v)
o_dlsym.d = dlfunc(RTLD_NEXT, "dlsym");
rv = o_dlsym.f(handle, name);
pthread_mutex_unlock(&dlmutex);
return rv;
}
http://people.freebsd.org/ ~bsd/prstats/topN_r_np_idx7
Problem Report threads/89262 : [kernel] [patch] multi-threaded process hangs in kernel in fork()
http://www.freebsd.org/cgi/query-pr.cgi?pr=89262 うーむうーむ。特にkern_fork.c.patch
http://people.freebsd.org/ ~davidxu/patch/?M=D
http://people.freebsd.org/ ~davidxu/patch/kern_fork.patch
http://people.freebsd.org/ ~davidxu/patch/calcru.patch
http://people.freebsd.org/ ~davidxu/patch/atfork.patch
ある携帯用アプリを作っている業者の担当さんから、
個人宛のメールで問い合わせが来ました。
以下は私からの返事の内容。
本件をすすめる件、およびその内容については管理人のOK済み。
--- cut ---
現在の2ちゃんねるでは、携帯端末から書き込み時に2ちゃんねるに送信される
固有情報により掲示板の荒らし対策、広告貼り付け対策等を実施しております
ので、これを送信いただくことは、このような場合における必須条件の一つです。
また、このような場合に最低限必要な情報/条件として、
1) 2ちゃんねるへの書き込みが行われる御社サーバのIPアドレス
(固定IPアドレスであることが必須: 複数個存在する場合それらのIPアドレス
全部)を、事前にお知らせいただき、かつ変更の都度お知らせいただくこと
なおこの情報は、2ch運用情報板 (
http://qb5.2ch.net/operate/ ) への
御社ご担当様からの書き込みにより、公開の場でお伝えいただけると助かり
ます。
(例えば、技術情報そのものは御社Web上に別途準備いただき、
URLリンクや更新情報のみを都度書き込むといった形でも問題ありません)
上記情報を書き込むスレッドですが、
2ch特化型サーバ・ロケーション構築作戦 Part20
http://qb5.2ch.net/test/read.cgi/operate/1140540754/ をご使用いただけますと助かります。
2) 書き込みの際に、該当する携帯側のIPアドレス(携帯側から御社サーバに
書き込みリクエストがあった際の携帯側のIPアドレス)を、
一定の方法で2ちゃんねるにそのまま送信いただくこと
これにより2ちゃんねるは、どの会社の携帯電話からの書き込みであるか
を、携帯電話から直接書き込んだ場合と同様の方法で判定できることになり
ます。
なお、上記はIPアドレスの逆引き名ではなく、
IPアドレスそのものを送信いただけると助かります。
携帯電話の固有番号はキャリアごとに仕様・フォーマットが異なっているた
め、この情報が必要となります。
3) 書き込みの際に、該当する携帯の端末固有情報を
一定の方法で2ちゃんねるに送信いただくこと
理由は上記の通りとなります。
なお、上記 2) 3) につきましては、御社側において User-Agent: ヘッダに
挿入する方式(フォーマット)を明確に決めていただき、
この技術情報を 1) と同様、事前にお知らせいただけると助かります。
以上になります。よろしくお願いいたします。
>>463 日曜までに、live22 にこのへんのパッチをいくつか適用する予定。
live22xが重い重い状態というのは実際はどうなっているですかね。
なんかいろいろな話がでているので、まとめるとどうなんでしょ。
・何らかの原因(これがrootさんがいっている蟲?)でバックが
応答を返さなくなって、バックに問い合わせを行っている
フロントも詰まり、ユーザへの応答がない。この状態が重い重いで正しい?
(apache statusでみるとフロントもバックもフルスロット使用中?)
・フロントのloadが高くなるのは重い重いとは直接関係ない。
(dlopenのMT-unsafeのせい or PHPのせい or
>>348 )
・バックはフロントみたいにloadが高くなることはない。
たくさんのアクセスがある際に固まるだけでほかは健康。
・暴走と蟲踏みは異なる事象
暴走はフロントのみ(アクセス数とは直接関係ない、
2.2にしてからおきている、prefork MPMだとOK?)
蟲踏みはバックのみ(アクセス数と関係しているかも
>>289 の通りなのでカーネルが一番怪しい。)
順番に倒していかないと、発散しそうですね。
受付嬢はrootさん、SunOSさんの教育で問題ないようですし、
・フロントをガチと思われる
Apache 2.0.55 / prefork MPM + PHP 4.4.2 + libmap.conf (thr)
+ カーネルにcalcruのパッチ +
>>247 のパッチ
構成で固定して、バックだけいじっていく方向とか。
・フロントでmod_cacheを動かす、だめならsquidをあげて、バックへの
アクセスを減らし、バックの問題を先延ばす(6.1に期待)とか。
はどうですかね。
>>469 一番目
正しいです。
二番目
正しいです。
三番目
(今のところは)正しいです。
ただし、オリンピックの荒川静香金メダルの時は
live22x1でもバックと同じ症状が出たっぽいです。
フロントにもバックと同じ虫はいて、普段は発動していないだけと推測。
四番目
暴走はフロントのみ: 正しいです。
2.2 にしてから起きている: 2.2 + libthr にしてから起きています。
2.2 にしてからはprefork MPMを試していません。
最終段落は、そんなかんじですかね。
フロントは libthr にしなければいけないような状態では(今のところ)なさそうなので、
今 ex14 で試している Apache 2.2 + worker MPM + libpthread で暴走が起こらなければ、
libthr をやめて libpthread でいこうかなと。
フロントでsquid動かすですか。つまり、フロントとバックの間に入れるということですね。
悪くないセンスかも。
いずれにせよ、ひとつひとつというかんじで。
【実況】 live22x Part13
http://qb5.2ch.net/test/read.cgi/operate/1141564207/664-667 原因切り分けも兼ねて、live22x[123] の /etc/libmap.conf を削除して
httpd をリスタート。
これで、
・不可解な 500 エラー
・不可解な httpd 暴走
が、起こらなくなることを期待。
http://www.bookshelf.jp/texi/libtool/libtool-ja_10.html >一方,`RTLD_NOW'は,FreeBSD上のマルチスレッドアプリケーションで問題が生じたと報告されています.
APR ではまさに RTLD_NOW で dlopen() してるわけですが......
それなら APR のソースをいじって RTLD_LAZY にしちゃってもいいのかも?
458です。少し興味がわいたので、
>>461 を参考にsrclib/apr/dso/unix/dso.cに修正をいれて、家のマシンでテストしてみました。
修正点は、dlopen()とdlclose()の呼び出し前後にmutexのlockとunlockを入れたことです。
環境:
FreeBSD 6.1-PRERELEASE i386 SMP
Apache 2.2.0 worker
テストに使用したソース:
http://sunos.saita.ma/mod_cgidso.c http://sunos.saita.ma/dso-example.c テスト方法:
リモートからabを使用して、対象のマシンに負荷をかける。
テスト結果:
srclib/apr/dso/unix/dso.cの修正前は、apacheが落ちまくって全然駄目だったが、
修正後は一度も落ちなかった。
なので、aprのソースをいじるのも悪くないかもしれません。
書き忘れ。 libpthread, libthr どちらでも落ちませんでした。
>>474 diffかいてうpしればroot先生が滝のような涙を流して?喜ぶでしょうw
--- srclib/apr/dso/unix/dso.c.origSat Feb 5 05:44:01 2005 +++ srclib/apr/dso/unix/dso.cFri Mar 17 23:10:30 2006 @@ -38,6 +38,10 @@ #define DYLD_LIBRARY_HANDLE (void *)-1 #endif +#if defined(__FreeBSD__) +static pthread_mutex_t dlmutex = PTHREAD_MUTEX_INITIALIZER; +#endif + APR_DECLARE(apr_status_t) apr_os_dso_handle_put(apr_dso_handle_t **aprdso, apr_os_dso_handle_t osdso, apr_pool_t *pool) @@ -62,6 +66,9 @@ if (dso->handle == NULL) return APR_SUCCESS; +#if defined(__FreeBSD__) + pthread_mutex_lock(&dlmutex); +#endif #if defined(DSO_USE_SHL) shl_unload((shl_t)dso->handle); #elif defined(DSO_USE_DYLD) @@ -69,8 +76,15 @@ NSUnLinkModule(dso->handle, FALSE); } #elif defined(DSO_USE_DLFCN) - if (dlclose(dso->handle) != 0) + if (dlclose(dso->handle) != 0) { +#if defined(__FreeBSD__) + pthread_mutex_unlock(&dlmutex); +#endif return APR_EINIT; + } +#endif +#if defined(__FreeBSD__) + pthread_mutex_unlock(&dlmutex); #endif dso->handle = NULL; @@ -80,6 +94,9 @@ APR_DECLARE(apr_status_t) apr_dso_load(apr_dso_handle_t **res_handle, const char *path, apr_pool_t *pool) { +#if defined(__FreeBSD__) + pthread_mutex_lock(&dlmutex); +#endif #if defined(DSO_USE_SHL) shl_t os_handle = shl_load(path, BIND_IMMEDIATE, 0L); @@ -139,6 +156,9 @@ os_handle = dlopen(path, flags); #endif #endif /* DSO_USE_x */ +#if defined(__FreeBSD__) + pthread_mutex_unlock(&dlmutex); +#endif *res_handle = apr_pcalloc(pool, sizeof(**res_handle));
早速、
>>464 の件についてのお返事をいただきました。
ないようですが、
1) User-Agent: で、携帯側IPアドレスと端末固有番号の情報を送信いただける
2) User-Agent: のフォーマットが確定次第(メールで案をいただきました)、
先方のサーバのIPアドレス情報、User-Agent: 情報とともに、
このスレで要請いただける
とのことでした。
私のほうからは、
>
>DoCoMo の場合、User-Agent: の serXXXXXXXXXXXXXXX の内容をそのまま(serつきで)、
>au の場合、環境変数 HTTP_X_UP_SUBNO の内容をそのまま(.ezweb.ne.jpつきで)、
>Vodafone の場合、User-Agent: の SNxxxxxxxxxxx の内容をそのまま(SNつきで)、
>
>(User-Agent: の) 該当箇所に入れていただければ結構です。
という返事をしました。
>>473-478 おーーー。(滝のような涙)
さっそく、やってみるです。
テストのついでに、パフォーマンスも測ってみました。 libpthread: 同時10接続: Requests per second: 6057.67 [#/sec] Requests per second: 6458.70 [#/sec] Requests per second: 6447.04 [#/sec] 同時50接続: Requests per second: 6264.09 [#/sec] Requests per second: 6522.73 [#/sec] Requests per second: 6425.50 [#/sec] 同時100接続: Requests per second: 6016.12 [#/sec] Requests per second: 6153.85 [#/sec] Requests per second: 6473.33 [#/sec] 同時200接続: Requests per second: 4890.93 [#/sec] Requests per second: 5151.98 [#/sec] Requests per second: 5119.80 [#/sec] 同時500接続: Requests per second: 2134.06 [#/sec] Requests per second: 2067.44 [#/sec] Requests per second: 2041.40 [#/sec] 同時1000接続: Requests per second: 1873.50 [#/sec] Requests per second: 1823.15 [#/sec] Requests per second: 1699.64 [#/sec]
libthr: 同時10接続: Requests per second: 6698.82 [#/sec] Requests per second: 6330.32 [#/sec] Requests per second: 6437.08 [#/sec] 同時50接続: Requests per second: 6292.87 [#/sec] Requests per second: 6405.33 [#/sec] Requests per second: 6567.71 [#/sec] 同時100接続: Requests per second: 6121.82 [#/sec] Requests per second: 6424.67 [#/sec] Requests per second: 6439.56 [#/sec] 同時200接続: Requests per second: 5997.00 [#/sec] Requests per second: 6238.30 [#/sec] Requests per second: 6237.52 [#/sec] 同時500接続: Requests per second: 5912.96 [#/sec] Requests per second: 6272.74 [#/sec] Requests per second: 6298.02 [#/sec] 同時1000接続: Requests per second: 5775.01 [#/sec] Requests per second: 6248.83 [#/sec] Requests per second: 6208.48 [#/sec] 感想: 接続数が増えるとlibthrの圧勝。ほぼ性能低下なし。
>>462-463 と
>>473 を、適用する予定。
でも今日は、もう眠くてだめ。
明日、某ラウンジから作業するか。
>>483 やはり libthr の方が同時接続をこなす(本来の目的)意味でも、
有効ということですか。
携帯バックエンドサーバのsquid(blackgoat3/4)でも、
libpthread から libthr に変えたら、すごく軽くなりました。
前はプライベート側が200Mbpsぐらいで頭打ちだったんですが、
今は250Mbpsいっても、軽々とこなしているです。
すいません。補足です。 上記の測定は ThreadLimit 1000 StartServers 1 MaxClients 1000 MinSpareThreads 1000 MaxSpareThreads 1000 ThreadsPerChild 1000 MaxRequestsPerChild 0 の設定でやったんですが、 ThreadLimit 100 StartServers 10 MaxClients 1000 MinSpareThreads 1000 MaxSpareThreads 1000 ThreadsPerChild 100 MaxRequestsPerChild 0 の設定だと ------------------------------------------ 同時1000接続: libpthread: Requests per second: 6436.25 [#/sec] Requests per second: 6309.15 [#/sec] Requests per second: 6432.94 [#/sec] libthr: Requests per second: 6170.55 [#/sec] Requests per second: 6172.46 [#/sec] Requests per second: 6192.72 [#/sec] ------------------------------------------ という感じでした。 なので、同時接続というより、1プロセスあたりのスレッド数が多くなると libthrの方が強いという感じでしょうか。
一件落着? うらやましいな。回線太くて。 でもうちの鯖FC5で僕の携帯のためにアップデートの処理落ち以外はがんがってます。
% nm libapr-1.a ... dso.o: U apr_cpystrn 000001b0 T apr_dso_error 000000c0 T apr_dso_load 00000174 T apr_dso_sym 0000015c T apr_dso_unload 00000044 T apr_os_dso_handle_get 00000000 T apr_os_dso_handle_put U apr_palloc U apr_pool_cleanup_null U apr_pool_cleanup_register U apr_pool_cleanup_run U dlclose U dlerror 00000000 b dlmutex U dlopen U dlsym 00000058 t dso_cleanup U pthread_mutex_lock U pthread_mutex_unlock
>>487 は、Apache 2.2 なサーバ全部に適用しようかと。
>>464 ,479-780 の件でお邪魔しております。
株式会社アイビス モバイル事業部 担当の西村です。
現行サービスを行っている ibisBrowserDX から
2ちゃんねるへの書き込みを行うに当たって、技術情報を公開します。
アクセスを行うIPアドレス: 219.117.203.9
書き込みを行うにあたって、一時的に付与するUser-Agent:
Mozilla/4.0 (compatible; ibisBrowser; IPアドレス; ser端末固定番号)
例:
Mozilla/4.0 (compatible; ibisBrowser; 219.117.203.9; ser0123456789ABCDEF)
サービスによって、上記User-Agent以外が存在しますが、その場合は書き込みの拒否をお願いいたします。
今後ともよろしくお願い申し上げます。
DX版以外は書き込みできないようにってことですかな
となるとBBQ除外指定になるのかな?@現在規制中のもより
串規制ってといたほうがいいのかしら? 公式p2はbooでも書ける(be除く)から解除しなくても大丈夫かしら?
>>490 書き込みできない条件は
・DX版でない場合
・書き込む手前で端末情報の送信にたいする同意を拒否した場合
・状況を想定しておりませんが、2ch外から2chに書き込んだ場合
を考えております。
>>491 現在、BBQ指定となっております。
ただ、上記条件に当たる人も同一IPを用いるため、
User-Agentで弾くというのが良いかどうかの判断はお任せいたします。
アプリ上で書き込み毎に端末情報を発信するかしないかダイアログ出せるのかなー?
>>496 >書き込む手前で端末情報の送信にたいする同意
これがそのダイアログでしょ
>>490 了解です。
今ベルトサイン点灯中なんで、もうちょっとあとで。
落ち着いたかな。 今日は気流が悪いらしいです。しくしく。 接続IPアドレスが219.117.203.9で、 UAからIPアドレスとser端末固定番号を正しく入手でき、 そのIPアドレスがDoCoMoのCIDRの範囲に正しく収まっており、 その端末固定番号がBBM規制リストに登録されていない場合 に、書き込み許可になるように設定します。 IDとSamba24の種は、端末番号で生成することになります。 つまり、携帯からダイレクトに書いた場合と同じ扱いになります。 該当IPアドレスのリロードバーボンは解除します。 bbs.cgi に新しい処理系を追加することになるので、 識別マーク Q を新設します。
BBQのリストは当面このままで。
>>492-493 (正しくとれた時はBBQを参照しないようになります)
bbs.cgi の工事は、たぶん到着してからかなと。
気が向いたら今やるかもしれませんが、
揺れながら Perl いじるのは、ちとつらいかも。
>490 >495 なにかトリップつけた方がいいんじゃないでしょうかー。 ご承知かと思いますが、念のため。 トリップの出し方は、名前欄に #password です。 (もちろん password = 任意の文字列 で) なにか↑こんなような、(おそらく)ユニークな文字列が表示されます。
つけていただけると助かります。 < トリップ 私は西村様から別途メールをいただいており、 今回の書き込み内容がその内容と一致していたため、 本人であると判断できました。 しかしこれで、担当の方の所属とお名前が公知のものになってしまいましたので、 騙りの可能性がないとはいえなくなりました。 ということで、それを防止する道具(= トリップ)をつけていただけると助かります。 もし同じIPアドレスからの書き込みが可能であれば、 本日中に再度トリップをつけてこのスレに書き込んでいただくと、 IDの一致により、より確度が上がるかと。
>>490 ひとつ補足です。
> Mozilla/4.0 (compatible; ibisBrowser; IPアドレス; ser端末固定番号)
>
> 例:
> Mozilla/4.0 (compatible; ibisBrowser; 219.117.203.9; ser0123456789ABCDEF)
ここのIPアドレスですが、携帯側からアクセスされたIPアドレスを
そのまま出してくださいです。
上記は単純に例示(であるため御社IPアドレスとなっている)かと思いますが、
一応念のため。
携帯と同じIDになるのにQの必要ってあるんですか?
>>505 bbs.cgi 内の処理が違うからなぁ。
たびたび失礼します。
先ほど書きました
>>490 の件についてですが
書き込みを行うにあたって、一時的に付与するUser-Agent:
Mozilla/4.0 (compatible; ibisBrowser; ipIPアドレス; iccフォーマカード番号)
例:
Mozilla/4.0 (compatible; ibisBrowser; ip219.117.203.9; icc0123456789ABCDEF)
に変更をお願いできませんか。
急な変更になりまして申し訳ありません。
すいません。送信したIDに間違いがありました。
>>507 と同一人物であることを証明いたします。
>>507 トリップをつけられましたか。
# でも、IDが前と違う?
念のため(今回だけで結構ですので)、
私宛のメールでも
>>507 と同じ内容を送っていただけますでしょうか。
お手数をおかけしてすみません。
>>508 了解です。
確認できましたので、メールは不要です。
# 機内食が配られ始めたので、いったん落ち。
ibisBrowserはFOMAカード製造番号しか取得してないんですよね。 なのでiccxxxxxxxxxxxxxxxxxxxx(20桁のFOMAカード製造番号)という形になるかと。
>>510 飛行機の中からキャップつきでアクセスですか・・・・
うまやらしいことでw
しかも座席はYクラスじゃないぞ。スレ違いだけど。w
食事終わりました。 icc だけですか。 それだと、書き込み許可はできないです。 serXXXXXXXXXXX のほうを(あるいは、ほうも)、 User-Agent 経由で送っていただく必要があります。 よろしくお願いします。
なるほど。 ということはibisBrowserの仕様を変更して、 端末製造番号も取得できるようにしなければならないわけですね。
>>515 もし現在取得していない(
>>511 )ということであれば、
そうなりますね。
「人」に対する許可/禁止をするという考えなら、ICカード識別番号(icc)のほうがいいと思うのはオイラだけ? こういうブラウザってFOMA専用っぽいし……
世の中にはFOMAじゃないDoCoMoもある FOMAカードって、なんか簡単に取り替えられるらしい と、きいております。
>>520 ふむ。
ひらたくいっちゃうと、
現状、2ちゃんねるではDoCoMo携帯について、
serの情報で長年、規制系をやってるからってことですね。
既に相当数の携帯が広告貼りまくりや荒らしまくりで規制行きになっている現状から、
このアプリが単なる規制回避ツールとして使われるんでは、正直やる意味はないなと。
>>519 FOMAカード取り替えるだけで電話番号・FOMA製造番号が変わるのは確認済です。
FOMA製造番号 → FOMAカード製造番号 ちなみに、変えた状態で通話もネットもできるので(通話料とかは覚えてない)、 iccは信用できませんねー。カードだけ友人から借りてやれば、できるわけですし。
実際接続してんのはそのFOMAカードなんだから カードを弾くほうが理にかなってると思うが そういうルーチンがないんだったらしょーがねーか
費用はカードの持ち主請求。 つか、FOMAは個体でなくてカードで持ち主認識してる。 だから機種変がなくて、買い増してカード差し替えになる。 そうそう貸し借りはしないと思うけど、パケホ契約してたらわかんないかも。
いいんじゃねーの別に 白ロム大量購入して差し替えて連投するのを弾くより 複数回線契約して基本料払いながら連投する奴を弾くほうが 楽だってんだから
うまく行ってる今の仕組みをわざわざねじ曲げて冒険する必要はないと思うのですね
rootさんに質問なのですが、 携帯からの書き込みのときはser(端末製造番号)でIDを決定してるわけですよね? ならば Mozilla/4.0 (compatible; ibisBrowser; IPアドレス; ser端末製造番号) に 「携帯側からアクセスされたIPアドレス」を入れる必要はあるんですか?
携帯側のIPが分からないと犯罪予告等が起こった時に2ch運営 側から当人についてibisに聞かなければならなくなるからその手 間を考えればより迅速な対応のために携帯側のIPの表示は、必 須かと。
携帯のIPったって端末がIPアドレス持ってるわけじゃねーけどな
まぁそうなんでしょうけど。 携帯のIPアドレスって接続するたびに変わるんですよ。 それをUAから取得する意味はあるのかなぁ と。
>どの会社の携帯電話からの書き込みであるか とありますけど、ibisbrowserはドコモのFOMA端末にしか対応しておらず、 固有番号の仕様・フォーマットは一通りしかないためこの情報は不要かと。
だからプログラム上の流れをいっしょにするんだっつーの!
フルブラウザのベンダープロバイダーが2chカキコ出来るのを別アプリ作成するか、2chカキコしたいユーザーを予め登録してそいつのUAだけ書き換えるプログラムを 書けば良いだけ。 確かにカードの番号の登録も有りだが2chサイドの負担がでかい、ベンダーがなんとかすべき問題だ。 ってことなんだろうな。お金からんでないなら当たり前だ。 自鯖にrep2突っ込めば良いだけなのに。カキコだけ2chからにして。
作業の邪魔になってもなんだから一レスだけ
>>538 ibisはドコモ専用でも
世の中にはドコモ専用じゃないフルブラアプリ業者とその利用者が存在するんです
今回の話の延長で別の会社が言って来たときに、統一して処理できるように
個別の会社の特別なフォーマットはなるべく作らない(ないしは極力少なくする)ように
しておくのが自然だと思いませんか?
>>517 ICCID規制しても「人」に対する規制なんかになり得ない
ICCIDは電話番号や加入者識別番号が入っているタダの"入れ物"の番号
わずかな金額で取り替え可能
(FOMAカードの所有権はドコモにあるので最初から具合が悪かったと言えば
タダで取り替えてくれる場合もある
携帯の取り替えはショップも警戒するがカードの取替えは普通の人には
意味がないのであまり警戒されない)
しかも入れ物が変わるだけで中の情報はそっくり引き継げるので
取替え前と取替え後で当然電話番号も何も変わらない→荒らす側にとって敷居が低くすぎる
携帯本体が書き込み不可能になる方が荒らす側にとってのリスクが大きい
カード取り替えるより 白ロム変えるほうが敷居低いだろ
ぐだぐだ言ってる奴らはBBMスレとか過去の携帯規制関連のスレ読んでこいよ、
おーおー ずいぶん偉そうだな 前はずいぶんバカにされてたのにな
>>546 おぢちゃんがいってもしょうがないでしょ!!!w
>>514 > 食事終わりました。
> icc だけですか。
> それだと、書き込み許可はできないです。
> serXXXXXXXXXXX のほうを(あるいは、ほうも)、
> User-Agent 経由で送っていただく必要があります。
> よろしくお願いします。
上記の件、承知しました。
端末番号を送信するように変更します。
Mozilla/4.0 (compatible; ibisBrowser; ipIPアドレス; ser端末固定番号)
例:
Mozilla/4.0 (compatible; ibisBrowser; ip219.117.203.9; ser0123456789ABCDEF)
修正しますので、1時間ほどお待ちください。
>>553 ちょwwww
待てあんた
ふだんのibisの更新はあんだけノロいのに
なんでこんなときだけ神速なんだよwwww
パーボンから除外するというのは c.2chを経由するのではなく各サーバのdatを直接取るということなのかしら? c.2ch を作った意義はどうなるのだろう、、、
リロードバーボンと書き込みバーボンって分かれたっけ?
クラシックはまだまだ必要だよ みんながみんなアプリやってるわけじゃねーんだから つうかピンクにもクラシック入れてくれよ
>>556 普通に携帯から書く分にはやはりcが必要な訳で。フルブラウザはまた切り離して考えるべきじゃね。
背伸びしてPCに近づこう、って代物だし。
>>556 前もそんな発言どこかでしてたねえ。
リロードバーボン作ったときクラシックについてだっけ。
cの利用者がibisとかいうのに流れて負荷が減り、ibisの利用者はibisのキャッシュを使うんだから
cみたいなのがひとつ増えるという考えもあるけどそういう考え方は駄目なのかな。
>>561 あれは雪だるまの成果もとりこんだほうがいい悪寒
でも雪だるまはまだ雪崩が納まらないので(小規模な崩落は続いている)stableとはまだまだいいがたいのかも、といってみる。
>>553 はやいですね。了解です。
>>556 > c.2chを経由するのではなく各サーバのdatを直接取るということなのかしら?
そうなりますね。
> c.2ch を作った意義はどうなるのだろう、、、
あえて若干のミスリードを承知でいうなら、、、。
高速な通信ができて、クッキーも使えて、
PCのブラウザと同じ感覚でアクセスが可能な高機能な端末が普及してくると、
みんな、徐々にそっちに移行していくことになるんじゃないかなと思っています。
iアプリだとそうはいかないですけど(携帯端末側で通信相手を1箇所しか指定できないので
ゲートウェイ方式にせざるを得ない = 公式p2同様バーボン外す必要あり)、
そうではない(アプリからでも普通にPCみたいに通信できるらしい)三洋のPHSとかでは、
普通のPCで動く専用ブラウザと同じように動く2ch専用ブラウザも、既にあるらしいです。
今回の試みはそれへの一歩というか、中間的な段階というか、
移行段階のひとつになるんじゃないかなぁとか、
少し思っています。
つまり、もしそれが必要であれば、
c.2ch のようなコンセプトを持った別のもの(白山羊でしたっけ)
を、考えないといけない時期に、いよいよもって来てしまったんじゃないかなと。
それでも私はたまにPCからでも使います。c.2ch。
京ぽんつないでアクセスしている時で、
普通のWebブラウザだけでちょろっと様子を見たい時とか。
で、
>>476 を適用しても起きたみたい。例の虫踏み。
高負荷とsignal 10でのダウン。
当てていないパッチ
>>462-463 があるので、
そのへんを、あとで。
はじめから白ヤギ経由にしておいたほうがいいに一票。
>>568 今回のは「2ch専用ブラウザ」ではなくて普通の
「携帯用ゲートウェイ方式フルブラウザ」ですから、
向こう側のサーバからは、read.cgi 経由で読むか、
あるいはc.2ch かp2.2chか、あるいは他の外部メニューを使うか、
ということになるのかなと。
つまり各サーバにはdatちょくどりじゃなくて、read.cgi 経由でのアクセスになるです。
それでもリロードバーボンの解除は必要と。
書き込みバーボンは携帯の固有番号でやるので、これまでと同じ扱いですね。
白ヤギはいまごく一部のサーバのものしかないです。
http://liveb1.2ch.net/ がそれです。
まず2ちゃんねる側でインフラ作りが必要ということですかね。
裏方面とか。
で、まとめると、ピロリさんとしては、 ・そんなとこから read.cgi を直に起動させちゃ、いずれ大変なことになる ということになるのかしら。
業者サンには、自腹でばなな鯖をかりてもらってそこ経由でアレするコトを義務付けるとか
ibisDXの新バージョンに2chブラウザ機能つければいいんじゃね?
>>572 別アプリとかね。
そろそろ、PC用専用ブラウザとおんなじような
何らかのガイドラインが必要になったりするのかしら。
2chブラウザ向けにliveb1でのbbsメニューってつくらないのかな、
ibisBrowserというものを根本的にわかってなかった説
>>574 はい。
つまり、携帯端末から普通のPCみたいにread.cgiを普通に叩くというか、
叩けるようになる時代がやってきてしまったと。
それをふまえて、
>>566 の後半を書きました。
>>576 そういう私も、昨日ちょっとだけ(無料版ですが)使ってみただけなんです。
たまたまドコモの携帯があったんで。
動作原理わからないと、いろいろ判断できないです。
で、、、裏の方を向いて言っておくと。 携帯がどんどん進化してくると、 たぶんcやら裏やらではみんな、 満足してくれなくなる時代が必ずやってくると思います。 というか、もう来はじめているのかもしれないです。 なんてか、現在のような隔離政策(とあえて言ってしまおう)には、 限界が見えてしまった(まだほんとの限界は相当先ですが) のかも、しんないです。 なんてことを、海の上の滑り台の上でだらだらと考えてみる。
つまり「うーむ」な状況と、 今の隔離した部分が増えることはあっても減ることはないでしょう。 そして新たな部分が加わると、それも急速に。 ちゃんちゃん
でもそれはそれで、悪いことではないのかな。 ・魅力的な裏システム ・白ヤギ本格稼動 とか、とれる手段はまだまだあるかなと。 # ちょっと、ねむけ来た。 # 今日の午後(米国時間)が、つらいんだよなぁ。
たびたび質問をいたします。 User-Agentに下記の情報を送らなかった場合、 Mozilla/4.0 (compatible; ibisBrowser; ipIPアドレス; ser端末固定番号) 公開PROXYからの投稿は受け付けていません と出るのが正しい結果でしょうか。
>>583 新しいエラーメッセージ(必要な情報が送られてこない旨)
を、作ろうと思っているです。
(携帯で端末情報が来ないときと同じようなかんじのもの)
というか、まだbbs.cgiをいじっていませんので、
>>584 のままかなと。
乗り継ぎ地点で時間とれると思うんで、しばらくおまちをば。
(今、国際線の機上におります)
>>585 のレスアンカーは
>>583 の間違いです。
なにぶん趣味100%でいい加減にやっておりますので、
対応のディレイについては、ひらにおゆるしをば。
そっちへ移動したほうがサーバ群にとって得々になるようにすれば どんどん使えーな状況になると、 また考えるかのぅ まずは散歩でもしてくるか、 今日も天気がいいぞ !
>>567 まぁ
>>476 自体は共有オブジェクトロードエラーの対策ですから......
で,read.cgi のアクセスが増えると...... 前も言ってましたが,
read.cgi 出力も Last-Mod を吐いて mod_cache の対象にするって手もありますね.
このスレが前回取得時から100レスも レス数が増加してるから何事かと思った。 まぁ、、携帯関連の話って感じですかぁ。。 ---- read.cgiを直接たたかれるとなるとー。。 携帯とはいえ、PCで表示できるサイトはたいてい (画面サイズ以外)そのまま表示できるフルブラウザなわけですものね。。。
>>589 ですね。
というか、やらんといかん時期か。
で、個人的にはfork()のパッチがくさいかもなとか、思っていたり。
httpdへのアクセスが増えて、forkが起こるとだめと。
あ、なら、fork()しないようにhttpdを設定するとか有効なのかな。
>>591 >>462 のを見ると,マルチスレッドプロセスの fork() に問題がある,
つまり例えば mod_cgi を使っててマルチスレッドの httpd が fork() を
実行するような場合に問題があるということで,そうでなければ worker MPM でも
マルチスレッドプロセスが fork() を実行することはなさそうにも思いますが......
ここはじっくりと、 次世代の read.cgi を作ろう 1) 今実装が急がれるもの 2) 次をにらんだ先進性。 この際また書き直しますでー
>>541 でも書きましたがフルブラウザベンダーがrep2使ってくれればアクセス数は減る希ガス。
でも商用はやはり無理か。
ユーザーエージェントと自鯖ローカル認識させログイン出来るのつくればって俺のいうことじゃないな
旧式ブラウザをばっさり切り捨てるという割り切りができるなら,
例えば read.cgi は read.html にしてしまって,dat の指定行だけ
XMLHttpRequest とか使って取ってきて JavaScript で HTML 化させる,
というような方法もありますけどね.
書き込んだ際も,ページ全体をリロードじゃなくて新着分だけ取ってきて追加表示するとか.
イメージ的には
http://sunos.saita.ma/leaflet.html のように.
>>592 httpd が増える時って、forkしないんでしたっけ。
【実況】 live22x Part13
http://qb5.2ch.net/test/read.cgi/operate/1141564207/878-879 前にちょっと間違った情報を書いた気がします。
live22x[123] は、Apache 2.0.55
# live22 special setting <IfModule mpm_worker_module> StartServers 96 # Serverlimit 128 Serverlimit 96 # MaxClients 4096 MaxClients 3072 MinSpareThreads 256 MaxSpareThreads 3072 ThreadsPerChild 32 MaxRequestsPerChild 32000000 ThreadLimit 32 MaxMemFree 64000 </IfModule> 2行コメントアウトした。 これで、httpdが増える(fork)はなくなったはず。
規制とかのシステムでも忙しくなりそう。ホントrootさん頼りになるなぁ。 つ旦~ じっくり逝きましょう
>>598-602 乙です.
>httpd が増える時って、forkしないんでしたっけ。
fork() するのは親プロセスで,マルチスレッド MPM 使用時でも
親プロセスはシングルスレッドなんで...... で,マルチスレッドプロセスは
fork() させない方がよいという考えから mod_cgid というのもあるんで.
ibisユーザーって、とことん自己中心的って言うか、 自分が使ってるアプリのことしか考えてないな ibisスレも見てきたが、厨房意見が多すぎ
結局、契約者数約800人の低価格、スポンサーつかないお子さまアプリってこと まで書かないとわからないのか… やっぱり厨房ユーザーの集まりだ
>>604-606 スレ違い。
VIPでやってください。
>>606 スポンサーは、Exciteがついた。
流石に800人よりは、増えている。
久しぶりにきたibisのGoodニュースなんだ見逃して
やってくれ。
・各ベンダーがキャッシュサーバを用意する 2chの元サーバには多大な負荷がかからない。 2ch側はなんの作業もする必要がない ・各ベンダーのためにキャッシュサーバを2ch側で用意する。 2ch側でキャッシュサーバをベンダーのために作って運用しなきゃいけない 各ベンダーに取得の仕方を周知しなきゃいけない。
>>610 アンカーつけなかったから誤解させてスマソ。
12月で894人?だっけ。サバを読みすぎだと言いたかった。
まあ、妬んでいるだけだろうけどね。
>>611 各ベンダーに白山羊を勝手に作らせればいいんじゃないのかい?
ってことですか。
で、ベンダーというのは、例えば携帯アプリを作っているベンダーってことですかね。
ただ、カネにならないようなことをベンダーさんが
自分のコスト(身銭)切ってやりますかね。
んで、なんか、 ベンダー = がっくしメニュー とかいう展開がいいなとか、ちょっとおもた。 というか前から、脳内にはあったわけだけど。
そうかガックシがあったね。 だったらガックシのプログラム(CGI)をベンダーにいれ運用するのを条件にやるのもありかも。 出来ればカキコはアプリから抜けて携帯直でいければいいんだけど俺auだし、IMONAとopera mini(mini.opera.com)ですむユーザーだからワカンネ。
勝手に、は、ちょっといまいちだな。 「作らせるように仕向ける」というか 一歩進んで「自ら進んで作っていただける」ようにするということか。 大リーグボール1号(古いな)みたいな。
>>619 ibisの場合は、それで2ちゃんねらを大量確保出来る可能性があり
現状でユーザー数がまだまだ少ないから設備投資額もかなり安く
すむ(ユーザーが増えるたびに増設すればいいだけで一気にやる
必要がない)のでやるかも。
だけどjigの場合は、3万人のユーザーがいるらしいからやらないだ
ろうとオモタ
「同一IPから大量にアクセスがきたらBANしますよ」 「それが嫌なら、がっくしメニューを導入してください。」 で話が済むなら、楽でいいなぁ。
>>620 今のcでいうBlackGoatみたいなものなら、
既存のありもので比較的容易に作れます。
で、2ちゃんねるの携帯ユーザの大半を受け付けても、
Xeon dual/2G mem/SCSI HDDなサーバ2台で、全部さばけています。
BlackGoatはパフォーマンスを出すためにいろんなチューニングしまくりですが、
これらはすべて公開の場でやっているし、
もし必要なら、別途改めて設定を公開してもよいです。
だって、dat取得の負荷が下がるんだから、
こちらとしてはばんばんざいで。
>>621 そうすね。
>>622 あたりは、次善の策なのかな。
datキャッシュサーバをベンダーさんに準備してもらって、
そこからのアクセスだけ、リロードバーボンをスルーにすると。
>>622 c.2chと携帯PCブラウザ(おそらく公開p2or自鯖p2経由)
は、等価のシステムですむのですか?
>>624 ん、何と何がどう「等価」なのかしら。
(すみません、質問の意図がよくわからんです)
流れを切って悪いですが、apache workerのバグを1つ見つけたのでパッチをUPします。 --- server/mpm/worker/fdqueue.c.origFri Nov 11 00:20:05 2005 +++ server/mpm/worker/fdqueue.cSun Mar 19 10:49:17 2006 @@ -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) { このパッチは、配列の要素数を越えてアクセスし、メモリ内容を破壊してしまう 問題を修正します。 問題が発生すると、Segmentation Faultや、httpdがどんどん増えてしまう現象が 発生します。 良かったら、試してみてください。
. ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (;´Д`)< スンマセン、直ぐに片付けます -=≡ / ヽ \ この池沼は無視してください . /| | |. | \___________ -=≡ /. \ヽ/\\_ / ヽ⌒)==ヽ_)= ∧_∧ -= / /⌒\.\ || || (´・ω・`) ←◆2ZQBOv2.jQ / / > ) || || ( つ旦O / / / /_||_ || と_)_) _. し' (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))
>>625 つまりroot氏が例に出されたXeon dual/2G mem/SCSI HDD
なサーバ2台で携帯ユーザーが全員(ありえないが)ibisに乗
り換えたとしてもやっていけるのかということです(それをibis
では、なく2ch側が準備すると仮定した場合です)。
jigやibisが顧客を2ちゃんねらーかどうかの判断は、出来ない
から結局全員分の対応をしなくては、いけないから2chの携帯
ユーザーよりは、当然増えるわけだし。
あとなぜ公式p2や自鯖p2経由だろかと思ったかというと現状で
p2が携帯PCブラウザ経由の書き込みの際に最も便利な手段
だから(逆にいうと他の方法が使いづらい)
>>626 を適用した httpd をコンパイル中。
すまんが、携帯PCブラウザってフルブラウザのことだよな。 アイビズがなにしたいのかしらんがまぁドコモにもIMONAは有るわけで、 アイビズは何がしたいんだ? アイビズユーザーが知らないだけ?それともアイビズからカキコ&リードする利点はリンク先のサイトを見たいのが一番だろう(妄想)。 ならばこれができるのはorzとrep2な訳だ(おれはこれしか知らない)。 rep2はアイビズが鯖用意してログインとお気に等のユーザー情報を変える等の負担が掛かるし内輪な感じ。 orzはオープンだし改変の必要はあんまり必要ないがするとしたらすべてアイビズの中で完結させるようにする。 俺はどっちでも良い希ガス(あえていうならorzでそのまま放置みんなに解放)
すばやい適用どうもです。 まだ問題あると思いますが、少しはましになると良いと思います。。。
虫を踏んだ瞬間を観察した。 ucond も見たけど、 fileli って、top 的にどういう状態なのかしら。 ufs というのもあったし。
前にも書いたけど、 何かのタイミングでCPUのアイドルタイムが0になり、LAが急上昇をはじめるんですよね。 で、いったんこうなると、httpd をリスタートしないと直らないと。 で、kill でもそう簡単には死んでくれないし、最後にはhttpdがsignal 10で落ちる。
filiはfilelistロックです。 システム全体のファイルディスクリプタリストをロックしています。 ufsが出るということは、おそらくPREEMPTIONつきカーネルですね。 6.0からデフォルトですが、ネットワークIOが多いシステムだと、PREEMPTIONなし の方が速かったりします。
>>639 さっきLA急上昇中に、fileli が大量発生していました。
ufs なのもたくさんいました。
options PREEMPTION # Enable kernel thread preemption
になっています(デフォルトから変えていない)。< live22
ファイルシステムまわりは前にも少し疑ったことがありますが、
どうなんだろう。
httpd は通常時はkserel(libpthread)かaccept(libthrとかprefork)ですね。 で、やばくなった時は大量に ucond とかの状態になったり、 大量に ufs (これは結構あった)とか fileli (これはさっきはじめてみた) の状態になるです。
ufsは、vnodeロックです。 6.0からVFSがGiant Freeになったのは御存じだと思いますが、 1)スレッドAがvnodeロックを取得 2)ネットワークIOにより割り込みが発生し、スレッドAの処理を横取り(PREEMPTION) 3)割り込み処理実行中 4)スレッドAが再スケージュリングされてvnodeロックを解放 ということが起こるので、結果的にvnodeが長時間ロックされる可能性があります。 よって、同じファイルに大量にアクセスが集中すると、処理の遅延が発生します。
虫を踏んだ瞬間のtopをとれた。2つ。 必ず最初に fileli が大量発生するっぽい。 PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 53194 root 1 97 0 8680K 2840K fileli 3 0:00 11.56% bzip2 50106 root 1 -8 0 2148K 1124K piperd 0 0:46 4.83% logbuffer 50625 ch2live22 2 -4 0 2512K 1248K ufs 1 0:27 0.93% bbsd 52490 root 1 96 0 7900K 6976K CPU2 3 0:02 0.54% top 50198 ch2live22 34 97 0 15144K 8592K fileli 2 0:10 0.29% httpd 53193 ch2live22 1 96 0 3044K 2344K CPU3 3 0:00 0.27% perl5.8.7 50172 ch2live22 34 97 0 14240K 8116K fileli 1 0:10 0.24% httpd 50192 ch2live22 34 97 0 15756K 9104K fileli 1 0:10 0.20% httpd 50134 ch2live22 34 97 0 14592K 8372K fileli 3 0:10 0.20% httpd 50118 ch2live22 34 97 0 14980K 8816K fileli 2 0:11 0.15% httpd 50178 ch2live22 34 97 0 15088K 8828K fileli 2 0:11 0.15% httpd 50179 ch2live22 34 97 0 15124K 8652K fileli 1 0:10 0.15% httpd 50157 ch2live22 34 97 0 14360K 8288K fileli 0 0:10 0.15% httpd 50163 ch2live22 34 97 0 14472K 7936K fileli 1 0:10 0.15% httpd 50144 ch2live22 34 97 0 14724K 8576K fileli 3 0:10 0.15% httpd 50181 ch2live22 34 97 0 14404K 8264K fileli 3 0:10 0.15% httpd 50195 ch2live22 34 97 0 14644K 8004K fileli 2 0:10 0.15% httpd 50188 ch2live22 34 97 0 14116K 8008K fileli 2 0:10 0.15% httpd 50131 ch2live22 34 97 0 15980K 9604K fileli 0 0:10 0.15% httpd 50173 ch2live22 34 97 0 14228K 8124K fileli 3 0:10 0.15% httpd 50124 ch2live22 34 97 0 16148K 9060K fileli 3 0:11 0.10% httpd 50111 ch2live22 34 97 0 15576K 9156K fileli 2 0:11 0.10% httpd 50126 ch2live22 34 97 0 14856K 8804K RUN 3 0:11 0.10% httpd 50177 ch2live22 34 97 0 14956K 8948K fileli 3 0:11 0.10% httpd 50122 ch2live22 34 97 0 15020K 8800K fileli 2 0:11 0.10% httpd 50200 ch2live22 34 97 0 15768K 9228K fileli 3 0:11 0.10% httpd
>>642 つまり PREEMPTION なしのほうが、よいということですか。
2つ目のサンプル。 PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 53593 ch2live22 1 131 0 2744K 2060K fileli 1 0:02 14.49% perl5.8.7 53689 ch2live22 2 105 0 1800K 1044K ucond 0 0:01 10.76% bbsd 53432 root 1 130 0 7048K 4792K select 0 0:01 5.05% httpd 53447 root 1 130 0 7048K 4792K select 0 0:01 2.96% httpd 53449 root 1 -8 0 2144K 1120K piperd 1 0:00 1.66% logbuffer 53608 root 1 131 0 16428K 15520K CPU2 0 0:00 1.24% top 53679 ch2live22 34 132 0 14528K 7736K fileli 1 0:00 0.83% httpd 53688 ch2live22 34 132 0 13780K 7248K fileli 1 0:00 0.83% httpd 53680 ch2live22 34 132 0 13648K 7088K fileli 0 0:00 0.83% httpd 53684 ch2live22 34 132 0 13284K 6720K ucond 1 0:00 0.50% httpd 53635 ch2live22 34 132 0 16392K 8980K fileli 1 0:00 0.44% httpd 53628 ch2live22 34 132 0 14532K 8020K fileli 0 0:00 0.44% httpd 53633 ch2live22 34 132 0 13344K 6748K ucond 3 0:00 0.44% httpd 53657 ch2live22 34 132 0 13588K 6828K fileli 1 0:00 0.44% httpd 53558 ch2live22 34 132 0 15268K 8996K fileli 1 0:01 0.39% httpd 53614 ch2live22 34 132 0 15036K 8512K fileli 3 0:00 0.37% httpd 53625 ch2live22 34 132 0 14060K 7724K fileli 3 0:00 0.30% httpd 53638 ch2live22 34 132 0 13680K 7100K ucond 0 0:00 0.30% httpd 53637 ch2live22 34 132 0 13316K 6716K ucond 0 0:00 0.30% httpd 53669 ch2live22 34 132 0 13656K 7128K fileli 1 0:00 0.30% httpd 53538 ch2live22 34 132 0 15120K 8856K fileli 1 0:01 0.29% httpd 53553 ch2live22 34 132 0 15836K 9364K fileli 1 0:01 0.29% httpd 53567 ch2live22 34 132 0 14752K 8192K RUN 3 0:00 0.20% httpd 53604 root 1 4 0 6128K 2496K sbwait 1 0:00 0.20% sshd 53542 ch2live22 34 132 0 15380K 9036K fileli 3 0:01 0.19% httpd 53555 ch2live22 34 132 0 13968K 7408K ucond 3 0:00 0.19% httpd
httpd 止めました。 PREEMPTION なしのカーネルに入れ替えます。
絶対とは言いませんが。。。 vmstatで見たとき、最初の r b w の b の部分がめちゃくちゃな数字になっているなら、 おそらく、かなりvnodeのロック競合が起きてると思われます。。。
で、
>>647 の緩和策としては、options PREEMPTION をやめる以外に、
どのあたりが考えられるでしょうか。
とりあえず、それで試してみて違いをみるのが良いかと。。 前のカーネルも保存されてますから、駄目ならすぐ戻せますし。
長年の勘から、今度の(vnode lock競合)は、とってもとっても、あたりっぽい気がします。 あらゆることが符合している。プロセス側でCPU時間を食わないというのも。
んー、でもhttpdがシグナル10で落ちるとかは、ロックとは関係ないと思います。 競合が起こって処理が重くなっても、シグナル10にはならないかと。
%sysctl kern.sched.preemption=0 sysctl: oid 'kern.sched.preemption' is read only /boot/loader.conf に書けばいけるのかな。 …いや、ここは安全策でカーネルを作り直そう。
>>652 それは、重くなってkillでも死ななくなった後に起こるですね。< signal 10
killで死なない(kill -9じゃないと駄目)というのは、正常時もそうじゃないですか? 少なくとも、うちではそうです。 SIGTERMは無視されます。
httpd / bbsd 上げた。< live22
killの問題はApacheのソース等をもう少し見ないと何ともです。。。 プロセス宛のシグナルをどのスレッドが受け取るか 受け取ったスレッドはシグナルをマスクしてないか そのあたりですね。。
>>626 確かに,spurious wakeup もある pthread_cond_wait() の使い方としては
元のは筋が悪いですね.ap_queue_pop() 内での使い方もちょっとダウトな感じですが......
それはそうと,PREEMPTION というのによって,アクセス殺到時にファイル I/O と
ネットワーク I/O の race condition が顕在化してたってところなんですかね.
PREEMPTION なしのカーネルに入れ替えました。 気のせいか、足元が軽くなったような気がします。
>>660 >ap_queue_pop() 内での使い方もちょっとダウトな感じですが......
それは自分も感じたんですが、テストした限りだと1行の変更だけで問題なさそうでした。
現在のvmstat %vmstat 1 procs memory page disks faults cpu r b w avm fre flt re pi po fr sr da0 da1 in sy cs us sy id 0 104 0 878836 2932948 3883 2 1 0 3641 0 0 0 7382 30923 17308 13 12 75 3 104 0 878852 2932796 3396 0 0 0 3456 0 1 3 11891 28176 25397 17 13 69 3 104 0 878852 2932720 3335 0 0 0 3406 0 0 0 12497 28749 26367 15 20 66 5 104 0 878892 2932544 3306 0 0 0 3343 0 1 0 11849 26574 25956 16 16 69 4 104 0 878900 2932408 2818 0 0 0 2887 0 1 0 12440 28562 26705 14 16 69 4 104 0 878916 2932264 2458 0 0 0 2488 0 0 0 12287 28141 25719 18 17 65
今はまだ、なんとも。 突然、b がガーンと来て(りゃ ってかんじだったです。
vnodeロック競合が多発していると、b の部分が激しくぶれる(数字が極端にかわる)です。 あと、cs(コンテキストスイッチ)の回数が減ってるかなぁと。
>>666 破綻が起きるまでは、そんなに変わってなかった気がします。< bの数字
# 前のをとっておけばよかったですね。
# vmstat は基本中の基本だし。
>>653 kern.sched.preemption は read only っぽいですね。
やはり、オプションでやるのかと。
健康的にLAが上昇しました。 ちゃんと7とか8になった。 正しくCPU idle timeもキープ。 今のところ、いいかんじです。
%vmstat 1 procs memory page disks faults cpu r b w avm fre flt re pi po fr sr da0 da1 in sy cs us sy id 85 3023 0 1131292 2532700 5032 1 0 0 4850 0 0 0 12187 41916 24118 20 19 61 8 3081 0 1126956 2534188 7303 0 0 0 7750 0 1 5 21404 36884 25371 62 38 0 205 2855 0 1129324 2532880 7596 0 0 0 7392 0 1 0 22261 45461 28639 59 41 0 46 2988 0 1129680 2532144 8139 0 0 0 8093 0 1 0 22777 38962 24436 61 39 0 233 2730 0 1130376 2531200 8625 0 0 0 8420 0 12 0 22656 48120 29367 59 41 0 220 2668 0 1131024 2530280 9143 0 0 0 9032 0 2 0 24220 48893 33151 54 46 0 ううむ。
またですね。 でも、原因はほぼ特定できた感じ。 %vmstat 1 procs memory page disks faults cpu r b w avm fre flt re pi po fr sr da0 da1 in sy cs us sy id 85 3023 0 1131292 2532700 5032 1 0 0 4850 0 0 0 12187 41916 24118 20 19 61 8 3081 0 1126956 2534188 7303 0 0 0 7750 0 1 5 21404 36884 25371 62 38 0 205 2855 0 1129324 2532880 7596 0 0 0 7392 0 1 0 22261 45461 28639 59 41 0 46 2988 0 1129680 2532144 8139 0 0 0 8093 0 1 0 22777 38962 24436 61 39 0 233 2730 0 1130376 2531200 8625 0 0 0 8420 0 12 0 22656 48120 29367 59 41 0 220 2668 0 1131024 2530280 9143 0 0 0 9032 0 2 0 24220 48893 33151 54 46 0
さて、どうしたものかな。 %vmstat 1 procs memory page disks faults cpu r b w avm fre flt re pi po fr sr da0 da1 in sy cs us sy id 112 2667 0 1106144 2559064 5300 1 0 0 5134 0 0 0 12528 42228 24038 22 20 58 295 2456 0 1097740 2560648 10136 0 0 0 10654 0 47 0 23360 60869 28125 58 42 0 265 2505 0 1099660 2560952 13812 0 0 0 13943 0 1 0 27769 55191 28873 60 40 0 184 2606 0 1100868 2559300 11510 0 0 0 11099 0 13 0 24122 64490 22761 57 43 0 63 2767 0 1104988 2555948 12390 2 0 0 11739 0 1 0 22741 58083 22351 59 41 0 246 2609 0 1106496 2556744 10841 0 0 0 10997 0 1 2 22095 65358 24619 56 44 0
PREEMPTION なしにしたら、さっきみたいに操作不能になるほどへろへろにはならなくなったけど、 やっぱり起こることは同じみたいですね。 PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 7998 ch2live22 1 132 0 4004K 3560K RUN 1 0:19 37.27% perl5.8.7 7733 root 1 132 0 2148K 1508K RUN 2 0:04 3.85% logbuffer 8155 root 1 4 0 6128K 3120K sbwait 1 0:00 1.61% sshd 7852 root 1 126 0 7872K 7120K CPU0 0 0:01 0.94% top 7759 ch2live22 34 131 0 15576K 9924K ucond 2 0:03 0.44% httpd 7843 ch2live22 34 131 0 15420K 9832K ucond 2 0:03 0.40% httpd 7797 ch2live22 34 132 0 16216K 10396K RUN 0 0:04 0.35% httpd 7809 ch2live22 34 132 0 16428K 10504K ucond 3 0:03 0.35% httpd 7785 ch2live22 34 129 0 15156K 9584K ucond 3 0:02 0.30% httpd 7817 ch2live22 34 131 0 15180K 9560K ucond 0 0:03 0.20% httpd 7813 ch2live22 34 130 0 15456K 9780K ucond 3 0:02 0.20% httpd 7792 ch2live22 34 128 0 16004K 10304K ucond 2 0:02 0.20% httpd 7768 ch2live22 34 131 0 15296K 9724K ucond 3 0:03 0.15% httpd 7815 ch2live22 34 131 0 15172K 9540K ucond 1 0:03 0.15% httpd 7842 ch2live22 34 131 0 15340K 9740K ucond 1 0:03 0.15% httpd 7806 ch2live22 34 131 0 15268K 9612K ucond 3 0:03 0.15% httpd 7796 ch2live22 34 130 0 15816K 10172K ucond 1 0:03 0.15% httpd
httpd / bbsd の再起動装置を止めました。 「破綻」は、しなくなりましたね。 一歩前進。 さて、根本的な対策は、、、。
何かすごい数字ですね。。。>vmstat ところで、 sysctl net.isr.direct は設定してます?
してないです。 %sysctl net.isr.direct net.isr.direct: 0
設定すると、ちょっとだけパフォーマンスがよくなるかも。
%sysctl net.isr.direct=1 net.isr.direct: 0 -> 1
焼け石に水っぽいですね。 しかし、状況は確かに改善しました。 ・完全破綻には至らない ・RUN状態もちゃんと出るようになった あとは、設定次第でもっとさばけるように出来るのか、 それともバックエンドはもう、現状では処理能力の限界なのか。
>>680 > しかし、状況は確かに改善しました。
は、
>>679 ではなくて、PREEMPTION なしカーネル。
さて、、、。 ようやくある意味「普通に重い」状況にできました。というか、なりました。 ここからどうするか、というかんじですかね。
何か前ちょっと /md に問題があるかもみたいなカキコを見かけたようなこと あるような気もしますが,普通に HDD 使ったらいいとかいう可能性ないですかね? /md ならどうせ落ちれば中身消失するのだから,代わりに async でやるとか.
…今は、落ち着いている感じ。
「ある閾値を超えると破綻する」が、
「ある閾値を超えると重くなる」に、変わったのかな。
>>683 どうなんでしょうね。
vnode というぐらいで、md でもコストかかるところなわけで。
>>684 > vnode というぐらいで、md でもコストかかるところなわけで。
つまり、HDD でやる意味はあるのかもしれないですが、
どうなんだろうか。
重いのってバックなんですよね。 張り付けられたtopの結果見るとperlが動いてますが、これはcgi? すいません、システムよくわかってないです。 システムがわかれば、単純なモデルを別途つくってみて、負荷かけたりして 調べてみてもいいんですが。。。
>>686 定時処理プログラムです。
板の圧縮とかごみそうじとか、そのへんをしています。
こんなかんじですね。< vmstat 108 3950 0 1474100 2049932 7617 0 0 0 7706 0 1 1 2849 94327 12814 61 39 0 40 4014 0 1480832 2050368 7916 0 0 0 7938 0 1 0 3308 43599 18318 58 42 0 268 3767 0 1480180 2050188 7763 0 0 0 7952 0 13 0 3084 63361 22205 48 52 0 74 3938 0 1467188 2051744 9684 0 0 0 9884 0 1 0 2638 72894 17037 59 41 0 12 3987 0 1479668 2050332 8085 0 0 0 8077 0 9 0 2921 59468 18077 56 44 0 3853 138 0 1471408 2051324 9379 0 0 0 9387 0 1 0 2761 85201 16557 58 42 0 141 3904 0 1475660 2049816 9507 0 0 0 8912 0 1 0 3036 59267 17773 59 41 0 117 3868 0 1477232 2049804 7241 0 0 0 7592 0 1 0 2539 63877 17439 56 44 0 28 3957 0 1473444 2050380 7578 0 1 0 7580 0 14 2 2660 67876 16204 61 39 0 236 3715 0 1477644 2049608 8732 0 0 0 8640 0 1 42 2926 62428 21377 54
で、accept で推移していて、 あふれている時は httpd が ucond とか RUN になるという状態ですね。今。
あと、topの結果は、スレッドを展開したもの(H を押して表示されるもの)の方が わかりやすいです。 といっても、おそらく多数のスレッドが動いてますから、結果が長すぎて駄目ですかね。
rsync (過去ログの同期)が、それなりに負担になっているなぁ。 仮に rsync で同期をやるとしても、過去ログrsync用バックエンドを別に持たせるかんじかな。
httpd / bbsd の再起動装置を止めた。 @ live22
>>694 s/止めた/再起動しても上がらなくした/
いっそ過去ログは全部 memories に転送する仕様にしてしまうとか......
ファイルは全部 mfs 上なので、mfs の設定をチューニングすればいいのかな。 /sbin/mdmfs -M -s ${_MDSIZE} -i 2048 -o noatime md /md 現在こんなかんじ。 /dev/md0 on /md (ufs, local, noatime, soft-updates) softupdate なしの async にする(前に1度負けてますが)とか、そのへんか。
>>696 で、read.cgi と offlaw.cgi をいじるかんじですか。
>>698 read.cgi の方はライブ dat のやり方を流用すればいいのでそんなに難しくはないでしょうね.
問題は offlaw.cgi ですが......
offlaw.cgi は、元ソースがどこにあるかすら知らなかったり。
>>700 う〜む......
ともあれ,
・ ファイルシステムチューニング
・ mod_cache 有効化(Squid 問題解決)
このあたりで何とかなるかどうかってとこですか<重さ
寝落ちしてました、、、。 em1: RX overrun というのが3回ほど。
news18 は LA=15-20 ぐらいだけど、何とかなりそうな感じ。 前に入れた自動Saborinが働いているかな。 ex13 ex14 は特に問題なしで。 で、live22 ははじめて、「今の限界まで正しく使われた」感じです。 それはそれで問題だが。
次の大きなステップ(フロント増設・バックcobra稼動)に進むためには、 サーバの移動とかをたんたんとすすめるってかんじですね。
で、ソフトウェア設定的に大きな器にする(
>>701 など)のは、
ようやく別途すすめられる状態にあいなったと。
というわけで、虫はとれたっぽい。
が、課題はまだたくさんある、といったところかなと。
live22関係は、今日はこんなところで。
もうやってるかもしれませんがシステムのチューニングだと
sysctl kern.ipc.somaxconn
の設定も有効でした。ただ、今の状況だと、効果あるかわかりませんが。。
あと
>>462-463 の修正はほとんどRELENG_6に入ったし、emドライバの修正もあるんで、
6.1-PREPRELEASEにあげるのも良いかも?
× 6.1-PREPRELEASE ○ 6.1-PRERELEASE
やっぱり目が覚めちゃう件について。
>>706-707 RELENG_6_1 が切られたら、さっそくというかんじですね。
で、今の live22 の kern.ipc.somaxconn の値。
# increase listen queue
kern.ipc.somaxconn=8192
kern.ipc.maxsockbuf=2097152
MacOS X (Darwin)の例ですが。
http://www.tech-arts.co.jp/macosx/macosx-jp/htdocs/16500/16582.html > というわけで、小さなファイルをたくさん抱えて何回もアクセスするような処理を
> 行っており、それら全部載るくらいのメモリを持っている場合は、
> maxvnodes の値を見直してみる価値はあるのではないでしょうか。
本家は、
11.13 Tuning Kernel Limits
http://www.freebsd.org/doc/en/books/handbook/configtuning-kernel-limits.html ここにも、vnode 関係の記述があるですね。
今は頭がぼーとしてるんで、あとでこのへん読んでじっくりと。
live22は今、
kern.maxvnodes: 100000
の模様(デフォルト)。
>>708 やはり、基本的な設定はされているんですね。
8192もあれば、普通なら問題ないと思います。。
個人的に、vmstatの b のところが、2000とか3000とかいってるのが気になるというか、
正直、そんな値初めて見ました。
リソース待ちなわけですが、何を待ってるんだろう。。
ってpage faultも多いですね。うーん。。
日曜(現地)も仕事入っていたりしますが、 合間を見て、管理人ではない「西村さん」の案件をやろうかなと。 長い、しかし有意義な1日だった。
>>710 「リソース待ち」っぽいのは、この症状が出たころ(昨年末)から感じていて、
このスレの過去スレにも書いたですね。
page fault 多いですか。
vm 関係も微妙にチューニングの必要ありかもと。
今日はほんとにありがとうございました。
PREEMPTIONの件で、ここ数ヶ月止まっていたことが
一つ前に進んだ気がします。
そんでは、もうひとねいり。
俺も複数チンポシーン好きだけど、本番ないのが惜しかったなパー穴 パー穴の複数チンポとデミパの本番のいいとこどりなやつキボン ぶっちゃけ林間が見たい あの下品なテイストのままで。
そういえば......matd の方は WBC の時どんな感じだったんでしょうね. 限界近いぐらいか,それともまだ余力十分か......
>>717 特に問題はなかったようです。
限界近いか余力十分かは、、、stats をとらないといかんですね。
>>490 と
>>583 とを前提にしたコードを、
ぼちぼち入れていきます。
これから組んで、できたらまず qb5 と qb6 に入れようかと。
入れたらその旨知らせるので、別途試してみていただけると助かります。
西村さんの意見かぁ。 だんだんひろゆきさんがホリエモンみたくイメージキャラクター化しているように感じるのは俺だけ?
「管理人ではない」とわざわざ書いてあったりするのに 管理人にされてしまう西村さんテラカワイソス
bbs.cgi再開発プロジェクト7
http://qb5.2ch.net/test/read.cgi/operate/1130918407/488 qb5 サーバに携帯用ブラウザ対応版 bbs.cgi を入れました。
というわけで、書き込みテストをよろしくお願いいたします。
テストはこちらでやっていただけますと助かります。
[test] 書き込みテスト 専用スレッド 59 [テスト]
http://qb5.2ch.net/test/read.cgi/operate/1140966906/ なお今回の bbs.cgi 内の対応は「一般的に」行ったので
(ブラウザ依存の取得ルーチンの追加だけで対応可能)、
仮に同様の情報を提供いただける、他の携帯用ブラウザがあれば、
それらへの対応も、技術的には可能になったはず。
>>724 どうもです。
IDの一致を見たいので、普通に c.2ch.net 経由で書いていただけると助かります。
申し訳ありませんでした。
>>723 http://qb5.2ch.net/test/read.cgi/operate/1140966906/944 にて、正常に送信できたことを報告いたします。
----------
携帯用ブラウザからの情報を正しく取得できませんでした。
と出ました。
弊社側のサーバがそちらに対応していないようです。
対応いたします。
>>727 ???
一度書けたのに、どうしたのでしょう。
>>728 > 一度書けたのに、どうしたのでしょう。
action属性の値を厳密化(../test/bbs.cgi)しすぎていたため、c.2ch.net に書き込めませんでした。
c.2ch.net 経由でも書き込めたことを
http://qb5.2ch.net/test/read.cgi/operate/1140966906/947 にて報告いたします。
>>729 了解です。そういうことでしたか。
あともうひとつ(実はこれがさきほどの質問の意図でしたが)、
ibisBrowser 経由ではなく、同じ携帯で直接iモードからc.2ch.net経由で
同じスレッドに書き込んでいただけると助かります。
それで、その書き込みのIDの末尾だけがQからOに変わればすべて解決になります。
(つまり、素で携帯から書いたものと同じIDになってほしい)
よろしくお願いします。
向こうで確認しました。うまくいっているようですね。 それでは、全サーバにこのbbs.cgiを配布するということで。
ありがとうございました。 今後ともよろしくお願いいたします。
配布しました。
10分程度で全サーバ有効になるはず。
以降の不具合報告等についてはここではなく、
こちらのスレを使っていただけると助かります。
bbs.cgi再開発プロジェクト7
http://qb5.2ch.net/test/read.cgi/operate/1130918407/ IPアドレスの追加・変更やUAの仕様変更、
あるいはDoCoMo以外の機種への対応があった場合には、
これまで通り、こちらのスレで報告をお願いします。
ということで、よろしくお願いします。
>>734 承知しました。
よろしくお願いいたします。
昨日PREEMPTIONなしをお薦めした者ですが、 PREEMPTIONとDEVICE_POLLINGについて簡単なベンチマークを行ってみました。 ベンチマークには自作のApacheモジュールを使用しました。 そのモジュールは、/var/tmp/bbs.txtというファイルを開いた後にファイルをロックし、 そのファイルにHello, world!!!という文字列を50回書き込んで、 クライアントにtest OK!という文字列を返すという簡単なものです。 abを使用して、同時1000接続、合計1000000リクエストでテストしました。 <テスト結果> PREEMPTIONあり + DEVICE_POLLINGなし: Requests per second: 1999.76 [#/sec] PREEMPTIONあり + DEVICE_POLLINGあり: Requests per second: 1836.68 [#/sec] PREEMPTIONなし + DEVICE_POLLINGなし: Requests per second: 5005.48 [#/sec] PREEMPTIONなし + DEVICE_POLLINGあり: Requests per second: 6528.52 [#/sec] 良かったら御参考に。
今日も目が覚めてしまった件。
>>737 どうもです。DEVICE_POLLING ですか。
前に一度、matd の時に挙動不審になって負けた経験がありますが、
あれはPREEMPTIONあり + DEVICE_POLLING ありだった時(下記で一番悪い)なので、
別途やってみる意味はありますね。
live22は幸運にもリモートコンソールでアクセスできるので、
最悪ネットワークがしくっても、なんとかできるので。
また、あとで挑戦ということで。
あ、あと、最後の「PREEMPTIONなし + DEVICE_POLLINGあり」では、 ・vmstatで見たとき、run queueに2桁しかたまらない ・vmstatで見たとき、cpu idleが0ではない という特徴がありました。他のものはrun queueは3桁でidleは0でした。 …それにしても、リソース待ちの状況が作り出せないです。 どうやったらそうなるのか、個人的に興味があるんですが。
>> 709 現在のlive22xの過去ログの数を数えたら、167315個ぐらいあるようなきがする... rsyncって配下のファイル全部なめたりしませんよね。 とりあえず、 sysctl vfs.numvnodes の値を見た方がよいのかも。
>rsyncって配下のファイル全部なめたりしませんよね。 ファイルリストを作るために舐める気がした。
rsync が負担になってるとすると......長期的には offlaw.cgi 改造で rsync を使わずに済む形に持っていくとして,今できる対策ということでは, 例えば LA が上がるなど忙しい時には一時的に rsync を止めてしまって, ゆとりができてから rsync を再開させるようにするとか.
おはようございます。
過去ログ部分のrsyncをゆっくりにして(rsyncの系統を分ける)、
>>742 のような策も入れてみようかと。
鯖に関して外部との共同作業ってのは、初めてかもしれないな
系統を分けるんなら負荷の低いときには早めに同期するとかしてほしいなあ
740なこといいましたが、本当にrsyncのファイルアクセスのせいかわからないので、 メモリに余裕があるのなら、まずは、 kern.maxvnodes=200000ぐらいにして リソース待ちが発生しないかためしてみるのがよいのかも。
rsync がいなくてもリソース待ちが起こったのを確認しました。
で、これが効くといいかなと。
【団子】負荷監視所_20060319
http://live14.2ch.net/test/read.cgi/liveplus/1142750659/168 168 名前: ◆MUMUMUhnYI [sage] 投稿日:2006/03/21(火) 11:51:03.36 ID:iMM5RZdi0 ?#
>>163 >>166 Apache status を見ると、L が死ぬほどありました。
つまり、ログを書くところで詰まりまくり。
Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process
TransferLogしているのも原因かも。
いずれにせよlive22でPVとる必要も意味もないので、
この部分コメントにしたです。
>>747 >>748 を見てから、ってかんじですかね。
それでも起こるようなら、入れる感じで。
>>749 乙です。
vfs.numvnodesが余裕あるようでしたら、
必要ないのかなと思います。
# こいつの解放タイミングがわからないので、
# 通常は低いんですかね。
>>748 乙です.なるほど,logbuffer ってやつですか.
それでまた一歩前進になるのかな.
#
>>717 もちょっと気にかかりますが.
live22x1 でも、 em1: RX overrun が。 で、live22 は httpd が signal 10 でダウンしたりした模様。 フロントもPREEMPTIONなし、DEVICE_POLLINGありにするかんじかなと。 あと、ex14も。
で、Apache status のログをあとで観察してみる。
http://mumumu.mu/mrtgc/mrtg-rrd.cgi/traffic/blackgoat3-privatetraf.html また、32bitカウンタがあふれたです。< BG3
2分に1回だから、携帯系のフロント <=> バックの間300Mbpsぐらい出たのか。
なんかみんなすごいな。
雪だるま(mrtgs)同様、1分に1回に。
>>754 >>752 > PREEMPTIONなし、DEVICE_POLLINGありにするかんじかなと。
> あと、ex14も。
ex14 done.
あと作業としては、
・live22x[1-3], ex14: apache2.2 + patches に入れ替え、libthr に再変更
・matd がめいっぱいかどうか検証
>>751 ・
>>753 ・
>>752 ・
>>740 >>747 >>750 ・
>>742-743 ・RELENG_6_1 が来たら更新
で、ロケーション系では、 ・game10 news19 hobby7 BBQ 移動手配 ・その後フロント、バック増設 あと、フロント増設時に1台を過去ログ専用にして、 過去ログのrsyncはそこだけにして、他はmod_proxyでとばしてみるとか。
>>754 bsnmpdなら64bitカウンター使えるんですがねー
UCD-SNMP-MIBが使えない・・・
BG4はカーネルパニックか。
%cat info.1
Dump header from device /dev/da0s1b
Architecture: i386
Architecture Version: 2
Dump Length: 2146500608B (2047 MB)
Blocksize: 512
Dumptime: Tue Mar 21 06:31:02 2006
Hostname: tiger512.maido3.com
Magic: FreeBSD Kernel Dump
Version String: FreeBSD 6.0-RELEASE-p2 #0: Fri Jan 13 10:22:04 PST 2006
[email protected] :/var/src/sys/i386/compile/I386_TIGER_60_BLACKGOAT
Panic String: page fault
Dump Parity: 52599871
Bounds: 1
Dump Status: good
%kgdb /boot/kernel/kernel vmcore.1
[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd".
(no debugging symbols found)...Attempt to extract a component of a value that is not a structure pointer.
(kgdb) where
#0 0xc0505f3e in doadump ()
#1 0xc06f9f60 in buf.0 ()
#2 0xf15f1b8c in ?? ()
#3 0xc0506429 in boot ()
Previous frame inner to this frame (corrupt stack?)
(kgdb) quit
>>759 ex14 は PREEMPTION 無効のみでした。
>>767 2chで直接影響するものはなさそうですね・・・・
しいて言うならsendmailだろうけど、つかっていなさそうですし
いづれにせよroot先生のご判断しだいですが
2chの動作報告はここで。 パート19
http://qb5.2ch.net/test/read.cgi/operate/1140600013/ ということで、特定のIPアドレスからの特定CGIの過激な起動を検知して、
例えば 403 エラーとか特定の URI とかを返すようなよい Apache モジュールって、
何があるのかしら。
…昔一時的に使ったdosなんちゃら(evasiveだっけ)とかかな。
記憶をたどっていますが、
前にみた時には、<Files bbs.cgi> </Files> とかで囲むことができないから
いまいちだなぁって話を、確かしたですね。
【Project peko】2ch特化型サーバ・ロケーション構築作戦 Part15
http://qb5.2ch.net/operate/kako/1093/10930/1093068260.html 今更ですが、
>>655 >>659 について調べたので、一応報告しておきます。
結論から言いますと、apacheのソースを見る限り、workerにてkillでプロセスが終了しないのは正しい動きです。
workerの場合、1プロセスにつき、
main thread x 1
listener thread x 1
worker thread x ThreadsPerChild
というように、ThreadsPerChild + 2個のスレッドが立ち上がるのですが、
killコマンドでプロセスにSIGTERMを送信した場合、そのシグナルは main thread で受け取ります。
main thread は、親プロセスからのプロセス終了指令が来るまでひたすら待機しており、
SIGTERMを受信した時は、一時的に待機を中断するんですが、すぐまた元の待機状態に戻ります。
シグナルハンドラは、デフォルトのものから何もしない関数に変更されているので、終了はしません。
2006/03/25 18:00:01 LA= 6:00PM up 6 days, 4:31, 0 users, load averages: 209.71, 406.11, 460.26
LAがすごいことになってたのね。
>>775 なるほど、おつです。
logbuffer を通さない形でのログとりを復活させよう。 これだと、何が起きたのかもわからないし、 仮に外から DoS られたりしても、何もわからない。
あと、live22 はもうひとつ問題があって、 %df /home Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/da1s1f 29633058 11180958 16081456 41% /home 既に HDD を4割以上、使っています。 どんどん書き込まれるから、ペースが速い。 遠からずいわゆる「リフレッシュ工事」が必要な状態に。 どうするのがいいのかなと。
今見たら、ex14もなかなかですね。 旧 ex10 の内容は消したのに(一度リフレッシュ工事している)、 もう7割以上か。 %df /home Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/da1s1d 34710178 22568858 9364506 71% /home
>>770 は
>>774 (mod_netnice) でできそうですね.
>>779 は
>>761 の
>あと、フロント増設時に1台を過去ログ専用にして、
>過去ログのrsyncはそこだけにして、他はmod_proxyでとばしてみるとか。
というのを変形させて,過去ログ dat は全部 memories に転送して
live22 では過去ログを保持しないようにして,過去ログへのリクエストは
mod_proxy で memories に投げるようにするとか.
Mar 25 19:41:45 <12.3> tiger511 ntpd[552]: sendto(216.218.192.202): No route to host Mar 25 19:42:13 <12.3> tiger511 ntpd[552]: sendto(209.51.161.238): No route to host Mar 25 19:49:42 <12.3> tiger511 ntpd[552]: sendto(216.218.254.202): No route to host Mar 25 19:58:48 <12.3> tiger511 ntpd[552]: sendto(216.218.192.202): No route to host Mar 25 19:59:17 <12.3> tiger511 ntpd[552]: sendto(209.51.161.238): No route to host ... ううむ、ネットワークカード(em)が虫を踏んだっぽい。< BG3 トラフィックが多いプライベート側はこけたら起き上がる仕掛けいれてあるけど、 パブリック側にも必要なのかも。
>>781 第一段落
日々、感染PCが増えてきている模様。なんだかなと。
>>781 第二段落
なるほど、
何らかの形で別サーバ(memoriesなど)に過去ログを送って、
mod_proxy でそこを参照させるというのが、一番有力そうですね。
>>782 プライベート側*も*、ダウンしていた模様。 < BG3
仕掛け(ifconfig downしてifconfig upする)が
動きまくった(けど復活しなかった)メールが、たくさんたくさん。
ううむ。
>783 沈静化したと思ったんですがまだ広がる気配があるのですか・・・ 大量でしたら通報コースにしましょうか? 前回と違ってプロバイダも対応してくれると思います。
>>785 私もそう思いますー。
とゆーか、感染しちゃう人は、別亜種もやっぱり拾って
感染しちゃうんじゃないですかねー。
作る方は、作って流すだけですからねー。
感染パソコンに何も出来ないって状態を打破しないと
駄目なんじゃないかなーと。
>785補足 通報対象を過剰にbbs.cgiをつついてる人に絞ればapacheのログ添付すればいい ので簡単に作業できると思います。 (IPごとにログ抽出しないと行けないんですが)
>>785-787 ふむ。
今回、超高頻度なアクセス*そのもの*が問題になっています。
ようは、DoS攻撃を発生させるウイルスということになりますね。
単に通報案件にした場合、
地道なというか長丁場というか、永久に通報し続けなければならない予感がします。
つまりなんというか、その路線では幸せになれないような。
何とか、根本的な手だてはないものかなと。
今ざっとtmp6のアクセスログを見てみましたが、
22:00-23:00 の間のこのウイルスっぽいアクセスがあるIPアドレスは、
121 IPアドレスあった模様。
騒ぎが始まったときは 37 個(だったかな)だから、もう4倍近くに。
で、そのうちいちばんひどい一つからは、1時間で2万回近くのアクセスがあったと。
で、そういうのがそれこそ何十と。
そんなわけでtmp6は、今2ちゃんねるで最もアクセスされているサーバに。
http://sabo2.kakiko.com/pageview/daydata.cgi?date=20060325 >>788 >単に通報案件にした場合、
>地道なというか長丁場というか、永久に通報し続けなければならない予感がします。
えーと、その地道なものがやりにくいとゆーか、やれる仕組みがないなーと。
多分、鯖側の対応でも、永遠にやることになると思いますよー。
すでにもう半年以上戦ってるわけでー。
今回はDos攻撃みたいだから対応してくれてますがー、亜種はゴロゴロ
あるんですよねー。そちらは対応されてませんよねー。
すでにそれらはイタチごっこしてますー。
地道に焼くしかないんですがー、Rockすら出来ないと焼くことも
出来ないわけですよねー。
少なくとも今回のは、Rock&BBQでは対処不可能ですー。
>>790 うーむ、、、。
> 少なくとも今回のは、Rock&BBQでは対処不可能ですー。
ですね。
それはつまり、既存の仕組みではもはや対応できないと。
で、結局、
> えーと、その地道なものがやりにくいとゆーか、やれる仕組みがないなーと。
これなわけで。
つまりだとすると、この「仕組み」は、どうすれば作れるのかなと。
そこにポイントがあるような気がします。
これまで、Boo80/Samba24/BBQ/BBM/Rock54 etc. といった「しくみ」を
作ってきたわけで、新たな何かが必要になった、ということなのかなと。
新たな何か、か。
さて、どうするのがいいのか。
例えば、これかもなぁ、とか。
http://sunos.saita.ma/mod_authz_iplist.html とりあえず明日以降に備えて、今日のところはここまでかなと。
tmp6 とかで mod_netnice を試してみるとかできないんでしょうか.
>>792 乙です.mod_authz_iplist は DoS を自動検出する機能はないんで,
例えばバーボンで拒否ホスト数が増えた場合に使うとかなら有効かと.
>>793 tmp6 = banana340 は standard banana なので
(= 私はroot権限を持っていない)、
別途、調整等が必要になるですね。
もちろん、そういった調整を不可能だとは思っていませんです。
>>794 そういうことを考えています。
例えばバーボンを2系統にして、
フェータルバーボン(仮名)の場合、mod_authz_iplist に長期間期限で突っ込むとか。
で、フェータルになる要件を決めると。
(例えば、しつこくDoSってくるとか)
これのよさげなところは、従来のバーボンの仕組みを
拡張すれば、いけそうなところですかね。
で、ここに至るまでのこころは、 ・deny で単にはじく負荷がばかにならない状況になってきた <= 今ここ ・よって、ここを軽くしたい ・カーネルレベルで deny する (例えばFreeBSD なら ipf とか)のは、まだとっておきたい ・root 権限なしサーバでもフレキシブルにdenyできるようにしたい(今の .htaccess っぽい手軽さ) ・うーん、なんとかならないかな ってなかんじですね。
>>795-797 なるほど.実のところ,ウィルスではないんですが
sunos.saita.ma/inspired/ でも性質の悪いクローラみたいなのが
度々やってきて猛烈に叩きまくるんで,DoS 自動検出・拒否の機能を
入れてるんですが,これは inspired が mod_cgidso 使ってるんで
直接その機能を埋め込んでもモジュールレベルで弾くのとほぼ同等の
軽さにできるんですよね.ただ bbs.cgi だとそういうわけにも
行かないでしょうし,さて......
>>798 bbs.cgi に mod_cgidso な「皮」をかぶせるとかすれば、できなくないのかしら。
DoS自動検出・拒否機能を持ったmod_cgidsoなbbs.cgiを準備し、
ユーザはそれを叩くようにして、そこでDoS検知・拒否だけして、
DoSじゃない場合にのみ、bbs-speedy.cgi(仮名)を普通にCGIとして実行するとか。
>>798 DSO 版 bbs.cgi から internal redirect で bbs-speedy.cgi に振る
ってのはできそうですね.ただ,その bbs-speedy.cgi が直接外部から叩かれると
意味ないんで......そこをどうするかですね.
>>800 public_html の上に実態を置けるようにするとか。
これだと internal redirect はできないかもですが。
>>801 そうすると......speedy プロセスを直接呼ぶとかいう感じですか.
ただ,worker MPM だと fork() とかやるといろいろ問題ありそうですし,
どうやるのがいいのか,う〜む......
例えば <Files bbs-speedy.cgi> Deny from all Allow from env=doschecked </Files> とかやって,bbs.cgi では doschecked という環境変数を設定する とかすれば外から直接叩けず internal redirect だけ Ok ってできるかな......
…ちと本日は、限界来ました。 PCたたんで寝床に移動するです。すんません。
>>806 乙!!。
>PCたたんで寝床に移動するです。すんません。
ノートでしょうか?w
ファイヤーウォール コネクション数規制 ファイヤーウォール鯖咬ます
スパムのフィルタリングに使われてるベイズフィルタとか使えない…か。 会話してるスレしか機能しなくなりそうだもんなぁ。
bbs.cgiをBBQだけチェックするCプログラムにして、 通れば本体(documentrootの外に設置)を起動しちゃうとかとか。 自鯖のsmtpdは、spamを送りつけてきた発信元IPアドレスを拾ってtcprulesさせているんだけれどもども。。。 tcpserverが載っけられるといいのになぁ。。。 httpd -i は、Apache 1.*のみでしたっけ。
確かに100件オーバーだと通報では対応できる話ではありませんねぇ・・・・ (出来ないこともないですが連日続いたらさすがに持ちません) 暫定対策としてどうすればいいか考えてみたんですけどこんなのはどうでしょうか? これで時間は稼げるとは思うんですが ・tmp6だけサーチエンジンから隠す ・その上でtmp6をtmp7に変更
6を7に書き替える手間 くらいの時間はかせげそうですね(棒読み
>814 今回のウィルスはサーチエンジンを使っているので十分防御効果は期待出来ると 思います。 (サーチエンジン使っても見えなければ爆撃できない)
>>813 プロバイダ毎にまとめられないですかねー。
多分、20プロバイダもないと思うんですー。
2〜3日に1回でもいいと思いますしー。
そーゆー情報の整理してくれるボランティアさんも要りますかねー。
>・その上でtmp6をtmp7に変更
前にbbsmenuを変更した途端に爆撃再開したって事がありましたー。
人が目で見て追えるものは、いくらでも自動化可能かとー。
あと、ウイルス探索して通報してくれるボランティアさんとか、
すでにやってくれてますけど、改めているのかなー。
高速型は上で対応考えてくれてるよーですけど、
足の遅い亜種もいろいろ出回ってますしねー。
>816 う〜む、どうしたものか とりあえず作業可能かどうか見てみたいので1時間程度のサンプリングログを 抽出してもらえないでしょうか? >rootさん
十分間くらいの防御効果は期待出来るかもしれないですね(棒読み
荒らし対策の投稿コードすら潜り抜ける荒らしスクリプトがあるぐらいだしなぁ 加害者になったウイルス被害者に法適用した前例ってあったっけ
目に見えない工夫か。 書き込みのシステムで書き込み画面を別ウインドウにして・・・・いやなんでもないです
本サーバーに防御の処理をさせるのは痛いので、やはり前に振り分け専用機が欲しい感じですね
読み込みバーボンの改造でいける気がするけどなあ。 んでhtaccessじゃなくてmod_authz_iplistを使えば完璧。
とりあえず「フェータルバーボン」っていう小難しい名称には反対しておく
>800 mod_cgidsoで呼ぶプログラムでreturn DECLINED;すると後ろにあるモジュールで残りを処理 なんてのは出来ないんですかねぇ? そんなことするならフィルターにした方が早いかなぁ。
モジュール追加できるんなら mod_netnice あたりが DoS には有効だろうと思います.
ただ
>>797 を読むと,できるだけモジュール追加などせずに対処したいということなのかなぁと.
>>826 r->handler や r->filename などを変えて DECLINED するって感じですか.
mod_cgi(|d) が mod_cgidso より後ろに入ってくれないといけないのでその点注意が必要ですが.
>>827 んと、モジュールを追加しないでというか、
メンテナンスコスト低く、かつ有効な手段がいいかなと。
バーボン小改造 + mod_authz_iplist をまず試してみる感じかなと思っているです。
c.2ch不具合報告総合スレ5
http://qb5.2ch.net/test/read.cgi/operate/1138289353/734-737 734 名前:動け動けウゴウゴ2ちゃんねる[sage] 投稿日:2006/03/28(火) 01:41:15 ID:SNDroSCmO
負荷監視所見てきたけど携帯鯖はいつもと同じ
だがメモリーズの8.45が気になるね。
収容板はなんでしたっけ?
735 名前:root▲ ★[sage] 投稿日:2006/03/28(火) 01:45:42 ID:???0
>>734 これも、見ないとなぁ。
たぶん、read.cgi の暴走。
736 名前:root▲ ★[sage] 投稿日:2006/03/28(火) 01:47:56 ID:???0
で、暴走プロセスを見ようと思っても、
%gcore 60655
gcore: read from /proc/60655/mem: Bad address
gcore が FreeBSD/amd64 では正しく動かないというのが、なんとも。
737 名前:root▲ ★[sage] 投稿日:2006/03/28(火) 01:52:32 ID:???0
apache2limits_enable="YES"
apache2limits_args="-e -t 1800"
を入れてみた。< memories
というか、スレ違いか。
あっちに貼っておこう。
>>832 以前,主にメモリ節約の観点から「64-bit カーネル + 32-bit バイナリ」
のような話も出てましたが,gcore の問題もそれで解決したりとか......?
あと,mod_authz_iplist 使うとしたら,今のうちから root 権限なし鯖での
組み込みの手配をしておけば,後でスムーズに事が運ぶとか......?
>>833 > あと,mod_authz_iplist 使うとしたら,今のうちから root 権限なし鯖での
> 組み込みの手配をしておけば,後でスムーズに事が運ぶとか......?
たしかに。
まず、どっかのroot権限ありサーバで試してみます。
>827 ap_hook_handler()の第4引数をAPR_HOOK_FIRSTにするとどうなんだろうとか。 mod_cgiではAPR_HOOK_MIDDLEになっているので、先に呼ばれるはず。 前にmod_cgidsoでDECLINEDできないので、ぷち改造したときにやったことがあるです。
>>835 順序指定するとなるとそんな感じでしょうね.
210.135.99/0/24 の逆引きの件:
p2.2ch.net不具合報告スレ Part10
http://qb5.2ch.net/test/read.cgi/operate/1141521195/368 管理人とブラジルの中の人にメールで状況を報告しました。
で、ブラジルの中の人に 210.135.99.7 を epg.2ch.net に設定してもらいました。
これで本件は作業完了ということで。
「国内のDNSサーバーが攻撃の踏み台に,管理者は対策を」,JPCERT/CC
http://itpro.nikkeibp.co.jp/article/NEWS/20060329/233749/ ようは「どこからでも再帰検索を受け付け可能なDNSキャッシュサーバは、
DoS攻撃の踏み台として悪用されるおそれがあるから、
各DNSキャッシュサーバの管理者は、ちゃんとアクセスコントロールの
設定をしなさい」、という注意喚起。
2ちゃんねるでは、BIG-serverのサーバ・root権限ありサーバともに
すべてdjbdns(dnscache)で、dnscache はデフォルトでは外部からの
再帰検索を一切受け付けない設定なので、踏み台になるリスクは
かなり小さいですが、そんなわけで改めてここでも注意喚起をば。
ちなみに BIND だとデフォルト設定では「どこからでも再帰検索可能」で、
まさにこれに該当するので、注意が必要。
俺はLANのなかしか返さないし全部鯖やってるけど馬鹿はハニーポットで報復攻撃
>>840 うわあ、、、。
http://lists.freebsd.org/pipermail/freebsd-current/2006-March/062078.html > I can only say that as a FreeBSD user and small scale contributor I very very
> very much appreciate all the work you've done. I hope you reconsider. FreeBSD
> needs people like you (well, they also need people like me but not as hard).
「very3つ」の表現を初めて見た。
でも、はげしくどうい。
http://lists.freebsd.org/pipermail/freebsd-current/2006-March/062102.html > see above, I am in a bad mood, I don't know when I will return, wish you can
> work better without me, I beg pardon if some mistakes I made and some
> words I said here brought inconvince to you and all other people.
うーん、、、。
質問・雑談スレ219@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1143292533/613 in /usr/src/lib/libc/stdtime/localtime.c:
#define _MUTEX_LOCK(x) if (__isthreaded) _pthread_mutex_lock(x)
#define _MUTEX_UNLOCK(x) if (__isthreaded) _pthread_mutex_unlock(x)
time_t
mktime(tmp)
struct tm * const tmp;
{
time_t mktime_return_value;
_MUTEX_LOCK(&lcl_mutex);
tzset_basic();
mktime_return_value = time1(tmp, localsub, 0L);
_MUTEX_UNLOCK(&lcl_mutex);
return(mktime_return_value);
}
そうか、マルチスレッドセーフにする時って、
きちんとそういうこと(mutex lock/unlock)をしないといけないのね。
…いや、単にそうなんだなぁと思っただけで。
まあ、tzset_basic()はタイムゾーンを設定するために、 staticな配列にstrcpy()したりしますしね。 あと、tzset_basic()とtime1()の呼び出しの間に他のスレッドがtzset_basic()を呼び出して、 別のタイムゾーンを設定すると、mktime()の結果が変なものになっちゃいますので。
mktime() が本来のレンジ外の値も適切に処理してくれるおかげで 日付や時刻の加減算が容易に行えるんですよね.例えば 「何日後の日付」「何日前の日付」ってのを自力で計算するとなると 月や年への繰り上がり・繰り下がりなんかも考慮しなければならず 煩雑な処理になりますが,mktime() を使えば日の部分だけ 加減算して渡せばあとはよきに取り計らってくれますから.
>>849 物は示されていたんですね、スマソ
2ちゃんねる画像掲示板(g2)はじめますた2
http://qb5.2ch.net/test/read.cgi/operate/1141282634/153- 153 名前: ◆MUMUMUhnYI [sage] 投稿日:2006/03/31(金) 01:28:25 ID:s7r8W/F60 ?#
これかしら。
Polywell NetDisk 1004SA
http://shop.polywell.com/poly/product_info.php?products_id=290 . Hardware RAID 0, 1, and 5
. 4 Hot-plug 250GB SATA disks
154 名前:マァヴ ◆jxAYUMI09s [] 投稿日:2006/03/31(金) 04:23:32 ID:NxiKCHBK0 ?#
>153
ぴんぽーん(^_^;)正解です!
さすが。
155 名前: ◆MUMUMUhnYI [sage] 投稿日:2006/03/31(金) 04:33:22 ID:s7r8W/F60 ?#
>>154 うふふ。当たった。
movie.2ch.netのCNAMEを2ch.n1e.jpに設定して欲しいですー。
DNS情報の登録を確認しました。
movie.2ch.net. 1D IN CNAME 2ch.n1e.jp.
>>851 done
今度は何を天麩羅にするのでしょう。。。
と予想。
>>854 >>797 遅レスですが、本気でやるならアクティブファイヤウォールでは無いでしょうか?
正式にはNetwork IDS+Firewallの組み合わせで動的に防御します。
用件次第ではありますが、サービス鯖が正常な動作をしている間に遮断できれば良いのであれば
Network IDSとか持ち出さなくても、10min毎にAccessLogチェックしてn回以上投げて来るIPをFWで
遮断するのはいかがでしょうか?(1weekとか1month等の一定期間で解除)
もう少し許容できるなら、検知周期を30min毎や1h毎で。
一瞬でサービス鯖が落とされるような環境では使用できませんが・・・。
いずれにしてもFW鯖を建てた方がよろしいかと思います。
レイヤが上がれば上がるほど防御能力が落ちてしまいますし、遮断役が過負荷で倒れると悲しいので。
切り札は、サービス鯖IPFW2/ipfという事で。
もし、FWに廻せるマシンが余っていれば・・・ですが。
>>861 それ以前に現状の2chのシステム構成上、その方法が取れるのはlive22系だけかも
is.2ch.netのAレコードを210.135.99.39に変更してほしいですー。
>>863 もしかして雪だるまスレのアドレス知らないとか
>>864 ここに書いておけば、そのうち伝わるかと。
210.135.99.0/24ということは、新しいほうの村かしら。
>>863 done
DNS情報の登録を確認しました。
movie.2ch.net. 1D IN CNAME 2ch.n1e.jp.
あっ
なんか時空をストリップしていた
>>868 は無かったことにしてちょ
>>863 done
is.2ch.netのAレコードを210.135.99.39に変更しました。
DNSレコードが正しく変更されていることを
確認しました。
;; ANSWER SECTION:
is.2ch.net. 5M IN A 210.135.99.39
[FreeBSD-Announce] Fundraising for FreeBSD security development
http://lists.freebsd.org/pipermail/freebsd-announce/2006-March/001056.html ちと日付経ってますが、
cperciva さんの名前を CVS log に見て「おー」と思い、
Portsnap を「便利だねこれ」と思っておられる各位は、ぜひに。
# やっぱ、すぱしーばさんってよむのかな。
## davidxu さん、何か CVS commit しているらしい。
>876 slashdot.jpのBSDローカルセクションで紹介されてから、すぐに予定額に達したよ。 pair.comが太っ腹だった。
>>879 > pair.comが太っ腹だった。
http://www.pair.com/services/dedicated/ なるほど。どれもこれも(りゃ。
# maido3.com もここはひとつ(りゃ。
>880
あーごめん。commiterの人から聞いた別の寄付話と混じっているかも。
今
http://people.freebsd.org/ ~cperciva/funding.html
見たら、まだ達していなかった。
>>882 >
http://people.freebsd.org/ ~cperciva/funding.html
>
> Woah! Slow down!
> Assuming some pledged donations arrive, I will have reached my funding target.
> If you haven't already contacted me about sending a donation,
> please don't send me any more money.
> Instead, please consider donating to the FreeBSD Foundation,
> or buying something from the FreeBSD Developers Want List for a FreeBSD developer.
ええ人や。
OpenSSH は、MF が 1000USD の寄付を決定した様で (/.JP)
しかし、これだけで15000ドル集まるってことは、
Theoは文句言うだけでいかに努力してないかが分かるな(
>>848 からみで)
ってそんな雑談するスレじゃないですね。すみません。
6.1RC1ようやくですか ※バージョンアップ作業は今のところ土日の早朝が最適だと思います。
終わりました。 cvsup.peko.2ch.net 無茶しない範囲で、お使いいただければと。
今後の予定: ・今日やりたいけど、make update までにしておく予定 ・まずは cvsup.peko.2ch.net そのものを更新 ・いろんなパッチがどこまで適用されているか調査 ・live22系、ex14、ex11 あたりでぼちぼちと といったかんじで。
make -j 4 buildworld buildkernel 流し始めた。 本日は、このへんで。
>>889 RELENG_6_1来ましたか。
では、無茶しない範囲で使わせていただきます。
>>890 > ・まずは cvsup.peko.2ch.net そのものを更新
%uname -a
FreeBSD banana273.maido3.com 6.1-PRERELEASE FreeBSD 6.1-PRERELEASE #0: Fri Apr 7 01:06:35 PDT 2006
[email protected] :/var/src/sys/i386/compile/I386_BANANA_61 i386
特に問題なしの模様。
ジンギスカンで、板設定変更がメモリ上しか反映されず、 鯖落ちで消えちゃうのは解決してなかったんだっけ、
6.1 で live22 とかも robust になるといいですね. Apache の方も遠からず 2.2.1 が出そうな感じですが.
>>896 > whois -h whois.internic.net xrea.com
Whois Server Version 1.3
Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to
http://www.internic.net for detailed information.
Domain Name: XREA.COM
Registrar: ENOM, INC.
Whois Server: whois.enom.com
Referral URL:
http://www.enom.com Name Server: NS1.VALUE-DOMAIN.COM
Name Server: NS2.VALUE-DOMAIN.COM
Name Server: NS3.VALUE-DOMAIN.COM
Status: REGISTRAR-LOCK
Status: REGISTRAR-HOLD
Updated Date: 07-apr-2006
Creation Date: 24-jul-2001
Expiration Date: 24-jul-2009
ううむ。
%dig -t ns xrea.com ; <<>> DiG 9.3.2 <<>> -t ns xrea.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 27575 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;xrea.com. IN NS ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sat Apr 8 07:19:38 2006 ;; MSG SIZE rcvd: 26 うむむむ。DNSあぼーんしてますね。 .com のゾーンからデータが消えています。< xrea
>>895 2.2.1 ですか。
いろんなパッチが RELENG_6_1 にアプライされているかとか、チェック中。
概ね入っている様子。
で、
>>897-898 の原因ですが、、、。
> Status: REGISTRAR-LOCK
> Status: REGISTRAR-HOLD
なので、VeriSign(レジストリ)側ではなくレジストラ側の都合で
(例えばENUM, INC.の顧客が金を払わなかった等)、あぼーんになったみたいですね。
VeriSign … レジストリ、.com の DNSに実際に登録する人
↑
ENOM, INC. … レジストラ、.com の DNS に登録を依頼する人
今回ここが「xrea.com の登録を切ってくれ」と VeriSign に言った
↑
VALUE-DOMAIN … リセラ、ENUM, INC. のドメイン名を再販する人
↑
XREA.COM … 顧客
これどう落とし前着けるのかなぁ
まさか夜(ry
※イオナズンの指令原理の解析が進んでちょっとやばい事態になる可能性が。。。
【春雷】 イオナズン対策スレッド
http://qb5.2ch.net/test/read.cgi/sec2chd/1144136159/140- >>904 Running
Updating collection src-all/cvs
Edit src/sys/conf/newvers.sh
Add delta 1.69.2.11 2006.04.08.14.42.23 scottl
Shutting down connection to server
Finished successfully
newvers.sh だけみたいですね。
6.1R のテストは、ex11 ではじめるかな。 来週前半あたりに、バージョンアップ作業の予定。
>>907 やるときは狼にスレ立てて事前報告してね
>>885 こんなのみつけた。
japan.linux.com | インタビュー:OpenBSDのTheo de Raadtに聞く
http://japan.linux.com/desktop/06/03/31/0137249.shtml 正論を喋っているわけですが、
これだと、広範に好かれる方向ではないですね、、、。
などと、雑談をしてみたり。
やいrootやるならもっと遅い時間にしろヽ(`Д´)ノ なんで狼が一番人多い時間にやるんだよヽ(`Д´)ノウワァァン!!
>>916 あと3分。
>>915 ごめんなさい。
ちと、眠気に勝てそうもないので。
作業ログはこのへんに。
サーバダウン(鯖落ち)情報 part99
http://qb5.2ch.net/test/read.cgi/operate/1144376259/917-965 ・/md のバックアップを忘れずに
・/md の mount を /etc/fstab でやっているとはまる
に加えて、
・Apache 2.2 のローカルパッチを適用するのを忘れずに
・make delete-old-libs すると libc も古いのが消えるので注意(offlaw.cgi とか)
・/etc/libmap.conf を設定すること (libpthread → libthr)
/mdに昨日との差分dat /dev/sdaから昨日までのdat ととったらかえって遅くなるか。 datダウソが面倒になるだけか。
ex鯖とtmp鯖は実験鯖じゃなかったの? 前者は板は少ないけど人多め 後者は板多いけど前者に比べると人少なめ だし鯖に突っ込まれてる板もアレなものばかりだし
突然のご連絡失礼致します。
株式会社jig.jpの菊池と申します。
弊社は携帯電話からPCサイトを閲覧するサービス「jigブラウザ」及び「jigブラウザWEB」を
運営しております。
jigブラウザ:
http://br.jig.jp/ jigブラウザWEB:
http://bw.jig.jp/ 現在、公開プロキシ規制により弊社サービスから2ちゃんねる掲示板への書き込みができなくなっております。
お客様より2ちゃんねる掲示板への書き込みに対応して欲しいという要望が多数きておりますので
規制の解除方法を伺いたくご連絡させていただきました。
このスレッドの464の方法により弊社同様のサービスで書き込みが可能になったようですが、弊社も同じような対応
をすることにより書き込みを可能にしていただくことはできますでしょうか。
大変お手数ではございますが、ご返答宜しくお願い致します。
>>924 > このスレッドの464の方法により弊社同様のサービスで書き込みが
> 可能になったようですが、弊社も同じような対応
> をすることにより書き込みを可能にしていただくことはできますでしょうか。
>>723 にも書いたように、可能と考えています。
>>464 の条件を満たしていただければ、私としては問題ありません。
別のところで聞かれたので、補足しておこうと。
雪だるま作戦のスレを待ち続けるスレ Part6
http://aa5.2ch.net/test/read.cgi/nanmin/1144142021/303-304 ということで、2ちゃんねるで動く CGI で正しい情報が入手できるのであれば、
携帯側情報の受け渡しは、User-Agent: ヘッダ経由でなくても OK です。
株式会社jig.jpの菊池です。早速のご返答ありがとうございます。 464の対応すすめて参ります。 対応後、技術情報を公開致します。 補足の件も了解致しました。 分からない部分などご質問させていただくことがあると思いますので、宜しくお願い致します。
UAで行くならこんな感じ? Mozilla/4.0 (jig browser 0.0.0; ip210.188.205.91; ser0123456789ABCDE)
間違えた。こっちか。 Mozilla/4.0 (jig browser 0.0.0; ip210.153.84.0 ser0123456789ABCDE)
あ、opera mini ver2.0出てたんだ。
端末を特定可能であればIPは必要無いんじゃないか?
サーバダウン(鯖落ち)情報 part99
http://qb5.2ch.net/test/read.cgi/operate/1144376259/974 やはり、Apacheへのパッチは必要と。
974 名前:動け動けウゴウゴ2ちゃんねる[sage] 投稿日:2006/04/12(水) 21:49:30 ID:2Dg4QT0W0
>>973 ここに書くのも何ですが、
http://qb5.2ch.net/test/read.cgi/operate/1140540754/458 のとおり、6.0ではlibpthreadでもlibthrでも駄目で、libthrはlibpthreadよりもさらに駄目でした。
6.1ではlibthrに変更が入り、libpthreadと同じ程度駄目までにはなりました。
でもやっぱり駄目であることには変わらないので、どちらを使おうともパッチは必要です。
jig.jp さんとの件をすすめることについて、管理人に報告&連絡しました。 > はいはい。了解ですー。>jig とのこと。 というわけで技術情報の準備ができましたら、よろしくお願いいたします。
>>939 管理人様への報告・連絡ありがとうございます。
技術情報の準備ができ次第公開いたします。
宜しくお願いいたします。
まだ実現してないのに調子に乗ると白紙になるぞ 実現してからにしな
Apr 14 04:47:01 <0.6> tiger2522 kernel: pid 15433 (httpd), uid 2001: exited on signal 10 Apr 14 04:47:05 <0.6> tiger2522 kernel: pid 15452 (httpd), uid 2001: exited on signal 10 Apr 14 04:47:10 <0.6> tiger2522 kernel: pid 15477 (httpd), uid 2001: exited on signal 10 2006/04/14 20:40:01 LA= 8:40PM up 7 days, 8:31, 0 users, load averages: 2.14, 2.04, 1.51 2006/04/14 20:50:01 LA= 8:50PM up 7 days, 8:41, 0 users, load averages: 44.46, 79.74, 42.55 2006/04/14 21:00:01 LA= 9:00PM up 7 days, 8:51, 0 users, load averages: 2.58, 15.59, 24.74 2006/04/14 21:10:01 LA= 9:10PM up 7 days, 9:01, 0 users, load averages: 0.84, 3.04, 12.88 負荷の急上昇とともに、httpd が signal 10でのダウン(ともに前からある症状)。 6.1R にすれば、直るのかどうなのか。
Fri Apr 14 20:46:00 JST 2006 "livecx" is loaded. Its subject buffer is clean. user CPU time = 0:49:32.163, system CPU time = 1:13:27.557 elapsed time = 176:34:57.472, CPU load = 1.16% total worker threads = 1, idle worker threads = 0 minor page faults = 17019, major page faults = 1078187, swaps = 0 block inputs = 9334, block outputs = 3728 messages sent = 3743852, messages received = 3743852 signals = 0, vol ctx switches = 18035298, invol ctx switches = 1250974 Fri Apr 14 20:47:00 JST 2006 書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります. Fri Apr 14 20:48:00 JST 2006 "livecx" is loaded. Its subject buffer is clean. user CPU time = 0:49:35.075, system CPU time = 1:13:32.107 elapsed time = 176:36:58.021, CPU load = 1.16% total worker threads = 1, idle worker threads = 0 minor page faults = 17019, major page faults = 1078745, swaps = 0 block inputs = 9334, block outputs = 3731 messages sent = 3746332, messages received = 3746332 signals = 0, vol ctx switches = 18046569, invol ctx switches = 1256638 Fri Apr 14 20:49:00 JST 2006 書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります. Fri Apr 14 20:50:00 JST 2006 書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります. Fri Apr 14 20:51:00 JST 2006 "livecx" is loaded. Its subject buffer is clean. user CPU time = 0:49:42.222, system CPU time = 1:13:41.488 elapsed time = 176:39:57.569, CPU load = 1.16% total worker threads = 1, idle worker threads = 0 minor page faults = 17019, major page faults = 1079707, swaps = 0 block inputs = 9335, block outputs = 3734 messages sent = 3750715, messages received = 3750715 signals = 0, vol ctx switches = 18068414, invol ctx switches = 1270275
あと、今でもできることとして、 ・mod_cache うまく動くようにする - squid と通信させて、動きをよく見てみる ・フロントが落ちたら matd の仲間から外す仕掛け作り 徐々にすすめることとして、 ・フロント・バックともFreeBSD 6.1Rへの更新 ・フロントエンドApache 2.2系への更新 さらに、 ・game10 hobby7 news19 BBQ の電源・ロケーション移動 ・その後、フロント #4 = tiger503 #5 = tiger507 と バック #2 = cobra2247 の稼動 あと、構築系以外だと、 ・削除系呪文の本格対応
一つ忘れていた。 ・過去ログ rsync の改良 - これはフロント #4 or #5 またはバック #2 がきたら、それらの1台を使用か。
Just idea ですが、 read.cgi と offlaw.cgi を動かすフロントを1台とか2台にしてしまえば、 過去ログの同期(rsync)するサーバも、それだけで済むのかな。
あるいは、一度負けた NFS を使うか。 どう実現するにせよ、スケーラブルにしたいところかなと。 いずれにせよ「過去ログ倉庫に保管されています」の判定部分なんですよね。 public_html じゃないところを読んでいるところ。 専用ブラウザだと、302 だったら offlaw.cgi みたいな処理なので、 それなりになんとかなるわけですが。 … 本筋は read.cgi の改造かなぁ、やっぱ。
ずいぶん昔にも書いたような覚えがありますが read.cgiのデータ処理部だけなら、全然重い処理じゃないですよ。 ディスクI/Oと圧縮が重いだけで。 .datの必要部分をHTMLにするだけなら、 毎秒500-1000件程度なら処理できると思います。 ただ、もしLAN上の別マシンを使うなら やはりHTTP経由よりNFSの方が数段軽いでしょう。 カーネル内部で完了するというのは大きいです。
>>954 第一段落
私も同じ感覚を持っています。
dso 化した後は、少なくとも tiger サーバでは、
read.cgi が高負担になった記憶はないです。
ということは、read.cgi と offlaw.cgi の処理は、専用フロントにやらせると
よさげなのかな。
で、第二段落ですが、確かにそう思うわけですが、
なにぶん一度痛い目に遭っているので(5.4Rの頃ですが)、
少なくともシビアな I/O のところ(dat直読みするところとか)には、
ちと使いずらいところがありますね。
例のディレイ(書いたdatをすぐにNFS経由で読んだ時に起きたもの)が
きちんと解決できるような気がしないので、ライブなdatには、
ちと使いにくいかんじ。
過去ログのところには、うまくすれば使えるかもですが。
6.1のNFSについて、個人的に、tools/regression/fsx を使用してテストしたりしてますが、
NFSv3 + UDP + リモートマウント
であるならば、今のところ問題ないように思えます。。。
まあ、あくまでfsxでテストした結果なので、実践投入では違うかも知れませんが。
TCPを使用した場合は、理由はわかりませんが、たまにエラーが発生してました。これはKrisの意見
http://lists.freebsd.org/pipermail/freebsd-stable/2006-March/023707.html とも一致します。
ローカルマウント(127.0.0.1に対してNFS経由でマウント)した場合は、
syncのタイミングでエラーになることがありますね。
これについては、まあ、運用でそういうことはあんまりしないかなぁと思って、
個人的には無視していますけど。
NFS が正常に動くという前提なら,NFS 使うのが一番簡単かつスマートですね. 以前ボロボロだった時は,ファイル更新時の rename() とタイミングがかち合うと その際に起こる ESTALE でカーネルごとコケてしまうということだったと思いますが, 過去ログだけならそういうことは起こりにくいでしょうし. あと,過去ログが HDD 食い潰すって問題も併せて対応するとなると, 過去ログを memories に転送してそっちのを NFS mount するとか......
rootたん乙 俺は絶対rootたんの頭であぼんされているな。 それにしてもjigの人来ない。 もしかしたら2ch用のゲートウェイ作っているのかな。 // ATフィールドでイオナズン防げたらなぁ。
>>957 > 過去ログを memories に転送してそっちのを NFS mount するとか......
そんなことを考え始めていたりします。
で、前におかしくなったのは、ESTALE 問題もさることながら、
mount している方が一斉にデッドロックする問題ですね。
ps で見ると一斉に D の状態になって、kill -9 でももちろん死なないし、
どうしようもなくなると。
>>958 イオナズンの解析をした人かしら。
だとしたら特に、あぼーんはしてないと思うです。
bbs.cgi 的には、該当ルーチンを組み入れれば対応できるように組んであるので、
私としては技術情報が出たら、あとはたんたんと組むだけと。
で、memories は 5.3R なので、そのへんが心配だったりします。 6.1R が安定なら、バージョンアップもありかなとは思っていますが、 なにぶん慎重にやらないといけないサーバなので、 できれば(いつになるか…)、現地でやりたいかなと。
また破綻か、、、。 6.1-RC 投入するか、あるいは 6.1R が出るまで我慢するか。
>962 ここまで虫踏みまくって調子よくないようでしたら6.1-RC早期投入した方がいいと 思います。
umtx って mutex か何かでしょうか......
まぁ race condition を起こりにくくするということなら mod_cache というのもありますが(
>>949 ).
<IfModule mpm_worker_module> StartServers 96 Serverlimit 128 MaxClients 4096 MinSpareThreads 256 MaxSpareThreads 3072 ThreadsPerChild 32 MaxRequestsPerChild 32000000 ThreadLimit 32 MaxMemFree 64000 </IfModule> を、 <IfModule mpm_worker_module> StartServers 384 Serverlimit 512 MaxClients 4096 MinSpareThreads 256 MaxSpareThreads 3072 ThreadsPerChild 8 MaxRequestsPerChild 32000000 ThreadLimit 8 MaxMemFree 64000 </IfModule> に変更。 1プロセスあたりのスレッド数を、32から8に減少。@ live22
httpd が突如、暴走状態になりました。 CPUのidle timeがなくなったのと期を同じくしています。 というか、暴走になったからidle timeがなくなったのかなと。
で、1プロセスあたりのスレッド数を下げたのは、なんというか、勘ってやつです。 虫を踏むリスクが、減るんじゃないかなと。
MaxRequestsPerChild 32000000 も、1/8 にするかな。
× 1/8 ○ 1/4 # MaxRequestsPerChild 32000000 MaxRequestsPerChild 8000000 にした。次回の起動時に有効に。
あとは、マルチスレッドなApacheがforkするのは、いくない気がするので、 最初から最大プロセスにしておくか。< live22
>>965-969 乙です.スレッド数減は有効かもですね.
>>970 ん〜それは......マルチスレッド MPM でも fork() するのは
シングルスレッドな親プロセスなんで......
>>971 なるほど、、、。
とりあえず、「常に最大プロセス数で待つ」設定にしてみた。
どうせ、それで動いても問題ないはずなので。
なるほど、プロセスが多いとだめみたい。 再度httpd落とし中。
<IfModule mpm_worker_module> StartServers 384 Serverlimit 384 MaxClients 3072 MinSpareThreads 3072 MaxSpareThreads 3072 ThreadsPerChild 8 MaxRequestsPerChild 8000000 ThreadLimit 8 MaxMemFree 64000 </IfModule> にした。 今はちゃんと動いているっぽい。
破綻はしないけど、やはり挙動不審になる模様。 さらにプロセス数を減少。httpd リスタート中。
またですね。 LA=700 超え。 last pid: 16772; load averages: 817.21, 292.39, 154.68 up 8+10:43:39 06:52:22 2625 processes:7 starting, 1744 running, 874 sleeping CPU states: 58.9% user, 0.0% nice, 25.5% system, 15.6% interrupt, 0.0% idle Mem: 472M Active, 1716M Inact, 357M Wired, 16M Cache, 112M Buf, 954M Free Swap: 4096M Total, 4096M Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 12220 root 128 0 8872K 8136K CPU0 0 0:56 3.27% top 16252 ch2live22 130 0 10448K 6876K RUN 0 0:01 0.54% httpd 3633 ch2live22 131 0 2676K 1436K RUN 1 2:44 0.54% bbsd 16223 ch2live22 130 0 9556K 6464K RUN 3 0:01 0.44% httpd 16393 ch2live22 130 0 9552K 6376K RUN 1 0:01 0.29% httpd 16384 ch2live22 130 0 9896K 6540K select 2 0:01 0.29% httpd 16328 ch2live22 130 0 9876K 6700K RUN 3 0:01 0.29% httpd 16168 ch2live22 130 0 9836K 6676K select 2 0:02 0.29% httpd 16204 ch2live22 130 0 9852K 6552K RUN 3 0:01 0.29% httpd 16386 ch2live22 131 0 9788K 6148K RUN 0 0:01 0.25% httpd 16261 ch2live22 130 0 9092K 6068K ucond 1 0:01 0.25% httpd 16767 ch2live22 128 0 2856K 2224K RUN 3 0:00 0.22% perl5.8.7 16384 ch2live22 130 0 9896K 6540K RUN 0 0:01 0.20% httpd 16379 ch2live22 130 0 10588K 7296K RUN 0 0:01 0.20% httpd 16352 ch2live22 131 0 9072K 6052K select 0 0:01 0.20% httpd 16352 ch2live22 131 0 9072K 6052K RUN 2 0:01 0.20% httpd 16358 ch2live22 128 0 9564K 6500K ucond 3 0:01 0.20% httpd 16261 ch2live22 130 0 9092K 6068K ucond 1 0:01 0.20% httpd 16264 ch2live22 130 0 9764K 6592K RUN 3 0:01 0.20% httpd 16208 ch2live22 130 0 9872K 6500K RUN 3 0:01 0.20% httpd 16180 ch2live22 130 0 10488K 7032K RUN 3 0:01 0.20% httpd 16270 ch2live22 130 0 9632K 6588K ucond 3 0:01 0.20% httpd 16426 ch2live22 130 0 8972K 5944K select 1 0:01 0.15% httpd 16397 ch2live22 129 0 9260K 6220K RUN 0 0:01 0.15% httpd 16367 ch2live22 129 0 9188K 6156K RUN 1 0:01 0.15% httpd 16284 ch2live22 131 0 9140K 6120K RUN 3 0:01 0.15% httpd
いったん httpd を落とし、 matd を落として入ってこないようにして、 httpd をスタートして、matd を再開。
<IfModule mpm_worker_module> StartServers 256 Serverlimit 256 MaxClients 2048 MinSpareThreads 2048 MaxSpareThreads 2048 ThreadsPerChild 8 MaxRequestsPerChild 8000000 ThreadLimit 8 MaxMemFree 64000 </IfModule> さらにプロセス数を減少。@ live22
<IfModule mpm_worker_module> StartServers 64 Serverlimit 64 MaxClients 2048 MinSpareThreads 2048 MaxSpareThreads 2048 ThreadsPerChild 32 MaxRequestsPerChild 32000000 ThreadLimit 32 MaxMemFree 64000 </IfModule> に変更。
>>980 の方が明らかに楽になり、CPU idle time も増えますね。
ううむ。
実験的に、 <IfModule mpm_worker_module> StartServers 32 Serverlimit 32 MaxClients 2048 MinSpareThreads 2048 MaxSpareThreads 2048 ThreadsPerChild 64 MaxRequestsPerChild 32000000 ThreadLimit 64 MaxMemFree 64000 </IfModule> にした。
プロセスが少なくてスレッド数が多いほうが、システムは楽みたいですね。
ただ、32と64では有意な差はあまりないっぽい気もします。 挙動不審なら、32に戻す方向で。
そういえばこんな話もあったような.むしろ1プロセスだけにしてしまった方がいい!? * 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.
>>985 そういえば、ありましたね。
こんどいやなことがおきたら、思い切ってやってみるかも。
…といいながら、今実験してみるかな。 ちょっと、やってみます。
<IfModule mpm_worker_module> StartServers 1 Serverlimit 1 MaxClients 2048 MinSpareThreads 2048 MaxSpareThreads 2048 ThreadLimit 2048 ThreadsPerChild 2048 MaxRequestsPerChild 32000000 MaxMemFree 64000 </IfModule> にしたら、configtest すると、 Performing sanity check on apache22 configuration: WARNING: ThreadsPerChild of 2048 exceeds ThreadLimit value of 64 threads, lowering ThreadsPerChild to 64. To increase, please see the ThreadLimit directive. WARNING: MaxClients of 2048 would require 32 servers, and would exceed the ServerLimit value of 1. Automatically lowering MaxClients to 64. To increase, please see the ServerLimit directive. Syntax OK となるようです。
あと、 ・やはり、過去ログの rsync は少なからず負荷になっているっぽい かな。 過去ログの rsync をするフロントは1台にするのが、よさげみたい。
さて、Part20も終盤に差し掛かったようです。 ・2ちゃんねるラック at XOロケーションの電源問題 ・アクセスがヘビーだと虫を踏んでしまう問題 ・携帯フルブラウザから書き込む場合の諸条件 (これは2ちゃんねるの規制のコンセプトにもからむ) など、今回のスレは話題抱負だったように思います。 もうちょっとしたら、次スレ立てます。
>>988 worker.c の処理を見ると
・ MaxClients の前に ThreadsPerChild を設定
・ ThreadsPerChild の前に ThreadLimit を設定
じゃないとダメっぽいです.
>>991 つまり、ThreadLimit, ThreadsPerChild, MaxClients の順でやれと。
やってみます。
<IfModule mpm_worker_module> # StartServers 32 # ServerLimit 32 # ThreadLimit 64 # ThreadsPerChild 64 StartServers 2 ServerLimit 2 ThreadLimit 1024 ThreadsPerChild 1024 MaxClients 2048 MinSpareThreads 2048 MaxSpareThreads 2048 MaxRequestsPerChild 32000000 MaxMemFree 64000 </IfModule> で、うまくいきました。 1 と 2048 だと、Apache がちゃんと増えないみたい。
このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
read.cgi ver 07.7.21 2024/12/02 Walang Kapalit ★ | Donguri System Team 5ちゃんねる
lud20241203062342ncaこのスレへの固定リンク: http://5chb.net/r/operate/1140540754/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「2ch特化型サーバ・ロケーション構築作戦 Part20->画像>1枚 」 を見た人も見ています:・2ch特化型サーバ・ロケーション構築作戦 Part47 ・2ch特化型サーバ・ロケーション構築作戦 Part53 ・2ch特化型サーバ・ロケーション構築作戦 Part28 ・2ch特化型サーバ・ロケーション構築作戦 Part24 ・2ch特化型サーバ・ロケーション構築作戦 Part58 ・2ch特化型サーバ・ロケーション構築作戦 Part25 ・2ch特化型サーバ・ロケーション構築作戦 Part27 ・2ch特化型サーバ・ロケーション構築作戦 Part32 ・2ch特化型サーバ・ロケーション構築作戦 Part38 ・【Project peko】2ch特化型サーバ構築作戦 Part12 ・【ピリヨ】人だけを殺す兵器。無人機から放たれる暗殺特化型ミサイル「ニンジャ・ブレード」 ・【ロイター】サウジのムハンマド皇太子、韓国に防空システム構築支援を要請 電話で[9/19] ・【ゲーム】switch『サ・ガ コレクション』12月15日に発売! ゲームボーイ版3作品を1つに集約 [ひかり★] ・【フィギュアスケート】浅田真央の最高傑作「鐘」をしのぐか?メドベージェワの新プログラム ・【バイオフィルム】 台所のぬめりに集まった細菌は「電気信号」でコミュニケーションを取り、コロニーを運営している カリフォルニア大 [無断転載禁止] ・【海外ドラマ】マイク・ロス役のパトリック・J・アダムス、『SUITS/スーツ』ファイナルシーズンでカムバック ・ソロパートの割り振り方が能力や個性に沿っててファンの誰しもが納得し楽しめる現役ハロプログループ(モアジツビオ)ってどこですか?? ・首都圏情報ネタドリ!「“おじさん構文”コロナ禍で見つめ直すコミュニケーション」 ・マイニング・パラダイス・ドネーション ・【速報】 ダンボール戦機、DMMのエロパワーを借りて復活! [無断転載禁止]©2ch.net ・【サッカー】母看病のC・ロナウドはポルトガルに残留。新型コロナの影響考えユベントス合流断念 ・【特番】「銀河英雄伝説DNT」Eテレで特番、ハライチ岩井・ローランドが名セリフを解説 ・秋元康・小室哲哉・つんく♂・指原莉乃が代々木アニメーション学院のプロデューサーに就任! [無断転載禁止] ・【サッカー】カレン・ロバート、イングランド7部へ移籍…冬のステップアップを目指す ・金曜ロードショー「3週連続バック・トゥ・ザ・フューチャー祭りが大成功した!次は…」 ・【速報】シャンティ:ハーフ・ジーニー ヒーロー アルティメットエディション【Switch/PS4】 [無断転載禁止] ・トヨタ新型スープラがベールを脱ぐ。3L直6ターボエンジン搭載で700万円ワロタァ! [無断転載禁止]©2ch.net ・【朗報】明日夜のAKB48SHOWは松井珠理奈のいないセンチメンタルトレインのフルサイズ・パーフェクトバージョンを披露!!! ・【サッカー】C・ロナ、内戦で苦しむシリアの子供たちへ“寛大な寄付”「希望を失うな」 [無断転載禁止] ・★映画実況12755 ロスト・バケーション #2 ・★映画実況12759 ロスト・バケーション #6 ・【HDD】最適なアロケーションユニットサイズ ・★映画実況12761 ロスト・バケーション #8 ・【ボスニア・ヘルツェゴビナ】動画:内戦で破壊のロープウエー、26年ぶりに復活 サラエボ ・★映画実況12757 ロスト・バケーション #4 ・■ アンジュ・J=J・アプガ ■ BSスカパー!『FULL CHORUS 〜音楽は、フルコーラス〜 in 日本武道館』 ■ 20:00〜22:00 ■ [無断転載禁止] ・【鹿児島】小型ロケット「イプシロン」打ち上げで「夜光雲」 オーロラのような輝き ・【悲報】Switch版のマインクラフト消化率20%のハイパー爆死 ・【PVP】Elementalグループ84【フロントライン】 [無断転載禁止]©3ch.net [無断転載禁止] ・コミュニケーションが激苦手なアスペルガー症候群のサラリーマン、完全リモートワーク化で成果を出しまくる ・Googleの「ロケーション履歴」ヤバい 自分が何時どこに行ったか完璧に監視されてる。 集団ストーカーの正体はこれだったんだ ・百合レズAVの3戦目あたりにあるローションのステージって要るか? ・スタッフのコミュニケーション不足でこぶし内に緊張が走る!「メイン曲制度を知らずに音源をみんなで聴いて」「あれ?あやぱんばっか?」 ・ロストバケーション見た人いる? [無断転載禁止] ・グラス基地「ウインヒストリオンはディープインパクトより上」「トゥザフロンティアは駄馬」 ・【Ver6.0】Switchのアップロード速度が8Mに固定の制限される!有料化でラグが増えたと報告が… ・【訃報】弘田三枝子さん死去 73歳 「ヴァケーション」「人形の家」などヒット サザンのアルバム綺麗に「MICO」 [ばーど★] ・無職一人暮らしってコミュニケーション不足でつらいんだけど、アドバイス頂戴 ・【本日はエイプリルフール】NGT48 は株式会社Floraになり運営会社を独立しました!皆様と信頼関係を構築します!! ・「GIANT」と言えばエスケープだが、「グラビエ」ってどうなの? クロスバイクとMTBのハーフみたいで良さそうだが。 ・グラサン中島「オマケchはつばきが1番面白い、他グループとは比較にならない」岸本ゆめの「あの動画を絶賛するの中島さんだけですよ」 ・仮想通貨VeChain:NTTドコモの5Gオープンパートナープログラムへの参加を発表 ・【禿の思い出作りオンライン】野獣先輩パープルヘイズ説【PS02から逃げろ】 ・【レジ袋有料化強行】ファミマ・ローャ刀A7月1日からレジ袋全サイズ3円に★5 [Toy Soldiers★] ・【アニメ】サウスパークが今後トランプネタを扱わないと宣言 [無断転載禁止]©2ch.net ・【テニス】≪全仏オープン女子組み合わせ≫ 大坂なおみ 四大大会初シード、初戦は92位のS・ケニン ・【速報】Nintendo Switch「大戦略パーフェクト4.0」2018年3月22日発売発売決定!!!!! ・【速報】ハリウッド版「攻殻機動隊」銃撃戦の撮影風景を紹介したニュージーランド・ロケの現場訪問ビデオ!! [無断転載禁止] ・【ハリケーン「マイケル」】フロリダ州上陸、メキシコ湾岸原油生産42%減 ・ハイパープロジェクション演劇「ハイキュー!!」21 ・【エロ目線】 フィギュアスケート女子FS・エキシビション ・大型ハリケーン「フローレンス」上陸迫る 米国直撃で被害は2兆2000億円規模 ・【PvP】 Gaiaグループ総合 Part42【フロントライン】 [無断転載禁止] ・■ ハロプロ ■ BSスカパー!『Hello! Project ひなフェス2016』 ■ 16:00〜18:00 ■ [無断転載禁止] ・【大阪】[大阪市北区]グランフロント大阪 マスキングテープイベント[2017/04/14-23] ・【なぎさの成り上がり研修録】スロパチステーション2
16:23:42 up 13 days, 1:31, 7 users, load average: 8.80, 8.40, 8.21
in 2.03133893013 sec
@0.077065944671631@0b7 on 120306