さくらから見たmstdn.jp移行の舞台裏とMastodonの可能性
自宅サーバーからさくらのクラウドへ!mstdn.jpとの2週間をさくらの2人に聞く
2017年05月02日 07時00分更新
現時点でのMastodonの課題はキューイング
大谷:それにしてもMastodon自体は、まだまだ謎に包まれているところも多いですよね。
鷲北:僕も大慌てでMastodon勉強しています(笑)。昨日はMastodonインスタンスを立ちあげるピクシブさんのセミナー※にも参加して、構成もだんだん理解しつつあります。
※インタビュー前日の4月25日、ピクシブはMastodonインスタンス「Pawoo」をテーマにしたイベント「pixiv Night #04」を開催した。Pawooは構築開始から10時間でリリースされたMastodonインスタンスで、ユーザー数はすでに10万人を超えており、世界最大級のMastodonインスタンスに成長している。
ただ、結果としてわかったのは、やはり非常に難しいということ。以下は、セミナーの受け売りですが、まずMastodonのコアになっているのは、Ruby on Railsのエンジン部分とメッセージをキューイングしている大量のSidekiqサーバーです。ここでの潜在的な問題はMastodonのプロトコル。誰かがトゥートを投げると、律儀にも全フォロワーに対して1つずつメッセージを投げるんです。その結果、SidekiqサーバーにN+1のキューが積まれ、全部配信されるまでキューに残ります。なので、とんでもない負荷がキューにかかります。
大谷:それはちょっとヘビーですね。
鷲北:ピクシブさんは、こうした性能の問題は、自分のMastodonサーバーだけ解決すればよいのではなく、すべてのインスタンスを改善しなければならないとおっしゃっていました。そのためにどんどんパッチを送っていらっしゃるそうです。
大谷:なるほど。インフラが潤沢じゃないと厳しそうですね。
鷲北:実際、ピクシブのMastodonであるPawooは非常にリッチなサーバー環境で、多数のSidekiqサーバーが用意されています。一方のmstdn.jpのユーザーもすでに9万を超えていますし、トゥートの数も100万を超えているので、キューが増え続けています。だから、ぬるかるさんは、日夜カスタマイズとチューニングを手がけていると思います。ただ、これって単純にサーバーを増やすだけでは、解消しません。
大谷:となると、やはり課題はキューイングのところなんですね。
鷲北:そうですね。ピクシブさんのイベントではプロトコルをいじらず、キューイングの性能を上げるためにGo言語で書き直そうという提案もありましたし、プロトコル自体を見直そうという話も出ました。コミュニティの同意も必要だし、時間もかかると思いますが、どちらもいい方法。必ずや課題も解決されると思えるいいイベントでした。
インフラ事業者としてできることをやってドワンゴさんに引き渡したい
大谷:現状は事業者としてmstdn.jpでサポートしていることありますか? なかなか難しいと思うのですけど。
鷲北:クラウドサービスって、ある日数百台のサーバーが立ち上がって、その日のうちに収束するみたいな世界です。でも、事業者側からは、なにに使っているかわからないし、イチイチ追っていられない。mstdn.jpも基本は同じ。押しかけて、いじらせろというのはさくらのスタンスではないので、ただはらはらしながら見ています。
そんな中、われわれが唯一やっているのは運用面のサポートですね。CPUやメモリの監視であれば、ぬるかるさんに手間をとらせず可視化までできますし、トリガーを設定して、異常が発生したら、メールを送るとかも可能です。今はわれわれがデータセンターで使っている環境を、ぬるかるさんのところに入れさせてくださいと提案し、1週間経ってようやくそのお手伝いが始まったところですね。
大谷:インフラ事業者としてできることをやっているんですね。
鷲北:利用状態の可視化ができれば、どこが詰まっているのか把握できるので、改善する箇所がわかります。いまぬるかるさんはまさにそれを手探りでやろうとしているので、そこはお手伝いしたいなと。ぬるかるさんがドワンゴに入社する5月8日までにそれを作って、ドワンゴさんにお渡しできれば、インフラの部分でわれわれができることができたかなと思います。