■ 新春特別企画「雪だるま作戦」liveサーバの飛躍なるか!?
巨大Live専用サーバの構築
live系のサーバは台数投入したところで、ほとんど遊んでいる
サーバ + 一台の負荷が高くてアクセスできないサーバという
悲惨な状況になっちゃうので、複数のサーバを巨大な一台と見立てて
なんとかならんものなのかを模索するー。
【Step1】四台のbananaサーバで 現 live8/live16/live18 を全部収容する。
■新春特別企画「雪だるま作戦」liveサーバの飛躍なるか!? Part1
■ このスレッドは過去ログ倉庫に格納されています
1FOX ★
05/01/07 03:19:00ID:???28root▲ ★
05/01/07 03:59:41ID:??? もちろん、前と後ろの通信をうまくやってできるだけブロックしないようにするとか、
そういう方向でのプログラミング的手法も、必要になりそうかな。
いずれにせよ、またお風呂にでも入りながら、
ちょっと脳内で絵を描いてみようかと。
そういう方向でのプログラミング的手法も、必要になりそうかな。
いずれにせよ、またお風呂にでも入りながら、
ちょっと脳内で絵を描いてみようかと。
29マァヴ ★
05/01/07 04:00:19ID:??? >26
なるほど(^_^;)
まずはbbs.cgiの分離ですね
なるほど(^_^;)
まずはbbs.cgiの分離ですね
30通行人
05/01/07 04:06:28ID:98B+xnhu 実況系はagesageの処理を無くしてもいいんじゃないかと思ったり・・・
31その他 ★
05/01/07 04:07:54ID:??? 1) 机上の空論
2) それに基づいた絵
3) 絵を描く
4) 実験する
5) 1)が合っていたかどうかの検証
これをひたすら繰り返すと、
2) それに基づいた絵
3) 絵を描く
4) 実験する
5) 1)が合っていたかどうかの検証
これをひたすら繰り返すと、
32じじぃ その4 ◆HETAREzfq.
05/01/07 04:11:11ID:CcqiS2fj コレを機会に負荷が高くなった時に起きる不可視やら板とびやらの
主だった仕組み(原因)をご教授願いたいものじゃ
datを更新しました⇒(伝達)⇒subjectを書き換えます
のどっちかが溢れてしまうからこういうことになるんじゃとおもうんじゃが
どっちが溢れることが多いんじゃ?
subject生成の工程に伝わった時点でそこが溢れておるのか、
dat更新の段階で溢れてしまってsubjec生成tの工程に伝わってないのか、
主だった仕組み(原因)をご教授願いたいものじゃ
datを更新しました⇒(伝達)⇒subjectを書き換えます
のどっちかが溢れてしまうからこういうことになるんじゃとおもうんじゃが
どっちが溢れることが多いんじゃ?
subject生成の工程に伝わった時点でそこが溢れておるのか、
dat更新の段階で溢れてしまってsubjec生成tの工程に伝わってないのか、
33その他 ★
05/01/07 04:11:44ID:??? んで
現状は bbs.cgi が律速であると解かっている
bbs.cgi を動かすサーバを二台にしてみる
ただしdatは一箇所に書かなきゃ意味が無いので
backendにdat処理用一台と、
これでやって、 subject.txt や 規制系やその他もろもろが
使い物になるのかどうか、、、
特に規制系はsambaにしても連投規制にしても、かなり手ごわいかと、
あきらめるのも一手ですが、
現状は bbs.cgi が律速であると解かっている
bbs.cgi を動かすサーバを二台にしてみる
ただしdatは一箇所に書かなきゃ意味が無いので
backendにdat処理用一台と、
これでやって、 subject.txt や 規制系やその他もろもろが
使い物になるのかどうか、、、
特に規制系はsambaにしても連投規制にしても、かなり手ごわいかと、
あきらめるのも一手ですが、
34ひろゆき@どうやら管理人 ★
05/01/07 04:12:49ID:??? readがいくらでも分散できるのは
blackgoatで証明済みなような。
blackgoatで証明済みなような。
36FOX ★
05/01/07 04:15:04ID:???37root▲ ★
05/01/07 04:15:29ID:??? で、最近のことをちょっと書いておくと、、、。
特にlive16とかはread.cgiやdat直読みの人が待たないようにするために、
ほんとはもっとhttpdの数を増やしたいわけです。
しかし昔は、起動数をむげに増やすと、「どーん」とbbs.cgiが同時に100個以上
起動された時に(例: 西部警察で導火線爆弾が出る等)、もう即死するしかなかった。
で、昨年bbs.cgiをSpeedyCGIにすることで、
最大並列処理数(バックエンドの最大起動数)を制限することができるようになり、
即死のリスクをとても減少させることができました。
でもこの場合、bbs.cgiの実際の処理をしている人がおなかいっぱいになると、
こんどはフロントエンドがバックエンドの処理終了を待ってしまって、
結局httpdを埋めていってしまうことになります。
つまり、流入は制限されるのですが、「終了に時間がかかって、窓口人員が不足がちになる」
ことに変わりはないわけです。
また、バルスとかマツケンサンバとか、超人気番組の場合、
おそろしい勢いで読み手が攻めてきて、httpdが売り切れになってしまい、
サーバは負荷が低いのに、誰も書き込みができないし、
読むのも難しい、という状態になったりします。
これも、窓口の人手が足りない状態。
ということで、
・窓口の人手を増やして
・お客をできるだけ待たせないようにしながら
・でも、サーバにはやさしい方法で処理する
ような手法はないだろうか、というのが、今回の試みなのではないかなと。
特にlive16とかはread.cgiやdat直読みの人が待たないようにするために、
ほんとはもっとhttpdの数を増やしたいわけです。
しかし昔は、起動数をむげに増やすと、「どーん」とbbs.cgiが同時に100個以上
起動された時に(例: 西部警察で導火線爆弾が出る等)、もう即死するしかなかった。
で、昨年bbs.cgiをSpeedyCGIにすることで、
最大並列処理数(バックエンドの最大起動数)を制限することができるようになり、
即死のリスクをとても減少させることができました。
でもこの場合、bbs.cgiの実際の処理をしている人がおなかいっぱいになると、
こんどはフロントエンドがバックエンドの処理終了を待ってしまって、
結局httpdを埋めていってしまうことになります。
つまり、流入は制限されるのですが、「終了に時間がかかって、窓口人員が不足がちになる」
ことに変わりはないわけです。
また、バルスとかマツケンサンバとか、超人気番組の場合、
おそろしい勢いで読み手が攻めてきて、httpdが売り切れになってしまい、
サーバは負荷が低いのに、誰も書き込みができないし、
読むのも難しい、という状態になったりします。
これも、窓口の人手が足りない状態。
ということで、
・窓口の人手を増やして
・お客をできるだけ待たせないようにしながら
・でも、サーバにはやさしい方法で処理する
ような手法はないだろうか、というのが、今回の試みなのではないかなと。
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/
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【巨人】田中将大2回7安打6失点の大炎上 [鉄チーズ烏★]
- NTTドコモ、保護メールが消失 32万人に影響 [蚤の市★]
- 木下博勝氏、石橋貴明セクハラ報道に私見「バブル時代のことを言われたら、ほとんどのタレントがアウトじゃないですか?」 [jinjin★]
- 【コメ高騰】「備蓄米、売り場に並べてもすぐ品切れになる」 混乱する小売り現場 [シャチ★]
- 台湾人が最も好きな国は「日本」 断然1位で過去最高の76% ★2 [尺アジ★]
- 【訃報】俳優の板垣瑞生さん死去、24歳 家族が発表「不慮の事故により」…1月末から行方不明、遺体で見つかる ★2 [Ailuropoda melanoleuca★]
- マクドナルド店長の給料、流出wwwwwwwwwwwwwwwwwwwwwwwwwwwwww [333919576]
- トランプ、パウエルに解雇通告か?wwwwwwwwwwwwww FRBにも関税賦課かよwwwwwwwwwwwww [918057362]
- TGSK人気投票スレ🏡
- (´・ω・`)VIP書き込めなかったけど書き込めるようになった
- 🏡
- 大阪大本営「本日モ万博ハ盛況也。学徒モ非常ニ歓喜ノ声ヲ挙ゲテイル」 [834922174]