ISUCON公式Blog

WINNER'S PRIZE \1,000,000



   

ISUCON7 予選、出題者チームにてインフラ担当をしている KLab 横川です。

まず、ISUCON7 予選にご参加していただいた多くの皆様、ありがとうございました。
大事な予選にて 1 日目、2 日目ともに開始時刻の遅延という重大なトラブルを発生させてしまったことをお詫び申し上げます。特に予選1 日目の方は告知していた開始時間から 3 時間も遅れてしまい大変申し訳ありませんでした。

このエントリでは、今回の開始時間の遅延原因についてお伝えいたします。

予選のサーバー、ネットワーク構成

まず、問題の概要に入る前に予選のサーバー、ネットワーク構成について紹介します。

予選に参加された方はすでに御存知の通りだと思いますが、今回の予選での構成は 1コア、1GBメモリ、20GBディスクで構成されたサーバーが 3台からなっており、それぞれ別々にグローバルIPを持ってインターネットに接続されながら、内部でのデータベースなどの通信のためにローカルのスイッチでも接続してある構成です。少し複雑な構成ですが、これはリハーサルなどを実施した際に外部ネットワーク経由で遅延が見られたことなどからデータベースは別ネットワークを利用しようということでこの構成になりました。

この構成を今回さくらさんからご提供してただいている「さくらのクラウド」で実現するためにサーバー(+ディスク) スイッチのサービスを利用させていただきました。

また、手動で管理するのは大変ですので、基本的な構築作業は Terraform for さくらのクラウド を利用しています。これはオーケストレーションツールである Terraform からさくらのクラウドを操作するためのプラグインで、利用マニュアルも充実しており、新機能への対応の速さなど含めてとても便利に使わせていただきました。これがなければ恐らくこのような複雑な環境を大量に構築することは難しかったでしょう。作者の方には本当に感謝の言葉しかありません。

ただ、そのままでは予選環境としてさくらさんに用意していただいた専有ホストが利用できないので、 もう一人の予選インフラ担当で去年の優勝メンバーの一人であるはてなの @kizkoh が本家のマージされていないプルリクエストなどから必要機能を実装してくれました。(感謝!)

概要

今回の ISUCON では嬉しいことに参加チームは 400 チームを超えました。

ただ、これだけ参加していただけるチームがあるということは、上記のような構成を 予選1日あたり約 200 チーム分、サーバー台数では約 600 台も用意する必要があるということになります。

この二日間合計 1200 台を用意するのに、我々は完成したデプロイ済みアーカイブ(ディスクイメージを固めたもの)から作成することにしました。1200 台のサーバを先に用意して、それらに対して変更のあったアプリなどをデプロイするという方法も考えなかったわけではありませんが、1200 台のデプロイをうまくするより完成したアーカイブからきれいなサーバーを作成するほうが途中の切り戻しなどで管理が容易なのではないかと考えてこの形を取りました。

本題の実際の参加者向けサーバー構築は、最終リハーサル完了後の前日夕方より作業を開始し最大12時間程度を見込んでいました。これはそれまでの経験上、terrafform を使ってサーバ構築をする際に1時間に 50 から 60 台程度のサーバーを用意することができていたので予選 1日分つまり約 600 台を用意するのに最大で 12 時間、チームごとに作成できるようにしているので並列で実行すれば数時間程度で終わると考えていたためです。

ところが、本番前日に実際の構築作業をはじめてみるとこの目論見はそれほど甘くないことがわかりました。まず、並列での作成に関してですが、terraform から利用するサーバーやディスクの作成 API にスロットルがかかっていて、並列に作成して時間を短縮し翌日に備えるという目論見は脆くも崩れ去りました。それでも開始時間までには全てのサーバーの作成を完了できると見込んでいたのですが、残り百台強を準備すれば完了となる早朝時間帯から午前中にかけては API が混み合っている時間帯となっているようで当初に期待していたような速度で作成ができない時間が数時間続いてしまいました。

原因

この問題の大きな原因は我々インフラ担当者の 1200 台というサーバ台数に対する見積もりの甘さにあります。

予選当日の環境を作るまでは、検証などを目的として 100 台弱までしか作成した経験がありませんでした。ただ、その延長で今回必要な 1200 台を用意できると考えていたのです。そして今回は環境作成後に変更が入ることを嫌ってここまでは大丈夫だろうとぎりぎりまで環境構築作業を遅らせたのですが、その甘かった見積もりから環境構築を実施する作業時間を出して、マージンもほとんど取っていなかったために今回の事態を引き起こしてしまったと考えています。

