KmKb TeleVision

- 俺とお前とどどんとふ(3)~黎明編 (2013.02.15) -

どどんとふとの関わりを綴る誰得伝記その3

俺とお前とどどんとふ(3)~黎明編

2013.02.15(Fri) in Japan

バレンタインに浮かれる世の中に心象的爆撃活動を敢行していたらいつの間にか日が明けてましておめでとうございます。 後は3/14に3倍5倍10倍返しする男性諸氏をpgrし、その後クリスマス中止活動に勤しみたい所存。ぱーるーぱーるりぱるりらー♪ みんなー(ry

あ、あといまさらですが「●●編」の部分に特に意味はありません。

なぜむせたし

そもそも何故「むせる」なのかという点について。

「どどんとふむせる」 という名は、公開鯖を目的としてなかった頃に「バトルテック&ボトムズTRPG専用どどんとふ」を作るつもりで、用意してたものである。もちろん「むせる」はボトムズ(の主題歌の歌詞)が元ネタである。もう「むせる」と言えばボトムズである。バトルテックの元ネタの中にボトムズが含まれているかどうかは不明だが雰囲気的はむせるので問題ない。

ぶっちゃけ大きな意味は無い、という話である。

ドメインに関しても深く考えていたわけではなく、いざ公開鯖とする時に「せっかくだからドメインでも取ってみるかなー」と検索かけたら museru.com が空いてて取れてしまったというだけの話。空いてたということは需要がなかったんだろうということで、ありがたく使わせてもらっている。 口頭で伝える時は「むせる!どっとこむ!」と大きな声で力強く発音していただきたい。

自鯖ブームに反逆する!

「どどんとふむせる」を公開鯖とした頃は、インストーラーの公開もあって「自鯖どどんとふ」がちょっとしたブームになっていた。

「公式有志鯖が重い? じゃあ自鯖持とうぜ」

サーバー側さえ対応してれば「ポチっとな」で自鯖どどんとふがインストールできる環境が整う。インストーラー登場後、いくつのどどんとふ鯖が増えたのかわからんが、恐らく結構な数のオンセサークルが自前のどどんとふ環境を手に入れたはずである。大変めでたいことである。

そんな中、俺はまったく真逆の「快適な共有鯖」を目指していた。

自前で使う前提でもあったので自鯖ブームに乗っていたという意味ではあながち間違いではない。ただ、俺としては「そこそこ快適に使える共有鯖は必要である」という思いがあった。理由はシンプル。

オンセにだって「公民館」があっても良いジャナイ。

である。 オフでもそうだが、TRPGをプレイするにあたり最大の難関は「場所の確保」である。「人集め」はその次だ。

実のところオンセの場合、場所の確保そのものはさほど難しくは無い。 IRCやSkype、メッセンジャーなどグループチャットができるソリューションなら大概は対応できるし、 法人による専用サービスとして メガリスドライブ富士見のアレ が存在する。 富士見のアレに関して言えば、Fan+の制約さえなければポータルに成り得たレベルである。

そんな中で「どどんとふ」はちょっと立場が異なっていた。 あくまで「ソフトウェア」であり、サービスの提供は前提では無かったのだ。 公式とされるサーバー群も立場的には「有志提供のお試しサーバー」であり、「もっと快適に使いたければ自分で設置してね!」という先の自鯖話が出てくる流れとなる。

それはそれで間違ってはいない。 TRPG-SNSの日記 でもそう書いた。ただ、元構築屋としてはちょっともったいないという思いもあった。

自分の部屋を場所として用意し提供するには掃除やら何やらも含めた「コスト」がかかる。ならばそのコストを金で解決できる場所、すなわち「公民館」にあたるサービスがあっても良いのではないか。そう思ったのだ。

ね、簡単でしょ? の罠

CGIの設置は難しい。コピーしてポンと動くケースは稀であり、パーミッションの適切な設定を始めなにかしらの「手順」が必要になる。

サーバーに特化した各種手順書も存在する中で「何がそんなに難しいのか?」と思う御仁もいるだろう。 だがそれは「理屈をわかってる人の理屈」である。これだけ多種多様な環境が出揃う中で、この手の理屈を「理解」するには相応の時間と手間が必要だ。 俺に至っては(頭の出来はさておき)10年くらい携わってて未だに理屈の半分も理解できていない。

インストーラーはそこを大幅にカバーした。が、それでも万能ではない。それほどまでに世の中のレンタルサーバーの環境は多種多様に過ぎる。手順書にしてもサーバー側の仕様がちょっと変われば途端に内容が合わなくなるし、しかも「どどんとふ」のサーバープログラムはrubyである。 ruby製CGIをしっかりサポートできる安価なレンタルサーバーはまだ少ない上に、「どどんとふ」そのものについても(機能拡張を優先した流れがあり)安定性という面ではいくつかの課題を抱えている。

そんな状況で、CGI設置などに慣れぬ人間がハマるとどうなるか。シナリオ数本書けるレベルで時間を浪費し、最悪TRPGそのものをやる気力が削げてしまうだろう。大変な損失である。俺がもったいないと思うのはまさにそこなのだ。 ただでさえ労力が大きなGMに更なる負担、しかもTRPGとは関係ない方向での知識的負担をかけるのは現実的ではない。

「誰でも使えて」「そこそこ速くて」「TRPGプレイに専念できる」という環境。富士見のアレをやや残念な子として見ていた俺には「どどんとふ」はそれを可能にするソリューションに見えた。ぶっちゃけ金の匂いすら感じたほどである。

現時点で「むせる」で金を取るつもりはないが、取れるに越した事はないという思いは当然ある。 餅は餅屋、プログラムはプログラム屋。鯖と鰤は魚屋である。慣れた人間が得意な分野を担当し、コストを払い合って利益を得る。理想的な社会の構図である。

・・・がっ・・・ダメっ・・・!

そんなこんなでウハウハな未来も感じつつ動かしたら 前回 にある通りのザマである。

俺は元構築屋であるため「まずプログラムを触る」ということはしない。 rubyがわからんという点を差し引いても、いきなりパッケージを触るアプローチはよろしくない。そもそもパッケージ製品なら触る事すらNGである。なのでやることはただ一つ

「環境的ボトルネックを大きい方から潰す」

ことである。プログラムを触るのはその後で良い、というのが俺の持論である。 遅いうちに遅い要因を見つけておけば、後々のフィードバックにも役に立つ。 これがうっかり早いと後でパフォーマンスがガタ落ちした時にエラい目に合うのだ。

ちなみに開発元とサービス提供元が同じ場合はさっさとプログラマのケツを叩く方が早かったりする。 SQL一つで分レベルの処理が秒未満になることもあるし。

色々と試行錯誤し、結果的に100req/秒までもっていけた所で公開。リソースの50%を安定して動くレベルと考えた場合、「むせる」は100人乗っても大丈夫なんじゃないかなくらいにはなった。

ボトルネック対策の具体的な点についてはあまりゴチャっと書いてもアレなので要点だけ。正直これ以上書くこともあまり無い。

  • MySQL版は現状ではデメリットの方が大きいからFile版を使う。
  • rubyは1.9以上にする。
  • 再起動一発で安定するなら俺は再起動を選ぶぜ。
  • しっかりと面倒を見て、ちゃんと動いてたら褒める。

以上である。鯖はよく拗ねるため4番目は意外と大事である。なお、nginxはhttpdとしては優秀だが「どどんとふ」の動作パフォーマンスへの貢献度はそれほど大きくない。WASの部分を如何にサーバーに合わせて調整できるかが重要である。

「むせる」の現状

それなりの調整はできた。とはいえ、正直いって「むせる」が快適に動いてるかどうかは不明である。

ログイン人数が100人越えしても「一見まともに動いていた」らしい、という情報しかないし、ログを見ても「特に何事も無かった」程度の情報しかない。 一度えらい過負荷を食らったことがあるが、(ピーク時間帯じゃなかったこともあって)プレイする分には困らなかったようなので思った以上に頑丈な環境には仕上がったとは言える。後はアンケートでも取らないとわからん話だろう。

もっとも「どどんとふ」の場合、不安定な動作や再接続が必ずしもサーバー要因とは言えないためなかなか厄介である。 twitterのTLで散見される「重い」についてもどのサーバーの話なのか不明なことが多く、名指しで文句が出ないうちは問題ないんだろうと気にしないことにしている。

とりあえず普通に動いてるという前提で、「むせる」プロジェクトは次の段階に移る予定である。 その詳細は次回あたりで。

(つづく)