雪だるま作戦

提供:5ちゃんねるwiki
ナビゲーションに移動 検索に移動
この作戦自体は、2010年に(「休止」名目で)終了しています。

雪だるま作戦とは、負荷分散システムを構築する作戦です。

概要・目的

実況板を(外見上で)全て同じサーバに入れよう、という作戦。 (実際には複数のサーバに入れ、それを統合させて負荷を分散する)

2005/01/07に作戦開始。

live22系(2005/07/07〜2006/12/21)、snow(実験機、2005/12/27〜2009/09/02)、news20系(2006/05/06〜2007/11/21)、live23系(2006/05/18〜2010/06/14)、live24系(2006/12/18〜2010/06/14)を輩出した。

サーバ運用方針を高性能サーバ1台に集約する方向へ転換し、2010/06/14に作戦休止。 「一羽の鴎作戦」へ移行した。

今後は、1台構成でbbsdを使用する「ローカル雪だるま」運用もありうる。

現状

作戦休止中。

導入されているサーバでは、各板のindex.htmlの最下部に「Snowman system / bbsd (更新日時)」が表示される。

開発経過

■新春特別企画「雪だるま作戦」liveサーバの飛躍なるか!? Part1

1 :FOX ★:05/01/07 03:19:00 ID:???
■ 新春特別企画「雪だるま作戦」liveサーバの飛躍なるか!?

巨大Live専用サーバの構築

live系のサーバは台数投入したところで、ほとんど遊んでいる
サーバ + 一台の負荷が高くてアクセスできないサーバという
悲惨な状況になっちゃうので、複数のサーバを巨大な一台と見立てて
なんとかならんものなのかを模索するー。

【Step1】四台のbananaサーバで 現 live8/live16/live18 を全部収容する。

◆ 雪だるま作戦に思いを馳せながら雑談するスレッド

1 :FOX ★:2005/05/26(木) 03:06:34 ?###
2ちゃんねる全体で 240万投稿/day
1サーバで 50万投稿/day
1,300投稿/min 等を達成した peko 作戦が完了し

いよいよ次は 雪だるま作戦
目標は live系の板を1サーバに入れる。
最速 1,000スレは 15sec以内。
こんなとこかしらん 

2ch特化型サーバ・ロケーション構築作戦 Part19

3 :root▲ ★:2005/07/21(木) 04:12:56 ID:???0 ?###
即死逃れのために、少し何か書いておくか。

<雪だるま作戦について>
バックエンド側でリクエストを受け付け、書き込み関連プロセス、
subject.txt subback.html index.html 作成等の処理を一元的に行う
bbsd(bbs daemon)が◆cZfSunOs.Uさんの手により日の目を見、
実現に向けて動き出した。

フロントエンド側とバックエンド側でファイルの共有(バックエンド側にある
datファイル、subject.txt等)を、フロントエンド側から見られるようにする
必要がある)については、各種の方法があるうち、まず最も安易に実現
可能なNFS(Network File System)を試してみたが、FreeBSDのNFS、
特にクライアント側の実装上の問題により、NFSでの共有は断念する
こととなった。

現在、Apacheのプロキシ・キャッシュ機能を活用する方向で、
この問題の解決を図ろうとしている。

4 :root▲ ★:2005/07/21(木) 04:17:51 ID:???0 ?###
(続き)
bbsdのほうはかなりの投稿数をさばげることが判明しており、
現在の状況で既に、1スレに対し15秒で1000投稿をさばくことが
可能であることが確認できている。

また、index.html subback.html subject.txt を bbsd が常に監視し、
一元的に管理することになるので、完成した暁にはいわゆる「板とび」の
リスクを低減することも可能になる(復帰の手間が少なくなる)という効果も
期待できる。

なおbbsdは雪だるまサーバだけではなく、単品での利用も可能なので、
技術的には2ちゃんねるのすべてのサーバにおいて、活用が可能である。

ただし、各種スクリプト(いわゆる呪文)をbbsd対応にする必要があるため、
全サーバへの完全導入のためには、各種呪文間の整合性をとる必要が
あることはいうまでもない。そしてそれは2ちゃんねるの構造上、実は容易ではない。

解説