本選にむけて

今回、予選に参加された方々には ISUCON に対してマイナスな感情を持たせてしまったのではないかと、今までこの ISUCON を作り育ててくださった方々や今回一緒に予選を準備した他のメンバーにも本当に申し訳なく思っています。

予選でのこと教訓として、本選では参加していただいた全員に今回の ISUCON もやはり良かったと言ってもらえるよう、これから @kizkoh とともにしっかりと準備を進めていこうと思います。
Read more...

ISUCON7 本選出場者が予定よりも早く決まりましたのでお知らせいたします。
今回のオンライン予選は合計407組、1132名の皆さんにご参加いただきました。

本選への出場枠についておさらいです。LINE株式会社 新宿ミライナタワーオフィスにて開催される本選出場へ参加する30チームの選出条件は以下となっています。

・予選各日の終了時スコアにおける上位3チーム
・予選両日を通し、1の該当チームを除いた中での上位12チーム
・予選両日を通し学生枠参加チーム内における上位12チーム
 ※ただし、学生チームが一般枠の基準で通過した場合、学生枠はそのチームを含めずに12チームを選出する

それではISUCON7 本選出場30チームを発表いたします。

1日目 上位3チーム
・MSA 368,444
・チーム新卒 268,588
・都営三田線東急目黒線直通急行日吉行[学生] 256,120

2日目 上位3チーム
・†空中庭園†《ガーデンプレイス》 588,107
・スギャブロエックス 522,461
・fujiwara組 481,024

両日3チームを除いた上位12チーム
・予算ZERO 383,085
・白金動物園 314,995
・takedashi 266,585
・円山町 262,143
・negainoido 228,772
・ソン・モテメン・マサヨシ 221,823
・railsへの執着はもはや煩悩の域であり、開発者一同は瞑想したほうがいいと思います。 217,457
・oops 216,923
・チームinarisan 215,280
・にるぽ 214,613
・焼肉ジャンボチキン 212,464
・LGTM☆ 210,472

学生枠上位12チーム
・人は何故生きるのか 184,340
・チーム名を考えるのが苦手すぎる 89047
・NaruseJun 76,068
・ML 75,346
・ひでおとゆかいななかま 65,370
・ばとるびーだまんって知ってる? 54,228
・kstm 49,956
・百万円ドリブン 48,950
・Akumi's Lab 44,980
・座るだけのコンテストってな〜んだ? 44,812
・何もしちょらんのに壊れた 40,088
・tmp 39,612


なお、以下の2チームは最終スコアが上位12チームに含まれていましたがそれぞれ下記の理由により失格となりました。

・闇に飲まれよ
予選終了時スコア: 218,867
理由: 再起動後選択されたサーバにアクセスできなかった。 app3553 で nginx も app も enable されていなかった。

・5000兆円欲しい!
予選終了時スコア: 44,016
理由: 再起動後のチェックにて、アイコン画像が取得できていませんでした。


以上です。
本選は11月25日(土)に LINE株式会社の新宿ミライナタワーオフィスにて行います。本選参加は当日お越しいただける方のみとし、オンラインでの参加は不可とします。また、予選と本選でチームメンバーの交代は出来ませんのでご注意ください。

本選出場チームの代表の方へはあらためてご連絡いたしますので、お待ちください。オンライン予選にご参加いただいた皆さん、まことにありがとうございました。
Read more...

ISUCON7 参加者の皆さんお疲れさまでした!
早速ですが、オンライン予選2日目の本選出場チームとなります。

1位 †空中庭園†《ガーデンプレイス》 (ryotarai,eagletmt,mozamimy)
2位 スギャブロエックス (gfx,sugyan,kazeburo)
3位 fujiwara組 (fujiwara,acidlemon,handlename)


予選参加者の皆さんには別途アンケートをお送りしますが、まずはお疲れさまでした!本選出場の確定は来週を予定しておりますが、その間にでも是非ブログなどで ISUCONオンライン予選に参加した感想など書いていただければと思います。


今後ですが
・利用言語比率
・オンライン予選の問題とベンチマーク公開
・解説と講評
などを当ブログにて掲載予定です。


予選の様子はこちらでまとめています
ISUCON7 オンライン予選 Tweet まとめ#isucon - Togetterまとめ
Read more...

↑このページのトップヘ