■掲示板に戻る■ 1- 101- 201- 301- 401- 最新50

キャッシュ型負荷分散システム開発スレッド

1 :名無し娘。 ◆vP.bOZFQ :01/08/27 19:29 ID:asPJm1Ug
このスレッドは、2ch.net の転送量削減を目指し、P2P-cache型の
負荷分散システムを開発するスレッドです。

参照:http://203.174.72.113/p2pcache/P2Pcache/frame.htm
その他参照スレは >>2-5 あたりに。

2ちゃんねるの軽量化・開発に関する他の話題は、
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&ls=20

その他、障害報告・動作報告等は、
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998808733&ls=20

に、それぞれお願いいたします。

2 :名無し娘。 ◆vP.bOZFQ :01/08/27 19:37 ID:asPJm1Ug
●2ちゃんねる開発統合スレッド(連絡用)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998908559&ls=20

●キャッシュ型負荷分散システム開発スレッド (ここ)
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998908154&ls=20

●read.cgi開発スレッド(当面、bbs.cgiの話題も扱う)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&ls=20

●動作報告・障害報告スレッド
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998808733&ls=20

●2ちゃんねるWiki(全体にわたる参照事項です)
http://www.gedoh.org/aki/2ch/wiki/yukiwiki.cgi?TopPage

3 : ̄ー ̄)ノ :01/08/27 19:40 ID:KeujS.U6
最新スクリプト
http://star.endless.ne.jp/users/forcount/4countbbs/scriptmaker/index.html

4 :名無しさん@お腹いっぱい。 :01/08/27 19:41 ID:0cm50H8s
とりあえず 本家サーバにROMのリクエストが来たら
  305 Use Proxy
で追い返すって感じですかね?

5 :  :01/08/27 19:42 ID:xheJAhZs
本家サーバにROMのリクエストが来たら
てきとーなキャッシュ鯖に飛ばすんじゃないのかな?

6 :名無しさん@お腹いっぱい。 :01/08/27 19:44 ID:xheJAhZs
基本的には、本家2ch鯖は、書き込み処理と
キャッシュ鯖への誘導って感じ??

7 :名無しさん@お腹いっぱい。 :01/08/27 19:46 ID:cn52pBwI
この対応策は、ひろゆきさんの参加が絶対条件ですね。

8 : ̄ー ̄)ノ :01/08/27 19:46 ID:KeujS.U6
ROMの持ってるキャッシュとの差分だけ送るなんて器用な真似できませんかね
アクセスは専用ブラウザのみにして・・

9 :名無しさん@お腹いっぱい。 :01/08/27 19:47 ID:0cm50H8s
問題は そのキャッシュをどこに置くんじゃゴルァってとこか......

10 :名無しさん@お腹いっぱい。 :01/08/27 19:47 ID:vN9r/JlA
>>4
302 のほうが良いでしょう。
で、 >>5 が言ってるように
Location: でキャッシュ鯖にとばす、と。

11 :名無しさん@お腹いっぱい。 :01/08/27 19:48 ID:cn52pBwI
いまの2ちゃんねるの運用実績を見る限り、サーバの移転、仕様の変更、新規板の設立などは、よく言えばフレキシブル、悪く言うと前置きや準備なしにいきなり行われています。
こういうシステムになると、相互のコミュニケートが必要なので、ひろゆきさんが参加しないとお手上げでしょう。

12 :Perler ◆GSi39OA6 :01/08/27 19:51 ID:95LP96f6
ftp://210.170.170.131/incoming/perler/mirror/mirror.pl

に、ダウンロード専用スクリプトをおきました。こいつをcronで走らせる算段です。

今のところデバッグで、tech板の取得しかしないです。

