Twitterの大規模システム運用技術、あるいはクジラの腹の中(前編)~ログの科学的な分析と、Twitterの「ダークモード」
ワールドカップ日本代表を上回ったレイカーズの2連覇
John Adams氏。Twitterの初期から参加しており、アプリケーションサービスのリードエンジニアだと自己紹介。Twitterは現在、従業員が210名。
Twitterへのアクセスは、API経由が75%でさらに上昇中。
1日に6500万ツイートされており、1秒間だと約750ツイート。
最大負荷の瞬間は、ワールドカップで日本代表が得点したときの、秒間2940ツイートだったが、これを先日NBAで2連覇を達成したレイカーズが優勝したときの秒間3085ツイートが上回った。
オペレーションチームの役割
Webサイトの利用者数が500から数百万、数千万に増えると、最初に考えていた設計は有効ではなくなる。ある規模で有効な策は、その規模でしか有効ではないことを学んだ。サイトの設計を何度も考え直さなければならなかった。私たちはいまでもそうして何度もやりなおしている。
システム管理は「Sysadmin 2.0」という新しい役割へ
「モニタリング」は、Webサイトに何が起きているかを理解するために非常に重要だ。Twitterは重要なメトリクスをほとんどリアルタイムにモニタしている。もしもあなたがAPI経由でTwitterにアクセスするアプリケーションを開発しているのなら、同じようにデータを集めてTwitterとアプリケーション間でどのような通信が起きているのかモニタすべきだ。
きっと多くの人がRailsの性能の問題について聞いたことがあると思うけれど、私たちが経験した性能の面での問題についてRubyが直接関係したことはなかった。ガベージコレクション、レプリケーションラグ、SQLの問題、ほとんどはこれらが原因だった。
ダッシュボードとダークモード
「ダッシュボード」が、つねにモニタリングで最初に見る画面だ。ここで何が起きているのか、10個程度の重要なメトリクスについて見ている。ほかにもマーケティング部門はGoogle Analyticsも使っている。
うまく行ったのがシェルスクリプトで作った「Whale Watcher」スクリプトだ。Twitterのエラーとして、HTTP 503(Timeout)が発生するとクジラの画面が表れて、HTTP 500(error)のときはロボットの画面が表れる。過去60秒のあいだにこれらがどれだけ起きたかを集計してグラフ化している。これがとても役立っている。
関連記事
Twitterがログを科学的に分析してボトルネックを発見し、問題解決を行ったときの具体的な様子は、次の記事で紹介しています。 ●Twitterのクジラ解剖学、あるいは彼らがいかにサーバの処理能力を向上させたか また、Twitterが開発したフレームワーク﹁Gizzard﹂の解説は以下です。 ●Twitterが分散フレームワーク﹁Gizzard﹂公開! Scalaで書かれたShardingを実現するミドルウェア 大規模システムの運用については、Facebookの事例も詳細に解説した記事を過去に掲載しています。あわせて読みたい
Twitterの大規模システム運用技術、あるいはクジラの腹の中(後編)~Twitterのサブシステム「Unicorn」「Kestrel」「Flock DB」
≪前の記事
Red Hat Summit 2010 「クラウドのロックインをオープンソースで解いていく」戦略。JBOSSはRuby、PHPもサポートへ