Permalink
Fetching contributors…
Cannot retrieve contributors at this time
137 lines (80 sloc) 9.53 KB

ISUCON6 本選レギュレーション

(変更があった場合は変更内容をここに記す)

補足説明

スケジュール

  • 09:00~ 開場、受付開始
  • 09:45~ 開催挨拶、ルール説明
  • 10:00~ コンテスト開始
  • 18:00~ コンテンスト終了
  • 19:00~ 結果測定結果、表彰、講評
  • 19:30~ 懇親会へ

ISUCON6 本選ポータルサイト

本選進行は以下のポータルサイトからベンチマーク走行のリクエスト・結果チェックを行い進行します。 事前に連絡したポータルサイトのログインIDとパスワードを用いてログインしてください。なお参加者以外の人でもグラフとトップのスコアが参照できます。

このページは18時を過ぎると更新が止まり、Enqueueできなくなります。また自チーム以外の得点は17:00を過ぎると更新されなくなります。

チーム情報編集ページではグローバルIPv4アドレスを1つ登録できます。これが未登録の場合、ベンチマークキューにEnqueueすることはできません。

このページではベンチマーク走行の処理状況も確認できます。黄緑が走行中のベンチマークを示し、灰色が待機中のものを示します。ベンチマークが待機中もしくは実行中の間はリクエストは追加できません。

リソースグループについて

各チームは事前のメールによる案内で主催が指定した名前で作成したリソースグループを競技で使用してください。競技中にそのリソースグループを作り直すことは推奨しません。作り直しが必要になった場合、必ず以下を実施してください。

  • 主催が指定したリソースグループ名にてリソースグループを作成する
    • 同一名のリソースグループは作れないため、作り直す場合、もともとのリソースグループを完全に削除する必要があります
  • 新たに作成したリソースグループに 改めて 主催者のアカウントを招待してください
    • 共同作成者として、Microsoftアカウント isucon6f@gmail.com を招待してください
    • 以下のスクリーンショットのような状態になっていれば成功です(画像はisucon6qになっていますが、isucon6fになります)

上記の手順が完了できていない場合、追試をおこなえず、無条件で失格となります。

サーバ事項

参加者は各自が用意したMicrosoft Azure(以下Azure)アカウントを使用し、主催者が指定する方法で、Azure Virtual Machines(以下VM)のインスタンスを起動して使用します。指定と異なる設定のインスタンスを用いた場合、本選結果は無効となります。

本選実施に用いたインスタンスは実施後に主催者による確認作業の対象となるため、削除せず残すこと。 またその作業のため、参加者は"アクセス制御"設定にて、主催者が指定したMicrosoftアカウントを"共同作成者"として招待すること。

本選の競技及びその後の主催者側の計測で発生したAzure利用料は参加者の負担とします。

Azureアカウントに対する各種制限に関しては参加者の責任とします。競技中及び競技終了の確認作業中に、アカウント制限を理由としてスコアの計測が実施できなくなった場合であっても、それに対する救済措置は行いません。

サーバは各参加者に5ノードずつ割り当てられています。開始時点では01のみでアプリケーションが動いている状態です。

1. サーバー起動

サブスクリプションの制限がデフォルトで合計10コアまでなので、あらかじめすべてのVMを落とした上で競技用VMを起動する(競技に使うリソースグループだけでなく、同じサブスクリプションの他のリソースグループも)こと。

上記のボタンをクリックして 東日本 リージョンで作成してください。

サーバは5ノード存在するので全て起動していることを確認してください。開始時点では01のみでアプリケーションが動いている状態です。

2. アプリケーション動作確認

アプリケーションは各サーバの port 443 を経由してアクセスできます。ブラウザからアクセスする場合、証明書のエラーが表示されるので適宜無視してください。

3. ベンチマーク走行

本選ポータルからベンチマーク実行を要求するとキューイングが行われ、先にキューイングされたものから実行されます。実行内容の概要は以下の通りです。

  1. アプリケーション互換性チェックの走行 (適宜: 数秒〜数十秒、固定リクエスト数)
  2. 負荷走行 (60秒)

これらが順次実行されます。

参考実装の切り替え

各言語の参考実装は systemd で管理されています。デフォルトはPHP実装が起動しています。おおまかに以下の手順で切り替えます。

  1. 動作中の実装の停止 sudo systemctl stop isu.service
  2. docker-compose.ymlの切り替え cd /home/isucon/webapp; ln -sf docker-compose-go.yml docker-compose.yml
  3. 別言語実装の起動 sudo systemctl start isu.service

各言語実装には-devが付いているものと付いていないものが用意されています。-devは開発用であり、ベンチマークを走行させるとFAILするので気を付けてください。

ルール詳細

基本スコアは以下のルールで算出されます。またPOSTリクエストについてはレスポンスが返った瞬間からそのリクエストの要求する更新内容が反映されている必要があります。

  • POSTは20点、GETは1点
  • /api/stream/room/:id は Server-Sent Events の仕様に従っていれば挙動を変えても構わない
  • streamはPOSTされた結果が2秒以内に到着すれば1点
  • 減点は無い
    • レスポンスにエラーがあった場合、ベンチマーカーが送るリクエスト量が減るのでスコアが上がりにくくなる
    • クリティカルなエラーならFAILになる

より高いスコアを記録したチームが高成績と判定されます。最終的な順位にはコンテスト中(18時を超えたものも含む)の点数が使われます。

レギュレーション

以下の事項を守ってください。違反した場合は失格とします。

  • 参加者の作業対象サーバは主催者に与えられた5ノードのみとし、ベンチマーク負荷の処理の目的ではその他のいかなる計算機資源の使用も禁止する
  • データ変換等の目的についても、主催者から与えられた計算機以外のものを使用してはならない
  • 外部のメトリクス計測サービスの使用のみ特例として許可するが、スコアを向上させるいかなる効果も持つものであってはならない

以上の条項に抵触しない範囲の作業は全てを認めます。ベンチマークが失敗を検出しない限りはスコアが認定されます。 しかし参加者の環境の破壊については主催者はいかなる救済も行いませんので、参加者の責任においてサーバ環境およびソフトウェアの変更を行ってください。

再起動条項

アプリケーションはサーバ再起動後、起動前のデータが復元され、自動的に正常動作するようになっている必要があります。これは採点作業(後述)時のチェック対象となります。

採点作業

競技時間中に計測され、登録された計測値によって、最終的な順位の決定が行われます。計測値は時間内の最後に登録された値を用います。

18時に作業を打ち切ったのち、主催者はベンチマーク成績の追試、ならびにデータ永続化に関するチェックを行います。 Failと判定されたチームは順位から除外されます。

コンテスト中(18時を超えたものも含む)に最も高いスコアを記録したチームを優勝とし、以下順位を決定します。

特別賞

作業時間中に計測したスコアを用いて、以下の条件を最も早く満たした1チームに特別賞を与えます。

  • Failせず15万点を最も早く記録すること

禁止事項

他チームへの妨害など、競技の円滑かつ健全な運営を妨げる全ての行為を禁止します。