見出しショートカット

  1. 雪だるま鯖(live22x)は物理的には以下の6台で構成されている。
    1. ファイル読み書きをするバックエンド(live22)
    2. リクエストを処理していろいろ判断するフロント(live22x1/live22x2/live22x3)
    3. どのフロントに振り分ければいいか判断する受付係(live22b1/live22b2)
  2. 書き込みや読み出しのリクエストがあると、まず受付係がどのフロントを使うか振り分け、フロントがバーボンとかRockとかの判断をし、バックエンドで読み書きする。
    それぞれの役割に専念できるようにチューニングしてあるから、以前の実況鯖とは比較にならないパフォーマンスを発揮する。
    (たとえば最速1000は、当時単独最強鯖のex10でも40秒台だったのに対してフロント1台の雪だるま鯖でその3倍、フロント3台はさらに3倍の結果を出した)
  3. 昨夜(2005/12/08)落ちてたのは受付係の2台。これは片方が落ちればもう片方が自動的に入れ替わって処理を続けその間に落ちた方は自動的に復帰、という動作をするはずなのだが、どういうわけか肝心の振り分けをするソフトがバグを踏んで死にっぱなしになり、2台同時に落ちる状態が続いた。
    この部分は現在見直し中の模様。OSのバージョンとの相性が疑われている。
  4. 受付係が動かなくてlive22x全体へのアクセスができないというだけだったから、ユーザ側で直接live22x1〜x3を呼び出せばアクセスはできた。
    しかしそれでは自動振り分けを前提としたlive22xとしてはうまく機能しないので、今は振り分け処理を一時的に中断して、live22xはlive22x1が受付係を介さずに直接担当している。
    (結果としてlive22x2/live22x3は遊んでいる)

ついでに snow.2ch.net は雪だるま実験用サーバ(tiger506.maido3.com)

チェック

・ファイルの単位
A 板ごとに一つ(1単位)
B サーバごとに一つ(1単位)
...
Z その他

・更新頻度
a たまに
b 1日に1回
c 1スレ立つごとに更新
d 1書きこみごとに更新
...
z その他

(イメージをつかんだいただくための例)
1-A-a SETTING.TXT
1-B-a キャップのデータ(news18, news19を除く)
1-A-d timecount/timecloseのデータ
1-B-d Samba24のデータ

ということで要素を洗い出して、こんなふうに場合わけして、そのうえで、

一) バックエンドで一元管理しないといけなそうなもの
二) バックエンドにある原本を、ゆっくりフロントエンドに配布すればよいもの
三) 別のところで作ったものを、フロントエンドに個別に配布すればよいもの
...
百) その他

[1-1] 1-A-a SETTING.TXT 二
[1-2] 1-A-b IDを作るための種ファイル 一
[1-3] 1-B-a index.htmlの広告ファイル1 四
[1-4] 1-B-a index.htmlの広告ファイル2 四
[1-5] 1-B-a ●規制用ファイル 三
[1-6] 1-B-a リモホ規制用ファイル 三
[1-7] 1-B-a Rock54用データファイル 三
[1-8] 1-C-a bbspinkのみの広告ファイル 四
[1-9] 1-A-c スレッド立てすぎです、のための記録用ファイル 一
[1-10] 1-A-d timecount/timecloseのための記録用ファイル 一
[1-11] 1-B-a キャップのデータ(news18, news19のみ1-A-a) 二
[1-12] 1-B-c ●でスレッド立てすぎです、またにしてくださいの作業用ファイルとフォルダ 一
[1-13] 1-B-d Samba24の作業用ファイルとフォルダ 一

各種呪文

手動もの

  • 復帰系
  • レス削除
  • 透明削除
  • スレ削除
  • スレ移動
  • スレスト・スレスト解除
  • サーバまたぎ移動(もうあるのかな)
  • 手動むぎゅ

自動もの

・F22

  • dat落ちの際に復帰がかかっている
  • いろんなお掃除系

そのほか(実装済み)

  • 指定したdatをageる => スレッド924で使用
  • 指定した板のdat数を得る => ごめんなさいリミッターで使用
  • 指定したファイルをtouchする => キャップのあぶり出しで使用

短期目標

次期目標

どんな負荷でも落ちないように強化

連絡のつくスレ

現在は、ありません。

過去ログ

メインで関わっている人

FOX ★、root▲▲ ★、◆cZfSunOs.U