■ 新春特別企画「雪だるま作戦」liveサーバの飛躍なるか!?
巨大Live専用サーバの構築
live系のサーバは台数投入したところで、ほとんど遊んでいる
サーバ + 一台の負荷が高くてアクセスできないサーバという
悲惨な状況になっちゃうので、複数のサーバを巨大な一台と見立てて
なんとかならんものなのかを模索するー。
【Step1】四台のbananaサーバで 現 live8/live16/live18 を全部収容する。
■新春特別企画「雪だるま作戦」liveサーバの飛躍なるか!? Part1
■ このスレッドは過去ログ倉庫に格納されています
1FOX ★
05/01/07 03:19:00ID:???38マァヴ ★
05/01/07 04:17:25ID:??? >33
sambaや連投規制は、frontendが今まで通りにやればいいんでないかな?(^_^;)
ラウンドロビンしてるとはいえ、短期的には同じサーバにアクセスするわけだし。
ほかにどういう規制があるんだろう・・・・
まずそのリストアップしないと(^_^;)
sambaや連投規制は、frontendが今まで通りにやればいいんでないかな?(^_^;)
ラウンドロビンしてるとはいえ、短期的には同じサーバにアクセスするわけだし。
ほかにどういう規制があるんだろう・・・・
まずそのリストアップしないと(^_^;)
39root▲ ★
05/01/07 04:17:35ID:??? >>34
そうですね。読ませるほうは、比較的楽なのですよ。
Apacheのリバースプロキシとか、blackgoatみたいにsquid使うとか、
結構いろいろな手法があります。
問題は、書かせるほうをいかに処理するか。
従来の、bbs.cgiによる簡便なインタフェースをできるだけ残しつつ、
いかに中身をうまく効率化するか、なのかなと。
そうですね。読ませるほうは、比較的楽なのですよ。
Apacheのリバースプロキシとか、blackgoatみたいにsquid使うとか、
結構いろいろな手法があります。
問題は、書かせるほうをいかに処理するか。
従来の、bbs.cgiによる簡便なインタフェースをできるだけ残しつつ、
いかに中身をうまく効率化するか、なのかなと。
40FOX ★
05/01/07 04:22:41ID:??? ラウンドロビン (←弱そうな名前であまり好きでないのだが)
を使うのであれば、
Samba24 は、うまく行くか、
連投規制は、どうなるかな?
スレ立て規制は元々スレ立てやすい設定だから
あんまり気にする事無いか、トカゲの尻尾もあるし
あと・・・ 何あったっけ?
を使うのであれば、
Samba24 は、うまく行くか、
連投規制は、どうなるかな?
スレ立て規制は元々スレ立てやすい設定だから
あんまり気にする事無いか、トカゲの尻尾もあるし
あと・・・ 何あったっけ?
41root▲ ★
05/01/07 04:24:42ID:??? 個人的には、NFS経由での書き込みはあまり使いたくないな、
と思っています。トラブルの元。
読むほうでのNFSの利用は、うまくやればありかもですね。
と思っています。トラブルの元。
読むほうでのNFSの利用は、うまくやればありかもですね。
42root▲ ★
05/01/07 04:26:36ID:??? datは、キャッシングかなと思っているです。
フロントにもdatプールみたいなのを作って、キャッシュできないかなと。
で、どっかで話が出ましたが、SolarisだとCacheFSという仕組みがあって、
このへんが結構うまく動くです。
FreeBSDでは、どうするか。フロント側でもsquidみたいなの使ってみるかなぁ。
フロントにもdatプールみたいなのを作って、キャッシュできないかなと。
で、どっかで話が出ましたが、SolarisだとCacheFSという仕組みがあって、
このへんが結構うまく動くです。
FreeBSDでは、どうするか。フロント側でもsquidみたいなの使ってみるかなぁ。
43マァヴ ★
05/01/07 04:26:37ID:??? http://info.2ch.net/wiki/pukiwiki.php?%BD%F1%A4%AD%B9%FE%A4%E1%A4%CA%A4%A4%BB%FE%A4%CE%C1%E1%B8%AB%C9%BD
アクセス規制・プロキシ−規制・Rock54
BBQなど外部問い合わせ型は問題なし
内部問い合わせ型も、それぞれがテーブルを持っていれば問題なし
(つまり従来通り)
samba24・二重書き込み・連続投稿
フロントエンド単位で規制。
ラウンドロビンしていても、短期的には同じサーバで書き込みチェックを行うので。
(つまり従来どおり)
ブラウザ情報規制
従来通り
スレ立て規制
これは微妙(^_^;)どうやればいいんだ
あるいは別な手法を考える?
バーボンハウスって同じ機能?
アクセス規制・プロキシ−規制・Rock54
BBQなど外部問い合わせ型は問題なし
内部問い合わせ型も、それぞれがテーブルを持っていれば問題なし
(つまり従来通り)
samba24・二重書き込み・連続投稿
フロントエンド単位で規制。
ラウンドロビンしていても、短期的には同じサーバで書き込みチェックを行うので。
(つまり従来どおり)
ブラウザ情報規制
従来通り
スレ立て規制
これは微妙(^_^;)どうやればいいんだ
あるいは別な手法を考える?
バーボンハウスって同じ機能?
44マァヴ ★
05/01/07 04:28:30ID:??? お茶飲み規制・落ち着け規制・とかげの尻尾
仕組みがよーわからん(^_^;)
その他
従来通り
仕組みがよーわからん(^_^;)
その他
従来通り
45FOX ★
05/01/07 04:29:58ID:??? お茶飲み規制・落ち着け規制 <- 現在これらはないはず
とかげの尻尾 <- BBQ のように外部経由です
とかげの尻尾 <- BBQ のように外部経由です
46root▲ ★
05/01/07 04:32:11ID:??? 最初の段階でのイメージとしては、bbs.cgi(フロント)が、バックにあるbbs-back.cgi(仮称)を叩く、
という、きわめて単純なイメージを考えています。
dat書き込み、リモホ記録といった「書き込み系」をbbs-back.cgiがやると。
で、書いたデータを読みたい時(例えばSambaとか)は、
例えば一番どろくさいやり方するなら、単純にNFSのread onlyで
フロントのbbs.cgiがバックのファイルを直読みするかんじかなと。
かしこいやり方するなら、プロセス間通信でやるとか、
あるいはmysqlみたいなのを使うとか、そういうかんじですかね。
(これらは第2段階以降だと思っています)
という、きわめて単純なイメージを考えています。
dat書き込み、リモホ記録といった「書き込み系」をbbs-back.cgiがやると。
で、書いたデータを読みたい時(例えばSambaとか)は、
例えば一番どろくさいやり方するなら、単純にNFSのread onlyで
フロントのbbs.cgiがバックのファイルを直読みするかんじかなと。
かしこいやり方するなら、プロセス間通信でやるとか、
あるいはmysqlみたいなのを使うとか、そういうかんじですかね。
(これらは第2段階以降だと思っています)
48マァヴ ★
05/01/07 04:33:45ID:??? スレ立て規制以外の規制は、同じ機能をほとんどいじらずに使えそうですな(^_^;)
>samba24・二重書き込み・連続投稿
ラウンドロビンでサーバが切り替わるタイミング(DNSのTTL単位かな?)ごとに
新しいフロントエンドサーバに割り当て直しが起こるので
今までより多少甘くなるかも・・・・
>スレたて規制
BBQみたいな仕組みに置き換え?
あるいは廃止?
あるいは全然別の仕組み?
>samba24・二重書き込み・連続投稿
ラウンドロビンでサーバが切り替わるタイミング(DNSのTTL単位かな?)ごとに
新しいフロントエンドサーバに割り当て直しが起こるので
今までより多少甘くなるかも・・・・
>スレたて規制
BBQみたいな仕組みに置き換え?
あるいは廃止?
あるいは全然別の仕組み?
49root▲ ★
05/01/07 04:36:35ID:???50root▲ ★
05/01/07 04:38:54ID:??? なんにせよ、明日以降まずは土地を整地して、
器の構築をやるです。
I/O屋さんに仕立て上げる方向で。
blackgoatみたいにccdを使ってみるか。
器の構築をやるです。
I/O屋さんに仕立て上げる方向で。
blackgoatみたいにccdを使ってみるか。
51マァヴ ★
05/01/07 04:39:30ID:??? >49
つまり「samba24・二重書き込み・連続投稿」は要改良という方向で(^_^;)
どれも(スレたて規制もふくめて)トカゲの尻尾にまとめちゃうっていう手はあるなぁ・・・・
つまり「samba24・二重書き込み・連続投稿」は要改良という方向で(^_^;)
どれも(スレたて規制もふくめて)トカゲの尻尾にまとめちゃうっていう手はあるなぁ・・・・
52じじぃ その4 ◆HETAREzfq.
05/01/07 04:39:34ID:CcqiS2fj ん?
規制といえば
SETTING.TXTで定める値が必然的に各板共通になるのけ?
規制といえば
SETTING.TXTで定める値が必然的に各板共通になるのけ?
53マァヴ ★
05/01/07 04:40:47ID:??? subcakはbackendのお仕事になるのかな?(^_^;)やはり
54マァヴ ★
05/01/07 04:41:37ID:??? subbackじゃないや(^_^;)subjectだ
55root▲ ★
05/01/07 04:43:19ID:???56マァヴ ★
05/01/07 04:49:16ID:??? おつかれさまです(^_^;)おやすみなさい
おいらもそろそろ寝る〜
おいらもそろそろ寝る〜
57ひろゆき@どうやら管理人 ★
NGNG ディスクI/Oの分散化じゃないすかね?
dat番号で保存するサーバを切り分けるとか。
dat番号で保存するサーバを切り分けるとか。
05/01/07 05:38:24ID:qLUZud1A
59桶屋
05/01/07 08:15:26ID:FthWzdgq60FOX ★
05/01/07 13:44:12ID:??? うーん 逆なんだけどなぁ
フロント複数で datサーバは一台でとうぶん間に合うんだけど、
たぶん 一台で 1,000万post/day くらい処理できそうなんだが、
フロント複数で datサーバは一台でとうぶん間に合うんだけど、
たぶん 一台で 1,000万post/day くらい処理できそうなんだが、
61root▲ ★
05/01/07 14:13:19ID:??? 私も、そう思ってますです。
datのマスターを管理するのは、1台でいけるんではないかと。
フロントエンドがdatファイルをキャッシュするイメージを想定しています。
で、read.cgiは、そのキャッシュを読む。
そのあたりにおいて、携帯サーバとは、ちょっとだけ路線が違うのかなと。
1000万posts/dayという値は例の「おじさんの動物的直感(これが意外とあてになるんだ)」としても、
当面の路線として「必要以上には処理を複雑にしない」で、できるだけいきたいなと。
datのマスターを管理するのは、1台でいけるんではないかと。
フロントエンドがdatファイルをキャッシュするイメージを想定しています。
で、read.cgiは、そのキャッシュを読む。
そのあたりにおいて、携帯サーバとは、ちょっとだけ路線が違うのかなと。
1000万posts/dayという値は例の「おじさんの動物的直感(これが意外とあてになるんだ)」としても、
当面の路線として「必要以上には処理を複雑にしない」で、できるだけいきたいなと。
62root▲ ★
05/01/07 14:19:44ID:??? >>61 のキャッシュは、ライブdatはメモリディスク利用かな。
で、過去ログ(●)はNFS経由か、バックエンドに丸投げ。
Sambaはあのディレクトリをフロントエンドで共有すればいいはずだから、NFSなんじゃないかなぁ。
削除系はバックエンド直叩きすね。
bbs.cgiは最初は単純に後ろに渡すだけのシンプルなもので、いいかも。
で、過去ログ(●)はNFS経由か、バックエンドに丸投げ。
Sambaはあのディレクトリをフロントエンドで共有すればいいはずだから、NFSなんじゃないかなぁ。
削除系はバックエンド直叩きすね。
bbs.cgiは最初は単純に後ろに渡すだけのシンプルなもので、いいかも。
64FOX ★
05/01/07 14:33:59ID:??? bbs-back.cgi は bbs-back.so でやりますんで
dso 化お願いします < banana227
dso 化お願いします < banana227
67FOX ★
05/01/07 14:40:52ID:??? banana227.maido3.com
liveb1.2ch.net
ch2b1
んで 私が遊ぶとこ作ってくださいー
liveb1.2ch.net
ch2b1
んで 私が遊ぶとこ作ってくださいー
05/01/07 15:11:40ID:cevNcrZr
69root▲ ★
05/01/07 15:41:23ID:??? OS上げて整地してごそごそして、、、。
週末作業ってかんじで。
週末作業ってかんじで。
70ひろゆき@どうやら管理人 ★
NGNG71ひろゆき@どうやら管理人 ★
NGNG bbs.cgiの分散化って昔、sp.2ch.netでテストして
出来た気がする。。
出来た気がする。。
72/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo
05/01/07 17:36:11ID:8sspz10K >>70-71
ここまでの方針を見る限りは、bbs.cgiの分散化というよりは
ディスクへの書き込みをいかにして均すかということでしょう。
bbs.cgiのコストの最たる部分ですし。
そのうえで受付をふやせればいうことなし。
ここまでの方針を見る限りは、bbs.cgiの分散化というよりは
ディスクへの書き込みをいかにして均すかということでしょう。
bbs.cgiのコストの最たる部分ですし。
そのうえで受付をふやせればいうことなし。
73root▲ ★
05/01/07 17:51:30ID:???74ひろゆき@どうやら管理人 ★
NGNG たんにsquidの透過プロキシーでした。
ネットワーク周りの負荷をとりもって、
本体はbbs.cgiの処理に集中って感じでした。
ネットワーク周りの負荷をとりもって、
本体はbbs.cgiの処理に集中って感じでした。
05/01/07 18:27:33ID:taUVfEqj
以前話が出ていたことがあるけど、
bbs.cgiから.dat,subject.txt,subback.htmlにアクセスする部分を別サーバーにして
.datの読み書きをバックエンドにしつつ、subject.txtは
オンメモリで保持するのが良いかと思ってたりします。
で、同じサーバーでread.cgiのバックエンドも動かして、キャッシュを持つと。
フロントではbbs.cgiの処理として
index.htmlや書き込みログやBBxの対処を担当して
実際の書き込みはバックエンドが行うと。
フロント側では、.dat/read.cgi/subject.txt/subback.htmlに対するリクエストは
そのままバックエンド側に回す。
バックエンドでは、bbs.cgiの求める書き込みが妥当かどうかをチェックして
実際に書き込み、フロント側の求めに応じて.datのイメージ等を渡すみたいな。
必要なら、1スレッドでキューに入れながらの非同期書き込みも視野に入れて。
bbs.cgiから.dat,subject.txt,subback.htmlにアクセスする部分を別サーバーにして
.datの読み書きをバックエンドにしつつ、subject.txtは
オンメモリで保持するのが良いかと思ってたりします。
で、同じサーバーでread.cgiのバックエンドも動かして、キャッシュを持つと。
フロントではbbs.cgiの処理として
index.htmlや書き込みログやBBxの対処を担当して
実際の書き込みはバックエンドが行うと。
フロント側では、.dat/read.cgi/subject.txt/subback.htmlに対するリクエストは
そのままバックエンド側に回す。
バックエンドでは、bbs.cgiの求める書き込みが妥当かどうかをチェックして
実際に書き込み、フロント側の求めに応じて.datのイメージ等を渡すみたいな。
必要なら、1スレッドでキューに入れながらの非同期書き込みも視野に入れて。
76root▲ ★
05/01/07 18:37:52ID:???NGNG
む、、、この作戦が成功すると
地震板がまともに機能するようになるのかな?
地震板がまともに機能するようになるのかな?
05/01/07 20:06:47ID:cQJBfLAp
臨時板がまともを期待してはいけません(す
05/01/07 20:23:46ID:pqmq0YTE
82あぼーん
NGNGあぼーん
83桃太郎 ★
05/01/08 00:12:40ID:??? 地震板、電話の輻輳みたく、「お掛けになった方面の鯖は、ただ今大変込み合ってつながりにくくなっています」
なんてメッセージ画面表示したら、起こられるんだろうな・・・
なんてメッセージ画面表示したら、起こられるんだろうな・・・
05/01/08 00:34:09ID:P9MZ8Rfx
85む P061198142013.ppp.prin.ne.jp
05/01/08 00:39:09ID:FPGcP1MY それって、一昔前にあった、お茶飲め規制なんすよね。
つまり、掲示板みたいなメディアだと、あんまり効果なかったりするです。
つまり、掲示板みたいなメディアだと、あんまり効果なかったりするです。
86root▲ ★
05/01/08 07:16:04ID:??? banana227 概ねセットアップ完了。
FreeBSD 5.3R-p4に更新済み。
カーネル的にNFS関連有効に設定。実際の設定はまだ。
ディスクI/O重視セッティング。
・/homeはccdを利用し、ソフトウェアでストライピング(ad0とad1)
・/homeのnewfsパラメータは newfs -U -b 65536 -f 8192 /dev/ccd0
・/homeはnoatime有効(以前から)
ネットワーク周りは、とりあえず携帯フロントエンドサーバ並みのチューニング。
FreeBSD 5.3R-p4に更新済み。
カーネル的にNFS関連有効に設定。実際の設定はまだ。
ディスクI/O重視セッティング。
・/homeはccdを利用し、ソフトウェアでストライピング(ad0とad1)
・/homeのnewfsパラメータは newfs -U -b 65536 -f 8192 /dev/ccd0
・/homeはnoatime有効(以前から)
ネットワーク周りは、とりあえず携帯フロントエンドサーバ並みのチューニング。
89root▲ ★
05/01/08 07:56:24ID:??? ということで、作業はとりあえずここまで。
ネットワーク帯域どうしましょうか。
現状のMAX10Mbpsだと、
今回の用途からして、キャパ的にどきどきかも。
ネットワーク帯域どうしましょうか。
現状のMAX10Mbpsだと、
今回の用途からして、キャパ的にどきどきかも。
90動け動けウゴウゴ2ちゃんねる
05/01/09 19:04:22ID:pgorbTHJ 1Gbps
91root▲ ★
05/01/09 21:23:29ID:??? なお dso を使用するため、httpd そのものを ch2b1 権限で動くようにしてあります。
それに伴い、SuExecもなし。
それに伴い、SuExecもなし。
05/01/10 20:24:35ID:VFBoVca8
D言語お勧め
05/01/31 11:31:26ID:1Pqyrpe70
なんか進展ないのかな・・・
94FOX ★
05/01/31 11:33:29ID:???0 もう少し暖かくなってからかも、
05/01/31 13:07:41ID:ZrtyVVcK0
暖かくなったら溶けませんか? > 雪だるま
05/01/31 13:22:06ID:9jxffk/E0
雪だるまが溶けないうちに雪だるま作戦はあらかた完了しなければならないと思われ、
05/01/31 14:41:26ID:RzOb5kYE0
雪なんて4月になっても残ってるわけだが
05/02/03 00:01:27ID:xt3Py2g/0
冷凍庫に保存してあるから大丈夫
05/02/03 00:15:49ID:5z25kMKc0
溶けた雪だるまをどうするかって問題じゃなかった?w
→dat(3の倍数)+レス書き込み
----→delegate-------→dat(3の倍数+1)+レス書き込み
(逆プロキシ) →dat(3の倍数+2)+レス書き込み
→subject+スレ立て
(振り分け)
下記の2点だけ出来れば動きそう
subjectサーバからdatサーバにスレ立てたら通知
datサーバからsubjectサーバにageの通知
→dat(3の倍数)+レス書き込み
----→delegate-------→dat(3の倍数+1)+レス書き込み
(逆プロキシ) →dat(3の倍数+2)+レス書き込み
→subject+スレ立て
(振り分け)
下記の2点だけ出来れば動きそう
subjectサーバからdatサーバにスレ立てたら通知
datサーバからsubjectサーバにageの通知
05/02/03 00:16:04ID:5z25kMKc0
ずれまくりorz
>>99
どれどれ
どれどれ
05/02/05 14:22:38ID:QIngC8On0
札幌ではそろそろ雪だるま祭りの始まる頃か
103root▲ ★
05/02/16 21:31:42ID:???0 さて、そろそろこれを動かさないとなぁ。
と、とりあえず宣言だけしとこう。
まずは、どうやるかの戦略というか、骨子を
と、とりあえず宣言だけしとこう。
まずは、どうやるかの戦略というか、骨子を
104root▲ ★
05/02/16 21:32:00ID:???0 ありゃ。暴発。
骨子をぼちぼちと。
骨子をぼちぼちと。
05/02/17 00:31:29ID:qJ/os/360
NGNG
漏れ的には、特番板とか作ってみたらとか。。。
05/02/17 18:32:20ID:sd53QL7W0
やっと始動ですか?(・∀・)
109root▲ ★
05/03/05 02:08:32ID:???0 東京に雪が降ったから、そろそろこのスレを動かすか。
まずは、live8にある板をliveb1でも「読める」ようにしようかと。
さて、NFSでやるか、squidとかを使うか。
FreeBSDのNFSがちゃんと動くんなら、NFSのほうがよさげかもと思っていたりするけど、
どうなんだろうか。
まずは、live8にある板をliveb1でも「読める」ようにしようかと。
さて、NFSでやるか、squidとかを使うか。
FreeBSDのNFSがちゃんと動くんなら、NFSのほうがよさげかもと思っていたりするけど、
どうなんだろうか。
110root▲ ★
05/03/05 04:04:56ID:???0 あ、あとApacheのmod_proxyというのもあるかな。
05/03/05 06:19:48ID:/n3o7jvO0
始まりますか(・∀・)ワクワク
05/03/05 09:48:42ID:iemQ7OUQ0
>>109
FreeBSDのNFSってLinuxのそれよりいいと聞いてますけど
FreeBSDのNFSってLinuxのそれよりいいと聞いてますけど
113動け動けウゴウゴ2ちゃんねる
05/03/05 10:30:22ID:QpK6zgyU0 NFSなんておとろしいので、mod_proxy で reverse proxy設定がよいかと。
05/03/05 11:07:31ID:U7AvG2Q50
sendfile効かないからNFSにはしないなぁ。
まぁベンチ取らないとなんともいえないんだけど。
まぁベンチ取らないとなんともいえないんだけど。
05/03/05 11:34:04ID:iemQ7OUQ0
まあ確かに用途を考えると
あまりすすめられたもんじゃないですね>NFS
Solaris同士ならいけたかもですが。
いっそ10をいれてじっけんじっけん!てのもありかもw
あまりすすめられたもんじゃないですね>NFS
Solaris同士ならいけたかもですが。
いっそ10をいれてじっけんじっけん!てのもありかもw
05/03/05 11:40:40ID:RUlzb90X0
read.cgiの処理能力について、
昔書いたhttp://2ch-tool.net/mirror/mod_readcgi.zipをベースに(大幅に手を入れて)
「各レスを名前/本文等に分割したものをキャッシュする」から
「各レスを出力するHTMLになおしたものをキャッシュする」に変えたものが
ようやく動くようになったので、
軽くベンチを取ってみました。
(本来ならば現行のCGIDSO版をベースにすべきでしょうが
ソースが手元にないし、一度似たようなものを作っているので)
環境は、Athlon64-3000+ (2.0G, 512K DDR400single) MEM1G @Win2K
対象は、ある時期(1ヶ月程前)の、operate板の全dat
計116ファイル、9,456,984byte、総レス数は39585。
これを、全ての.datに対して
一通りread.cgiの出力イメージを作成するのにかかる時間(ms)です。
最初に空読みして、OSのディスクキャッシュに載せた後、
複数回測定したおよその数字です。
以下、「キャッシュなし」は初回及び保持数が少ない時にかかる時間
「キャッシュあり」は、キャッシュの保持数を充分にして、2回目以降にかかる時間です。
キャッシュなしの数字には、.datをapr_mmapしてそこから内部バッファにコピーする時間と
その.datをparseして各レスのHTMLを作成する時間が含まれます。
また、圧縮は、zlibの標準圧縮率での測定です。
昔書いたhttp://2ch-tool.net/mirror/mod_readcgi.zipをベースに(大幅に手を入れて)
「各レスを名前/本文等に分割したものをキャッシュする」から
「各レスを出力するHTMLになおしたものをキャッシュする」に変えたものが
ようやく動くようになったので、
軽くベンチを取ってみました。
(本来ならば現行のCGIDSO版をベースにすべきでしょうが
ソースが手元にないし、一度似たようなものを作っているので)
環境は、Athlon64-3000+ (2.0G, 512K DDR400single) MEM1G @Win2K
対象は、ある時期(1ヶ月程前)の、operate板の全dat
計116ファイル、9,456,984byte、総レス数は39585。
これを、全ての.datに対して
一通りread.cgiの出力イメージを作成するのにかかる時間(ms)です。
最初に空読みして、OSのディスクキャッシュに載せた後、
複数回測定したおよその数字です。
以下、「キャッシュなし」は初回及び保持数が少ない時にかかる時間
「キャッシュあり」は、キャッシュの保持数を充分にして、2回目以降にかかる時間です。
キャッシュなしの数字には、.datをapr_mmapしてそこから内部バッファにコピーする時間と
その.datをparseして各レスのHTMLを作成する時間が含まれます。
また、圧縮は、zlibの標準圧縮率での測定です。
05/03/05 11:42:21ID:RUlzb90X0
「レスを全部読む」非圧縮
キャッシュ無し 680
キャッシュあり 290
「レスを全部読む」圧縮
キャッシュ無し 1660
キャッシュあり 1220
「最新50」非圧縮
キャッシュ無し 138
キャッシュあり 46
「最新50」圧縮
キャッシュ無し 282
キャッシュあり 184
「1-100」非圧縮
キャッシュ無し 210
キャッシュあり 85
「1-100」圧縮
キャッシュ無し 460
キャッシュあり 313
カーネルのネットワーク/スレッド、.dat読みや書き込みに割かれる分がありますが
Op246Dualの総合的処理能力が約2倍程度だろうと考えると
read.cgi処理に使えるCPU資源はK8単体と同程度以上はあると思われます。
その上で、(「全部読む」「新着」や>>リンククリックを含めた)平均的なread.cgi出力を
l50程度の長さだと仮定すると、read.cgiの処理自体は
ピーク毎秒400リクエスト以上は平気でこなせる、ということになります。
.dat転送も含めれば、(プロセッサ能力だけなら)毎秒1000近く捌けるはずです。
キャッシュ無し 680
キャッシュあり 290
「レスを全部読む」圧縮
キャッシュ無し 1660
キャッシュあり 1220
「最新50」非圧縮
キャッシュ無し 138
キャッシュあり 46
「最新50」圧縮
キャッシュ無し 282
キャッシュあり 184
「1-100」非圧縮
キャッシュ無し 210
キャッシュあり 85
「1-100」圧縮
キャッシュ無し 460
キャッシュあり 313
カーネルのネットワーク/スレッド、.dat読みや書き込みに割かれる分がありますが
Op246Dualの総合的処理能力が約2倍程度だろうと考えると
read.cgi処理に使えるCPU資源はK8単体と同程度以上はあると思われます。
その上で、(「全部読む」「新着」や>>リンククリックを含めた)平均的なread.cgi出力を
l50程度の長さだと仮定すると、read.cgiの処理自体は
ピーク毎秒400リクエスト以上は平気でこなせる、ということになります。
.dat転送も含めれば、(プロセッサ能力だけなら)毎秒1000近く捌けるはずです。
05/03/05 11:44:34ID:RUlzb90X0
ところで、書き込み処理の方はどの程度まで可能かというと
こちらはHDDの能力に依存するでしょう。
仮に、シーク4ms、15000rpmのディスクに書き込むとします。
平均シークは4msですが、局所性も考えて
シーク+回転待ちで、5ms程度とみると
HDDの能力的には、毎秒200ブロックに対して書き込みが可能なはずです。
(データの書き込みにかかる時間は、64K程度の書き込みでも1ms以下です)
仮に、open,write,closeの3つの合計で
ディスクの10箇所に書き込むとすると
ピークで最大20ファイルに対して書き込みが出来るわけです。
ただし、プラッタもヘッドも1つではないし
ディスク自体も内部キャッシュを持っていることを考えると
ピーク30ファイルは書き込めると思われます。
(ディスクの動作モード等にも依存するかもしれません)
# 実際、体感的にはWin2K+Raptor(遅い方)RAID0でも
# 毎秒100ファイル程度は書き込めているという印象があります。
# まあ、データ本体は非同期書き込みなので、あまり参考にはなりませんが。
こちらはHDDの能力に依存するでしょう。
仮に、シーク4ms、15000rpmのディスクに書き込むとします。
平均シークは4msですが、局所性も考えて
シーク+回転待ちで、5ms程度とみると
HDDの能力的には、毎秒200ブロックに対して書き込みが可能なはずです。
(データの書き込みにかかる時間は、64K程度の書き込みでも1ms以下です)
仮に、open,write,closeの3つの合計で
ディスクの10箇所に書き込むとすると
ピークで最大20ファイルに対して書き込みが出来るわけです。
ただし、プラッタもヘッドも1つではないし
ディスク自体も内部キャッシュを持っていることを考えると
ピーク30ファイルは書き込めると思われます。
(ディスクの動作モード等にも依存するかもしれません)
# 実際、体感的にはWin2K+Raptor(遅い方)RAID0でも
# 毎秒100ファイル程度は書き込めているという印象があります。
# まあ、データ本体は非同期書き込みなので、あまり参考にはなりませんが。
05/03/05 11:47:19ID:RUlzb90X0
以上、読み込みと書き込みの両方の要素から
peko鯖単体の処理能力の限界を求めると
ピーク時に毎秒30書き込みが可能で、
読み出しリクエストがその20-30倍程度と考えると
毎秒600-800程度、内read.cgi呼び出しが300-400程度、
といったところでしょうか。
ピークが1日平均の1/3-1/5程度と考えると、1台のバックエンドで(peko鯖ならば)
毎秒平均6-10書き込み、1日平均50万-80万書き込み程度が
処理できる計算になります。
これは、2chの全書き込みの1/4-1/3程度に相当します。
# 本来、このスレでの話題は「live鯖をどうするか」であって
# 2ch全体の構成を変えることは考えてないでしょうが
# 私自身はlive系には全く縁も興味もないので・・・。
以上、(書き込み能力からの)理論上の目標数値のようなものは出ていますが
実際にここまで実現できるかというと、問題は山ほどあります。
で、とりあえず、バックエンドをどういう形態で動かすのか
(シングルプロセスapacheのモジュールにするのか、さらに別daemonにするのか)
という問題があります。
peko鯖単体の処理能力の限界を求めると
ピーク時に毎秒30書き込みが可能で、
読み出しリクエストがその20-30倍程度と考えると
毎秒600-800程度、内read.cgi呼び出しが300-400程度、
といったところでしょうか。
ピークが1日平均の1/3-1/5程度と考えると、1台のバックエンドで(peko鯖ならば)
毎秒平均6-10書き込み、1日平均50万-80万書き込み程度が
処理できる計算になります。
これは、2chの全書き込みの1/4-1/3程度に相当します。
# 本来、このスレでの話題は「live鯖をどうするか」であって
# 2ch全体の構成を変えることは考えてないでしょうが
# 私自身はlive系には全く縁も興味もないので・・・。
以上、(書き込み能力からの)理論上の目標数値のようなものは出ていますが
実際にここまで実現できるかというと、問題は山ほどあります。
で、とりあえず、バックエンドをどういう形態で動かすのか
(シングルプロセスapacheのモジュールにするのか、さらに別daemonにするのか)
という問題があります。
05/03/05 11:48:13ID:RUlzb90X0
まず、apacheに載せる場合、(特にFreeBSDなら)workerが動くのか
もしうまく動かないならsolarisやlinuxは視野に入っているのか等や
そもそも1000ものスレッドを作れるのか
(例えばlinux2.4でpthreadをデフォルト使うと、各スレッドでスタックを10M取るため
32bit環境では4Gしかないアドレス空間が全然足りません)
デフォルトで作れないなら、worker.cに手を加えるのか、
仮に作れてもまともに動くのか、等です。
そしてバックエンドを別daemonにするなら
(daemon自体はselect系を使った少数スレッドによる実行形態が望ましい)
それとの通信はどうするのか
(マルチスレッドapacheに交信モジュールを追加して
コネクションプールと各プロセスからの同時接続数制限をしたい)
とかですね。
# 一応今作っているものは、apacheのhttpd依存部とそれ以外(aprには依存しますが)には
# 分離可能なようには努力しています。
# まだ.datの詳細データの読み出しと保存、subject/subbackの作成、及び
# 前述の基本的なread.cgi出力部のみですが。
もちろん、毎秒最大1000ものconnect/close要求(KeepAliveOffの場合)を
こなせるのかというのも大きな問題です。
(少数のコネクションに対してリクエストが合計1000来るというだけなら
DB等で実現しているように、問題なくこなせるはずです)
で、何らかの理由で「毎秒1000」が1台でこなせない場合の対案等は
後ほど(気が向いたら)書き込みます。
もしうまく動かないならsolarisやlinuxは視野に入っているのか等や
そもそも1000ものスレッドを作れるのか
(例えばlinux2.4でpthreadをデフォルト使うと、各スレッドでスタックを10M取るため
32bit環境では4Gしかないアドレス空間が全然足りません)
デフォルトで作れないなら、worker.cに手を加えるのか、
仮に作れてもまともに動くのか、等です。
そしてバックエンドを別daemonにするなら
(daemon自体はselect系を使った少数スレッドによる実行形態が望ましい)
それとの通信はどうするのか
(マルチスレッドapacheに交信モジュールを追加して
コネクションプールと各プロセスからの同時接続数制限をしたい)
とかですね。
# 一応今作っているものは、apacheのhttpd依存部とそれ以外(aprには依存しますが)には
# 分離可能なようには努力しています。
# まだ.datの詳細データの読み出しと保存、subject/subbackの作成、及び
# 前述の基本的なread.cgi出力部のみですが。
もちろん、毎秒最大1000ものconnect/close要求(KeepAliveOffの場合)を
こなせるのかというのも大きな問題です。
(少数のコネクションに対してリクエストが合計1000来るというだけなら
DB等で実現しているように、問題なくこなせるはずです)
で、何らかの理由で「毎秒1000」が1台でこなせない場合の対案等は
後ほど(気が向いたら)書き込みます。
05/03/05 15:54:58ID:U7AvG2Q50
まぁ排他処理とかキャッシュみたいなややこしいアクロバチックなことを1台のサーバーとソフトでするよりも。
Keep It Simple & Stupidでバカ端末を複数ぶらさげるほうがスケールするんだけどね。
Keep It Simple & Stupidでバカ端末を複数ぶらさげるほうがスケールするんだけどね。
122root▲ ★
05/03/06 02:16:46ID:???0 http://liveb1.2ch.net/livetbs/
とりあえず、単につないでみただけ。
リファラとかいろいろあるからもちろん書き込めないし、
いろんなところにlive8ってハードコーディングされてるということが改めてわかった。
とりあえず、単につないでみただけ。
リファラとかいろいろあるからもちろん書き込めないし、
いろんなところにlive8ってハードコーディングされてるということが改めてわかった。
123root▲ ★
05/03/06 02:24:52ID:???0 で、いろいろレス。
>>113
やっぱ、Apacheかsquidかなってことで、とりあえずsquidでやってみたです。
設定のフレキシビリティ考えると、Apacheかも。
>>115
それは、すぐにはできにくいすからね。
>>116-119
緻密な調査、ありがとうございます。
非常に参考になります。
100ファイル/secがそのまま「bbs.cgiを秒間100回」にできるわけではないですが、
私の感覚やいろんな統計などとも結構一致しているかんじがします。
cgidsoとspeedycgiにしてから、「読み」と「書き」を別ホストにできると、
実は相当いけるんじゃないだろうかというのが、これのそもそものきっかけなんで。
で、>>119 にある「2ちゃんねるの全書き込みの1/3-1/4を1台で処理できるパフォーマンスが
出せる可能性があるのかもしれない」というのが、なかなかですね。
>>120
workerで動かせるか、というのは、前からある課題ですね。
mod_proxyでリバースプロキシするなら、フロント側でworker使ってみる意味はあるかもしれないかも、
とか思ったり。
>>121
そですね。
banana大量横並べモデルって、じつはそれに近い気が、しないでもなかったり。
>>113
やっぱ、Apacheかsquidかなってことで、とりあえずsquidでやってみたです。
設定のフレキシビリティ考えると、Apacheかも。
>>115
それは、すぐにはできにくいすからね。
>>116-119
緻密な調査、ありがとうございます。
非常に参考になります。
100ファイル/secがそのまま「bbs.cgiを秒間100回」にできるわけではないですが、
私の感覚やいろんな統計などとも結構一致しているかんじがします。
cgidsoとspeedycgiにしてから、「読み」と「書き」を別ホストにできると、
実は相当いけるんじゃないだろうかというのが、これのそもそものきっかけなんで。
で、>>119 にある「2ちゃんねるの全書き込みの1/3-1/4を1台で処理できるパフォーマンスが
出せる可能性があるのかもしれない」というのが、なかなかですね。
>>120
workerで動かせるか、というのは、前からある課題ですね。
mod_proxyでリバースプロキシするなら、フロント側でworker使ってみる意味はあるかもしれないかも、
とか思ったり。
>>121
そですね。
banana大量横並べモデルって、じつはそれに近い気が、しないでもなかったり。
124root▲ ★
05/03/06 03:16:58ID:???0 …ということで、もうちょっと微調整するんで、
いったんつなげたやつを落とします。
いったんつなげたやつを落とします。
125root▲ ★
05/03/06 03:29:30ID:???0 再度上げた。
今日はこんなとこか。
今日はこんなとこか。
Apache の mod_cache / mod_proxy 周りは現行の 2.0 より 2.1 / 2.2 の方が
いろいろ手が入って改良されてるようです.まだ alpha バージョンですけど,
実験と割り切るなら使ってみるのも一興かな,と.
live 系鯖のように板当たりのスレ数が少なく,かつ特定のスレに人が集中する
ような状況なら,read.cgi 出力のキャッシュは結構有効だろうと思います.
あとは,それを read.cgi 自前でやるのがいいのか,それとも mod_mem_cache に
お任せするのがいいのか,というところですが.
マルチスレッド MPM の選択肢としては worker 以外にも,バーチャルホスト単位で
別ユーザ権限で httpd を動かせて perchild より安定している Metux MPMとか,
Keep Alive 時の負荷軽減を図った Event MPM とか,もありますね.
いろいろ手が入って改良されてるようです.まだ alpha バージョンですけど,
実験と割り切るなら使ってみるのも一興かな,と.
live 系鯖のように板当たりのスレ数が少なく,かつ特定のスレに人が集中する
ような状況なら,read.cgi 出力のキャッシュは結構有効だろうと思います.
あとは,それを read.cgi 自前でやるのがいいのか,それとも mod_mem_cache に
お任せするのがいいのか,というところですが.
マルチスレッド MPM の選択肢としては worker 以外にも,バーチャルホスト単位で
別ユーザ権限で httpd を動かせて perchild より安定している Metux MPMとか,
Keep Alive 時の負荷軽減を図った Event MPM とか,もありますね.
05/03/08 05:03:43ID:mDJH+l/N0
【実験】ミニ雪だるま作戦―ex7で3/8 3:10あたりから実験はじめます
http://qb5.2ch.net/test/read.cgi/operate/1110218877/
http://qb5.2ch.net/test/read.cgi/operate/1110218877/
128FOX ★
05/03/08 12:28:22ID:???0 私もちと基礎実験するかな @live15
その前に知識をむさぼらなければ・・・・・
ということで 質問だらだらでーす
今 live15 は read.cgi が止まっています、つまり俗に言う「人大杉」状態。
この状態で 別サーバで read.cgi をサービスするという事を考えてみようかと、
もしかしたら root★さんがやっているのがそれなのかしら?
live15x.2ch.net で read.cgi を提供するとしたら dat@live15 を取得するのは
どうしたらいいだろう・・・
その前に知識をむさぼらなければ・・・・・
ということで 質問だらだらでーす
今 live15 は read.cgi が止まっています、つまり俗に言う「人大杉」状態。
この状態で 別サーバで read.cgi をサービスするという事を考えてみようかと、
もしかしたら root★さんがやっているのがそれなのかしら?
live15x.2ch.net で read.cgi を提供するとしたら dat@live15 を取得するのは
どうしたらいいだろう・・・
129FOX ★
05/03/08 12:30:29ID:???0 1) 直接 live15 から持ってくる、 (front end を増やすのが簡単じゃないかも)
2) 専用の black goat 経由で持ってくる、(スケールとの兼ね合いで高コスト?)
3) あと どうやるの?
もしかして root ★さんは 1) をやろうとしているのかしら?
2) 専用の black goat 経由で持ってくる、(スケールとの兼ね合いで高コスト?)
3) あと どうやるの?
もしかして root ★さんは 1) をやろうとしているのかしら?
130root▲ ★
05/03/08 12:34:36ID:???0 おぉ、、、。
めしの後で、レスします。
めしの後で、レスします。
131root▲ ★
05/03/08 14:00:26ID:???0 read.cgiを別ホストで動かそうとする場合、何らかの形でdatにアクセスできる必要があります。
その方法ですが、1) 2) 3) だと混乱するんで、a) b) c)で、、、
a) NFSを使う
NFSを使ってlive15のdatディレクトリをlive15xにmountし、まるごと見えるようにします。
これだと、ローカルにあるファイルと同じようにopen()とかread()とかできるので、
read.cgiの改変は基本的に少なくてすみます。
でもmmap()とか使っていると、変えないといけない予感。
あと、FreeBSDのNFSの実装がどのくらい枯れているのかという点で、やや不安です。
私ののおすすめ度: ★
b) read.cgiをいじって、ローカルにdatを持ってくることにする
>>129 の 1) とか 2) の手法です。
で、専用のblackgat入れるのいまいちなので、ローカルにキャッシュ持って、
そこに入れることにするのはどうか、と考えています。
もちろんこのキャッシュで、dat直読みも対応させると。
で、フロントエンドはバックエンドにせいぜい3台、多くても5台ぐらいぶらさげれば
いいところじゃないかと思っているので、1)でいいんじゃないかなぁと(これは、甘く見てるかも)。
私のおすすめ度: ★★
その方法ですが、1) 2) 3) だと混乱するんで、a) b) c)で、、、
a) NFSを使う
NFSを使ってlive15のdatディレクトリをlive15xにmountし、まるごと見えるようにします。
これだと、ローカルにあるファイルと同じようにopen()とかread()とかできるので、
read.cgiの改変は基本的に少なくてすみます。
でもmmap()とか使っていると、変えないといけない予感。
あと、FreeBSDのNFSの実装がどのくらい枯れているのかという点で、やや不安です。
私ののおすすめ度: ★
b) read.cgiをいじって、ローカルにdatを持ってくることにする
>>129 の 1) とか 2) の手法です。
で、専用のblackgat入れるのいまいちなので、ローカルにキャッシュ持って、
そこに入れることにするのはどうか、と考えています。
もちろんこのキャッシュで、dat直読みも対応させると。
で、フロントエンドはバックエンドにせいぜい3台、多くても5台ぐらいぶらさげれば
いいところじゃないかと思っているので、1)でいいんじゃないかなぁと(これは、甘く見てるかも)。
私のおすすめ度: ★★
132root▲ ★
05/03/08 14:04:38ID:???0 で、キャッシュを持つ実験として、ミニ雪だるまを動かしています。
ex7でディレイなし、read.cgiはノーキャッシュの状況で、
30%ぐらいキャッシュからヒットしています。
つまりその分のアクセスはフロントエンドのsquidがよきにはからってくれていて、
ex7のhttpdはdatの中身をsquid側に運ばないで済んでいます。
この状態でsquidを別マシンで動かすことを考えています。
で、別マシンで動くread.cgiはこのsquidに対して、datをリクエストすると。
ex7でディレイなし、read.cgiはノーキャッシュの状況で、
30%ぐらいキャッシュからヒットしています。
つまりその分のアクセスはフロントエンドのsquidがよきにはからってくれていて、
ex7のhttpdはdatの中身をsquid側に運ばないで済んでいます。
この状態でsquidを別マシンで動かすことを考えています。
で、別マシンで動くread.cgiはこのsquidに対して、datをリクエストすると。
133FOX ★
05/03/08 14:07:33ID:???0 混乱しないように ex7 で話しをすすめることにしよう。。。
(b)の場合 その squid というのは ex7 側にあるんですよね?
つまりその負荷はex7に負わせるということですが、
それの占有率ってどれくらいなんだろう・・・
(b)の場合 その squid というのは ex7 側にあるんですよね?
つまりその負荷はex7に負わせるということですが、
それの占有率ってどれくらいなんだろう・・・
134root▲ ★
05/03/08 14:20:10ID:???0 簡単な図にすると、今まではこんなかんじで、
ユーザPC = datリクエスト => httpd at 206.223.150.110
これを、今ex7ではこうやっています。
ユーザPC = datリクエスト => squidローカルキャッシュ[ datキャッシュ ] at 206.223.150.110 = datリクエスト => httpd at 127.0.0.1
で、次の段階では、squidとhttpdを別のマシンで動かすことを考えると。
で、今のsquidの負荷占有率は、それほど高くないです。
topだと、0点台です。
squidの非同期I/O機能が効いている模様。
だた、メモリは食ってますね。ex7のやつが今90Mぐらい。
そもそもsquidには「httpアクセラレーション機能」というのがあって、
それも、ある程度効果を発揮している模様です。
Apacheはpreforkだと1つのhttpdで同時に一人しか相手できないので、スロットいっぱいになってしまうと
身動きがとれなくなりますが、squidだと1つのsquidで同時に何百人を相手できるので、
その部分での効果も、期待できます。
マツケンサンバやバルス攻撃だと読み人が死ぬほど来てスロットをさらっていくので、
それも、ついでになんとかしてしまおうという目論見で。
ユーザPC = datリクエスト => httpd at 206.223.150.110
これを、今ex7ではこうやっています。
ユーザPC = datリクエスト => squidローカルキャッシュ[ datキャッシュ ] at 206.223.150.110 = datリクエスト => httpd at 127.0.0.1
で、次の段階では、squidとhttpdを別のマシンで動かすことを考えると。
で、今のsquidの負荷占有率は、それほど高くないです。
topだと、0点台です。
squidの非同期I/O機能が効いている模様。
だた、メモリは食ってますね。ex7のやつが今90Mぐらい。
そもそもsquidには「httpアクセラレーション機能」というのがあって、
それも、ある程度効果を発揮している模様です。
Apacheはpreforkだと1つのhttpdで同時に一人しか相手できないので、スロットいっぱいになってしまうと
身動きがとれなくなりますが、squidだと1つのsquidで同時に何百人を相手できるので、
その部分での効果も、期待できます。
マツケンサンバやバルス攻撃だと読み人が死ぬほど来てスロットをさらっていくので、
それも、ついでになんとかしてしまおうという目論見で。
135root▲ ★
05/03/08 14:21:05ID:???0 topだと、0点台です。=> CPU1%以下、という意味です。
136root▲ ★
05/03/08 14:30:24ID:???0 補足をひとつ:
リモートホストの情報は、squid => httpdの際に渡るようになっています。
つまり、IPアドレスやリモートホスト名で規制する部分は、従来どおりです。
(mod_rpaf というApacheモジュールを使用)
リモートホストの情報は、squid => httpdの際に渡るようになっています。
つまり、IPアドレスやリモートホスト名で規制する部分は、従来どおりです。
(mod_rpaf というApacheモジュールを使用)
137FOX ★
05/03/08 15:18:31ID:???0 つまり squid を独立した別サーバで動かすと
それはまさに black goat であるということですかねぇ
それはまさに black goat であるということですかねぇ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【訃報】大宮エリーさん死去 49歳 映画監督、脚本家、演出家など幅広く活躍… 電通デビュー作は広末涼子のドコモCM [冬月記者★]
- なぜ?「就職氷河期世代」への支援続々 石破首相が“就労支援”など3本柱の対策を指示するなど各党が発表★4 [煮卵★]
- 【芸能】永野芽郁「あなたより大きなスクープとってみせます」 阿部寛「やれるもんならやってみろ!」 ドラマのセリフが大ブーメランに [冬月記者★]
- 【MLB】大谷翔平が急ブレーキ パパ初の本拠地も4の0 真美子夫人が選曲の登場曲も復帰後打率.125… 試合終了13分後に足早帰宅 [冬月記者★]
- 【栃木】東北自動車道上り線の逆走車による多重事故で2人意識不明 那須ICから黒磯板室ICの間 ほかにけが人複数 [シャチ★]
- 【米国】「就任初日に戦争止める」と訴えていたトランプ氏「面白半分で言っていただけだ」★2 [あしだまな★]
- 漫画家の双龍さん、万博コスプレにブチギレ。お前らの想像の4倍ブチギレてる [485187932]
- 【訃報】大宮エリーさん死去。49歳 [399583221]
- 大阪万博の空飛ぶクルマ、デモ飛行中にプロペラ部品が外れるwwwwwwwwwwwwww🤣 [931948549]
- 【悲報】宇宙、始まりなどなく「無限の過去」が続いていると判明... [308389511]
- コーラ飲みながらハンバーガー食べつつポテト摘むの最高すぎワロタwwww
- ▶シオンたんお別れ会