実行カレントDir以下の、dat/tech/dat/*datにキャッシュファイルを作ります。

このまま実行すると巨大になるので、キャッシュ管理ファイル(index.dat)も一緒に
アップロードしてあります。

./dat/tech/index.dat

に置くと、何個かのファイルしか取得してきません。

現在、index2.htmlの自動生成をやっています。差分取得はさらにその後です。

13 :4 :01/08/27 19:53 ID:0cm50H8s
>>10 "302 Found"だと立てるサーバは「キャッシュ」というより「ミラー」と言った方が
しっくりくるけど......まぁ結果的に本家のトラフィックが減ればどっちでもいいんだけど

14 : ̄ー ̄)ノ :01/08/27 19:55 ID:KeujS.U6
2chへのアクセスは専用ブラウザonlyにして
各専用ブラウザにキャッシュ持たせて
まず、P2Pで最も新しいキャッシュを探して
差分を本家サーバーから落とせたら・・・

15 :名無しさん@お腹いっぱい。 :01/08/27 19:58 ID:95LP96f6
>>14
> 2chへのアクセスは専用ブラウザonlyにして
> 各専用ブラウザにキャッシュ持たせて

ここまでは、2ch.net上のread.cgiを消せばかちゅ〜しゃ等が代わりになりますよね。

16 : ̄ー ̄)ノ :01/08/27 19:59 ID:KeujS.U6
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror.pl
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/index.dat
アプしときました

17 :名無しさん@お腹いっぱい。 :01/08/27 20:00 ID:HuAyIkhI
つーか、なんで↓でやらないの?
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=990334284

18 :名無しさん ◆0CYhqCZM :01/08/27 20:01 ID:6kfMn/mA
>>16
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror.pl
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror.txt
にした方がいいのでは?

19 :名無しさん@お腹いっぱい。 :01/08/27 20:03 ID:95LP96f6
>>17
・実質、read.cgi部のミラー化でありP2Pじゃないこと
・既に仕様がある程度固まり、実際に開発に入ったため、仕様策定のスレッドと分ける必要性が
出てきたこと

以上の2つでスレ分けを提案しました。

20 : ̄ー ̄)ノ :01/08/27 20:04 ID:KeujS.U6
>>15
そうですね
で、専用ブラウザにP2Pの機能を持たせて
各2ちゃんねらー同士で最新キャッシュの問い合わせをしあって
まぁ、とりあえず本家サーバーから落とすのは差分データーのみに出来たら・・・・

でもこれだとキャッシュ問い合わせに時間がかかりすぎるかな?

21 : ̄ー ̄)ノ :01/08/27 20:06 ID:KeujS.U6
>>18
おっしゃる通りです
変更しときました
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror.txt

22 :名無しさん@お腹いっぱい。 :01/08/27 20:07 ID:HuAyIkhI
>>19
いや、>>14なんかはあっちで出てる案と似てるし、
別にあっちも完全P2P化で決定ってわけでもないですよ。
こっちは完全に固定キャッシュサーバでいくのなら分かれていても
いいですが、そうでないならまとまっていた方が効率が良いかな、と思いまして。

23 : ̄ー ̄)ノ :01/08/27 20:11 ID:KeujS.U6
とりあえずread.cgiに差分送信機能だけでも盛り込めないですかね
クライアントがIEだと難しいですかね

24 :音楽侍 ◆NtVkSITE :01/08/27 20:14 ID:cn52pBwI
>>22
ここは、サーバのミラーリング的手法だと思ったんですが。
P2Pとはちょっと違うと思います。
一緒にやるとたぶん混乱します。

25 :んななし :01/08/27 20:18 ID:wPSw05wY
>>10
というか、302にしないと、根スケ4.X(どれだったか忘れた)が、Locationを処理してくんないよ。

26 : ̄ー ̄)ノ :01/08/27 20:22 ID:KeujS.U6
サーバーのミラーリンクをBig-serverが許してくれるでしょうか・・

27 :名無しさん@お腹いっぱい。 :01/08/27 20:32 ID:RT358Ii.
すげ、、このコード
sub connect_soc 勉強に使わせてもらいます>>perler様 (^^
部外者しつれい ROMに戻ります

28 :Perler ◆GSi39OA6 :01/08/27 20:43 ID:95LP96f6
>>27
本来はモジュール使うべきところなんだけどね。。。>connect_soc

あと10分ほどで、index2.html作成部をアップロードできると思います。

29 :ななし :01/08/27 20:52 ID:ev7f8jX.
ひろゆきは今なにしてんだろ?、。
本人がでないと、かなり苦しいのでは?

30 :Perler ◆GSi39OA6 :01/08/27 20:53 ID:95LP96f6
ftp://210.170.170.131/incoming/perler/mirror/mirror.pl.1
ftp://210.170.170.131/incoming/perler/mirror/index2.pl

をアップロードしました。ディレクトリ構造は一緒です。

今のところ、index2.plは、ファイルスタンプをみてますので、多分sageに対応していないです。
sage対応は後ほど入れる予定。

mirror.plにコマンドライン引数が入れられるように改変中。

31 : ̄ー ̄)ノ :01/08/27 20:53 ID:KeujS.U6
ひろゆきと後Big-server側の人も来て欲しいね

32 : ̄ー ̄)ノ :01/08/27 20:58 ID:KeujS.U6
>>30
上のファイル無いけど?

33 :名無しさん@お腹いっぱい。 :01/08/27 21:00 ID:nDMTsrLE
>>30
>sage対応は後ほど入れる予定。
一時的かもしれんが、今みたいに TOP10 も表示せず
スレッド一覧だけ表示するようになれば、、、
sage機能要らないじゃん?

34 :27 :01/08/27 21:01 ID:Iph3USPw
なるほど、昨日のQuickhackといい勉強になりまくってます。
FW挟んでるんでテストに参加出来ないのが悲しいです。
度々しつれいします  今度こそROMに戻ります。

35 :Perler ◆GSi39OA6 :01/08/27 21:02 ID:95LP96f6
>>651
お疲れ様です。ありがとうございました。

36 :名無しさん@お腹いっぱい。 :01/08/27 21:03 ID:5zQpe5GQ
>>21
今会社から帰ってきたんで何のコードかさっぱりわからないんだが、

#### ソケット S をバッファするようにする
select(S); $| = 1; select(stdout);

これってバッファしないようにする。じゃないかな

37 :Perler ◆GSi39OA6 :01/08/27 21:03 ID:95LP96f6
>>32
すみません。mirror.pl.1入れなおしました。

38 : ̄ー ̄)ノ :01/08/27 21:10 ID:KeujS.U6
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror2.pl.1
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/index2.txt
あげておきました
でも、index2.plはindex2.txtにリネームしてます

39 : ̄ー ̄)ノ :01/08/27 21:12 ID:KeujS.U6
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror2.pl.1
じゃないですね
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror.pl.1
でした

40 :名無しさん@お腹いっぱい。 :01/08/27 21:36 ID:0cm50H8s
ところで ミラー側からpullするスクリプトができれば あとは本家側のread.cgi
とかで(ってか.htaccessのRedirectディレクティブでもいいんだっけ?)
リダイレクトさせればいいんだけど ミラーサーバをどこに置くのよ?ってのが
問題...... 本格的に動かしたら アクセス量は半端じゃないでしょう......

41 :音楽侍 ◆NtVkSITE :01/08/27 21:43 ID:cn52pBwI
なんか、うまく動いてくれないです・・・
error: open ./dat/tech/965815778.dat for writingで引っかかります。
いちおう、/dat/tech/は作ってあるのですが、datはあらかじめ必要なんでしょうか?

42 :名無しさん@お腹いっぱい。 :01/08/27 21:50 ID:tYWhFzr.
最終的な解決はp2pあたりが有望だけど、サーバ、クライアントの開発や環境構築と
deamonが動かせる環境の確保が必要なのでしばらく時間がかかると思われ。
こちらは、基本的には現行のhttpを使用して、鯖の確保と受け渡しcgiの作成のみで
サクッと運用しちゃいましょうがテーマでしょう。

ただし、全板キャッシュするとそれなりの容量と帯域を使うので、最大で数百人〜数千人が
利用しないと旨みが少ないし、板ごとのキャッシュじゃ2ch.netに振り分けの負荷が掛かる。
個人でこんなサーバを持つのは難しいので、対象はISP側のレンタルスペースが有望。
ただし、perl以外のcgiが許される所は少ないし、cronなんて・・・。

そのため、全投稿を受け付ける2ch.netのbbs.cgiへキャッシュ鯖への転送処理を入れ、
ミラー側では受け口となるmirror.cgiと、現行のread.cgiが走らすのが一番簡単そうな
感じがします。バケツリレー方式も可能だし、投稿ごとに送っても大丈夫。
ISP側の権利問題は、ミラー側で自由にフロントエンドを拡張できるので、その辺で解決。
あとは、ミラーのリンクを自動にしたら勝手に鯖は増えるけど、悪用されちゃうかな。
cgiもperl版を作れば、有志によるミラーが自然と増える気がします。

# ブラウザ側でも、JavaScriptでdatの展開しちゃえば、差分取り出しできそうですね

43 :Perler ◆GSi39OA6 :01/08/27 21:49 ID:95LP96f6
>>41
dat/tech/dat/が必要です。。

44 :名無しさん@お腹いっぱい。 :01/08/27 21:51 ID:vN9r/JlA
>>40
確かにそうですね。
とりあえず過去ログ参照だけでもミラー鯖にしたほうが
転送料は減るんじゃないかな。

最低限1鯖を10〜20のホストがミラーだな。
DNS ラウンドロビンだけじゃなくて 302 の Location で負荷分散
するなら、鯖数 50〜100 はいけるかな?
あんまりキャッシュ鯖が増えたら意味無くなるかな?
3段構成くらいにして、master→slave→cache とか。
こうすれば、master の負荷は結構減るかな。

速報板とか、アクセスの激しいのはどうするべきだろうか。

45 :音楽侍 ◆NtVkSITE :01/08/27 21:53 ID:92bYvmYA
>>43
あ、了解です。
ディレクトリなかったら自動で作る仕組みも欲しいですね・・・
(というか、書けって怒られてしまいそう)

46 :Perler ◆GSi39OA6 :01/08/27 21:55 ID:95LP96f6
>>44
>3段構成くらいにして、master→slave→cache とか。

これは視野に入れて開発してます。現行のmirror.plで対応可能。
というか、受け取ったデータをいじらずにそのまま
2ch.netと同じ階層構造で保存してやってるだけだけど。

47 :Perler ◆GSi39OA6 :01/08/27 22:05 ID:95LP96f6
取得の方がrangeに対応してませんが、閲覧の方は問題なくできるように
なってきています。

そろそろプロパガンダも兼ねて公開テストも行いたいんですが、
誰かCGI利用可能なHTTPサーバーで公開しても良いという方はいませんかね。。。

48 :名無しさん@お腹いっぱい。 :01/08/27 22:05 ID:0cm50H8s
>>44 DNSのラウンドロビンでやったらカキコのアクセスもミラーの方に
行っちゃうけど......bbs.cgiへのアクセスを本家側にリダイレクトさせれば
いいんだろうけど ミラー側のaccess_logにPOSTの記録が残るのを嫌がる
人が出てくるかも......ってかPOSTを他のホストにリダイレクトさせると
ブラウザが警告を出すんじゃなかったっけ?

49 :名無しさん@お腹いっぱい。 :01/08/27 22:09 ID:0cm50H8s
オレの自宅で使ってるプロバイダ(CATV)はサーバ立て禁止......
仕事先のを使ったらゴルァになるだろうし......

50 :名無しさん@お腹いっぱい。 :01/08/27 22:17 ID:vN9r/JlA
>>48
POST、というか bbs.cgi 周辺は全て master に置けば解決。
とは逝っても信用出来ない鯖だと、
html の FORM action URI を書き換えてしまう
かもしれんな。

51 :sage ◆qXAQxUxI :01/08/27 22:31 ID:LNUidRsc
やっぱりURL自体を分散しようよ。
1.Oracle使って同期レプリケーションを組んで、
2.WebAPサーバをDBサーバと同じ台数稼動。

52 :音楽侍 ◆NtVkSITE :01/08/27 22:34 ID:92bYvmYA
>>47
こっそり建てることは出来ますけど、公開となるとちょっと。

53 :49 :01/08/27 22:37 ID:0cm50H8s
>>52 同意(w まぁここの開発メンバぐらいしか来ないという確証が
あれば 仕事先のマシンにこっそり仕掛けることぐらいしても
バレないとは思うけど...... いや仕事先にバレるだけでなく
そのマシンがヘンなやつらに目をつけられちゃうと......

54 :age ◆AWcg9OTs :01/08/27 22:39 ID:LNUidRsc
>>52
確かに。うちもそう。
うちはインターリンクってゆープロバイダで
固定IPで立ててるけど、2chで公開なんか
しようもんなら、あまりのアクセスの多さに
文句くるだろうなあ。。。

関係ないっすけど、技術者集まって、一回
OFF会しません?

55 :名無しさん@お腹いっぱい。 :01/08/27 22:40 ID:eMjgyMpI
なんか NetNews のようなことができないかと考えてみたり。

56 :Perler ◆GSi39OA6 :01/08/27 22:43 ID:95LP96f6
そうですよね。。。
ただ、現状でも、スレ立てて閲覧はミラーサーバーを使うようにお願いすれば、ある程度の負荷軽減は
達成できるんじゃないかと思うので、2ch側に説得力を持たせるには、公開実験が良いと
思ったんですが。。。

別の板で募集かけてみるってのはどうでしょうかね?

57 :音楽侍 ◆NtVkSITE :01/08/27 22:48 ID:92bYvmYA
>>54
場所にもよりますけど、出席しますよ
>>56
それこそ、夜勤さんにお願いするべきでは?

58 :名無しさん@お腹いっぱい。 :01/08/27 22:51 ID:vN9r/JlA
IP 直書きでも whois でスグに身元が割れちゃうからなぁ…

鯖、無いことは無いんだけど、
個人的な鯖は回線細すぎだし
そうじゃないのは、ネットワーク管理者にばれるとダメだし…

59 :aki :01/08/27 22:54 ID:Z/nLX8Y2
うーむ。
さすがにさくさたん怒っちゃうかなぁ。

テストぐらいなら大丈夫だとは思うけど……。
http://www.gedoh.org/aki/2ch/mirror/

60 :音楽侍 ◆NtVkSITE :01/08/27 22:58 ID:92bYvmYA
>>59
akiさん、ありがとう。

61 :Perler ◆GSi39OA6 :01/08/27 22:58 ID:95LP96f6
>>59

あ、ありがとうございます。

index2.plも試してみてもらえませんか?
mirror.plと同じ階層に置いて、

index2.pl tech

とするだけです。mirror.plからも一応呼び出すようになってます。

62 :不実SUN :01/08/27 23:15 ID:gI46IMVY
はじめからキャッシュありき、で行くのは如何なものか?
さまよえるオランダ人キャッシュまで到達するのであれば別ですが。

63 :音楽侍 ◆NtVkSITE :01/08/27 23:18 ID:92bYvmYA
>>62
提案レベルを作ってるって事でしょ?

64 :名無しさん@お腹いっぱい。 :01/08/27 23:22 ID:vN9r/JlA
>62
人が1カ月に2倍以上くらいのスピードで増えていて、
gzip, last-modified の改造でも 45% 前後しか転送量圧縮出来ない
とくれば、後は金を作るか、転送量を減らすかしか無いですからねぇ…

金がどうにもならない以上、転送量減らさないと。
何か名案はある?>62

とりあえず文章後半の意味がよくわからん。

65 :名無しさん@お腹いっぱい。 :01/08/27 23:25 ID:odYgYVgQ
>>55
ttp://piza.2ch.net/log2/network/kako/945/945648512.html

66 :名無し娘。 ◆vP.bOZFQ :01/08/27 23:29 ID:ihlstQzQ
>>56
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998908559&ls=20
で募集かけてみました。ご報告まで。

67 :音楽侍 ◆NtVkSITE :01/08/27 23:38 ID:92bYvmYA
Perlerさん、index2.plですが、実行時間を記録する仕組みって組み込めますか?
ものすごく作業に時間がかかっています。

68 :Perler ◆GSi39OA6 :01/08/27 23:42 ID:95LP96f6
>>66
募集ありがとうございます。お手数掛けます。

>>67
index2.plがですか?
index2.plは一瞬で終わるはずなので、時間がかかっているのなら
どこかにバグがある可能性があります。

mirror.plは、index.datを入れておかないと、初回に全ログを採りに行くので
莫大な時間が掛かります。

ちょっと今日は明日早いので、寝てしまいます。計測は、

BEGIN{$EXT::time = time};
END{print time - $EXT::time}

とかじゃ駄目でしょうか?

69 :音楽侍 ◆NtVkSITE :01/08/27 23:44 ID:92bYvmYA
>>68
index2.plです。
どうも、2chにオリジナルを取りに行っている節がありますけど。

70 :Perler ◆GSi39OA6 :01/08/27 23:45 ID:95LP96f6
物凄いバグ発見。

$countをクリアしてないので、レス数がすごいことになってます。
恥ずかしいが、明日直します。$count = 0;埋めるだけだし。

71 :名無しさん :01/08/27 23:48 ID:aVpbFkaw
ROMで応援している者ですが、プログラマ辞めて8年もたってるので
インターネット云々には疎くお手伝いできそうもありませんが、情報のみなら・・ということで

この間無料HP探して見つけた所なんですが
http://www.nurs.or.jp/index.html
で借りれませんか?容量無制限、CGI可
「当会では「ネットワークのより自由で高度な応用」を研究テーマとして活動しております」
と書いていますが?
さすがに誰も自分のアドレス公開できんと思うので取りあえず。
 2ch入り初めて2週間くらい何で失礼ならすいません。

72 :Perler ◆GSi39OA6 :01/08/27 23:49 ID:95LP96f6
>>69

すみません、お手数かけますが、

ftp://210.170.170.131/incoming/perler/mirror/index2.pl.1

でやりなおしてみてもらえますか?

73 :音楽侍 ◆NtVkSITE :01/08/27 23:51 ID:92bYvmYA
>>72
了解です

74 :aki :01/08/27 23:58 ID:Z/nLX8Y2
実行してみました〜。

あと、YukiWikiから、衝突に強いTikiに移行しました。
http://www.gedoh.org/aki/2ch/tiki/

75 :名無しさん@お腹いっぱい。 :01/08/27 23:59 ID:plW.7Hb6
>71
そこ、おごちゃんのところじゃ無かったっけ?
2chのテストとなると、どうでしょ。貸してくれるかなあ。

76 :Perler ◆GSi39OA6 :01/08/27 23:59 ID:95LP96f6
さてと、今度こそ寝ます。テスト環境の件などなどでで私と直接連絡とりたい方は、

perler_2ch@hotmail.com

までお願いします。皆さん大変でしょうが引き続き頑張ってください。

77 :名無しさん@お腹いっぱい。 :01/08/28 00:01 ID:2PfKaiYI
>75
おごちゃん、散々イジめたからなぁ。この板で…

78 :_ :01/08/28 00:02 ID:W9iyzXDo
>71
nursさんか・・・
個人でML運営させてもらってるので、アカウント作ってもらったとこだ。
自分のメインのメールアドレスもnurs。
ただ、いつも load average 高いです。今現在は 4〜8程度。

知ってる人は知ってると思いますが、ここのrootはogochanです。


次100 最新50
名前: E-mail (省略可) :

read.cgi ver5.26+ (01/10/21-)