ISUCON公式Blog

WINNER'S PRIZE \1,000,000

  
      
  
   

オンライン予選

   

2021年8月21日(土) 10:00-18:00

   

オンライン本選

   

2021年9月18日(土) 10:00-18:00

  
  
ISUCONの過去問に
チャレンジするための
シンプルな環境構築
商標「ISUCON」利用の
ガイドラインはこちら

9月7日 12:50 本選の選出方法を一部変更(同スコアだった場合の選出基準を追加)
9月5日 19:30 本選の選出方法を一部変更(予選各日で選出される上位3チームを5チームへ変更)
9月4日 ソフトウェア事項の外部リソースについて一部変更
8月5日13:30 提供されるアプリケーション言語について追記
---

参加者

予選参加者(以下参加者)はチームで登録するものとし、チームは1名、2名、もしくは3名での登録とする。 予選参加者は予選の第1日目、第2日目のいずれかのみに参加することができる。

連絡手段

参加登録時に入力した代表者のメールアドレスを主催者からの連絡先として利用する。 返答が必要な連絡に対して返答が得られなかった場合、当日競技環境を提供できない可能性があるため、定期的なメールチェックを行ってください。

競技時間

  • 予選第1日目: 2019年9月7日(土) 10:00〜18:00(JST)
  • 予選第2日目: 2019年9月8日(日) 10:00〜18:00(JST)


  • 禁止事項

    以下の行為を特に禁止する。
  • 予選第2日目の競技終了時間までに、予選出題内容に関するあらゆる事項(問題内容・計測ツールの計測方法など)を公開・共有すること ※ただし主催者が公開している情報は除く
  • 主催者が他チームへの妨害とみなす全ての行為


  • サーバー事項

    参加者は各自が用意したAlibaba Cloudアカウントを使用し、主催者が指定する方法で、Alibaba Cloud Elastic Compute Service (以下ECS)のインスタンスを起動して使用する。インスタンスタイプおよびその他設定内容については、事前及び当日のマニュアルにて詳細を指定するので従うこと。指定と異なる設定のインスタンスを用いた場合、予選結果は無効となる。

    予選実施に用いたインスタンスは実施後に主催者による確認作業の対象となるため、削除せず残すこと。予選終了後の確認作業に必要な作業は事前及び当日のマニュアルにて詳細を指定するので従うこと。

    予選の競技及びその後の主催者側の計測で発生したAlibaba Cloud利用料は参加者の負担とするが、ISUCON9で使用する範囲の利用料をカバーできるクーポンを付与する。付与方法や手順については別途アナウンスを行う。指定されたインスタンス以外のサービスを注文する場合の利用料金は各自の負担とする。

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

    ソフトウェア事項

    コンテストにあたり、参加者は与えられたソフトウェア、もしくは自分で競技時間内に実装したソフトウェアを用いる。 高速化対象のソフトウェアとして主催者からWebアプリケーションが与えられる。 どのような言語版が提供されるかは事前にアナウンスするが、各々の性能が一致することを主催者は保証しない。 どれをベースに用いてもよいし、独自で実装したものを用いてもよい。

    8月5日13:30 追記
    主催者から提供されるアプリケーションは Go , Perl , PHP , Ruby , Node.js , Python とする。

    競技における高速化対象のアプリケーションとして与えられたアプリケーションから、以下の部分は変更しないこと。
  • アクセス先のURI、ただしサーバー側で生成する部分(IDなど)は文字種([0-9] や [0-9a-zA-Z_] など)を変えない範囲で自由に生成しても良い
  • レスポンス(HTML)のDOM構造(表示に影響しない範囲での空白文字の増減は許可される)
  • JavaScript/CSSファイルの内容
  • 画像および動画等のメディアファイルの内容

  • 各サーバにおけるソフトウェアの入れ替え、設定の変更、アプリケーションコードの変更および入れ替えなどは一切禁止しない。 ベンチマーク中に利用が認められたサーバー以外の外部リソースを使用する行為(他のインスタンスに処理を委譲するなど) は禁止する。 ただしモニタリングやテスト、開発などは、PCや外部のサーバーを利用しても構わない。
    ※9月4日 "ベンチマーク中に与えられたサーバー以外の外部リソースを利用する行為"→"ベンチマーク中に利用が認められたサーバー以外の外部リソースを使用する行為"に変更

    許可される事項には、例として以下のような作業が含まれる。

  • 複数台あるサーバーの役割の変更
  • DBスキーマの変更やインデックスの作成・削除
  • データベースに利用するミドルウェアの変更
  • キャッシュ機構の追加、ジョブキュー機構の追加による遅延書き込み
  • 他の言語による再実装

  • ただし以下の事項に留意すること。

  • コンテスト進行用のメンテナンスコマンドが正常に動作するよう互換性を保つこと
  • サーバ再起動後にすべてのアプリケーションコードが正常動作する状態を維持すること
  • ベンチマーク実行時にアプリケーションに書き込まれたデータは再起動後にも取得できること


  • 採点

    採点は採点条件をクリアした参加者の間で、性能値の高さを競うものとする。 予選参加者に提供される性能計測ツールに参加者が実行リクエストを送り、その後ツール側から計測用の処理が実行される。 採点条件・性能値・性能計測ツールについての詳細は、予選当日のマニュアルに記載する。

    本選出場チームの選出

    競技時間中に計測され登録された計測値によって、本選出場チームが選出される。 基本的に、計測値としては時間内の最後に登録された値を用いる。 最後に提出したスコアがFailしていたチームは、失格となる。
    最終スコアが同一だった場合、最高スコアが高かったチームを選出する。最高スコアも同一だった場合は、最高スコアを出した時間が早いチームを選出する。

  • 予選各日の終了時スコアにおける上位5チーム
  • 予選両日を通し、1の該当チームを除いた中での上位20チーム

  • ※9月5日 19:30 選出方法を一部変更(予選各日で選出される上位3チームを5チームへ変更)
    ※9月7日 12:50 本選の選出方法を一部変更(同スコアだった場合の選出基準を追加)

    学生の出場についての補足

    ISUCON4からISUCON8まで設定されていた「学生枠」について、ISUCON9では設置しない。ただし、従来提供していた学生向けの支援プログラム「日本国内から参加する学生は本選出場時、関東圏以外に在住している方を対象に交通費と宿泊費を支給」については継続する。なお、支給される金額はLINE社が各エリアごとに設定した金額とする。

    備考

    予選終了後、主催者はサーバーに対して再起動を含む追試をおこなう。 複数台のサーバーを使用していたとしても、サーバーを再起動する順序は保証しない。 ここで、アプリケーションが正常に動作しない、あるいは予選結果として登録されたスコアに近い結果が再現されない場合、ベンチマークの結果に捏造があると判断される場合には、判断基準の公開と共にそのチームは失格とする。 失格が発生した場合、適宜繰り上げをおこない、本選出場チームを選出する。
    Read more...

    2018/09/15 9:55 サーバー事項を一部訂正

    参加者

    予選参加者(以下参加者)はチームで登録するものとし、チームは1名、2名、もしくは3名での登録とする。 予選参加者は予選の第1日目、第2日目のいずれかのみに参加することができる。参加者は「一般枠」「学生枠」のいずれかに登録すること。

  • 学生枠: チームメンバー全員が学生・生徒であること(年齢は問わないが社会人学生は対象外とする)
  • 一般枠: 学生枠に該当しない参加チーム

  • 学生枠に該当するチームが一般枠に登録することはできる。

    連絡手段

    参加登録時に入力した代表者のメールアドレスを主催者からの連絡先として利用します。 返答が必要な連絡に対して返答が得られなかった場合、当日競技環境を提供できない可能性があります。 定期的なメールチェックをお願いいたします。

    競技時間

  • 予選第1日目: 2018年9月15日(土) 10:00〜18:00(JST)
  • 予選第2日目: 2018年9月16日(日) 10:00〜18:00(JST)

  • 禁止事項

    以下の行為を特に禁止する。
  • 予選第2日目の競技終了時間までに、予選出題内容に関するあらゆる事項(問題内容・計測ツールの計測方法など)を公開・共有すること※ただし主催者が公開している情報は除く
  • 主催者が他チームへの妨害とみなす全ての行為

  • サーバー事項

    サーバーは、主催者で用意する。 パスワード認証でsshできるように構成されており、サーバーのIPとログインに必要な情報は当日用意されるポータルサイトからを確認できる。

    サーバーは sudo reboot コマンドで再起動できるが、停止した場合は参加者側からの起動はできない。 (その場合は運営からの救済措置は保証しない。)

    ソフトウェア事項

    コンテストにあたり、参加者は与えられたソフトウェア、もしくは自分で競技時間内に実装したソフトウェアを用いる。 高速化対象のソフトウェアとして主催者から Perl, Ruby, Python, PHP, Node.js, Go によるWebアプリケーションが与えられる。 ただし各々の性能が一致することを主催者は保証しない。 どれをベースに用いてもよいし、独自で実装したものを用いてもよい。

    競技における高速化対象のアプリケーションとして与えられたアプリケーションから、以下の部分は変更しないこと。
  • アクセス先のURI、ただしサーバー側で生成する部分(IDなど)は文字種([0-9] や [0-9a-zA-Z_] など)を変えない範囲で自由に生成しても良い
  • レスポンス(HTML)のDOM構造(表示に影響しない範囲での空白文字の増減は許可される)
  • JavaScript/CSSファイルの内容
  • 画像および動画等のメディアファイルの内容

  • 各サーバにおけるソフトウェアの入れ替え、設定の変更、アプリケーションコードの変更および入れ替えなどは一切禁止しない。 ベンチマーク中に与えられたサーバー以外の外部リソースを利用する行為 (他のインスタンスに処理を委譲するなど) は禁止する。 ただしモニタリングやテスト、開発などは、PCや外部のサーバーを利用しても構わない。

    許可される事項には、例として以下のような作業が含まれる。
  • 複数台あるサーバーの役割の変更
  • DBスキーマの変更やインデックスの作成・削除
  • データベースに利用するミドルウェアの変更
  • キャッシュ機構の追加、ジョブキュー機構の追加による遅延書き込み
  • 他の言語による再実装

  • ただし以下の事項に留意すること。
  • コンテスト進行用のメンテナンスコマンドが正常に動作するよう互換性を保つこと
  • サーバ再起動後にすべてのアプリケーションコードが正常動作する状態を維持すること
  • ベンチマーク実行時にアプリケーションに書き込まれたデータは再起動後にも取得できること


  • 採点

    採点は採点条件をクリアした参加者の間で、性能値の高さを競うものとする。 予選参加者に提供される性能計測ツールに参加者が実行リクエストを送り、その後ツール側から計測用の処理が実行される。
    採点条件・性能値・性能計測ツールについての詳細は、予選当日のマニュアルに記載する。

    本選出場チームの選出


    競技時間中に計測され登録された計測値によって、本選出場チームが選出される。 基本的に、計測値としては時間内の最後に登録された値を用いる。 最後に提出したスコアがFailしていたチームは、失格となる。

    一般枠 (計18チーム)

    1. 予選各日の終了時スコアにおける上位3チーム
    2. 予選両日を通し、1の該当チームを除いた中での上位12チーム

    学生枠 (12チーム)

    1. 予選両日を通し学生枠参加チーム内における上位12チーム
    ただし、学生チームが一般枠の基準で通過した場合、学生枠はそのチームを含めずに12チームを選出する

    備考

    予選終了後、主催者はサーバーに対して再起動を含む追試をおこなう。 複数台のサーバーを使用していたとしても、サーバーを再起動する順序は保証しない。 ここで、アプリケーションが正常に動作しない、あるいは予選結果として登録されたスコアに近い結果が再現されない場合、ベンチマークの結果に捏造があると判断される場合には、判断基準の公開と共にそのチームは失格とする。 失格が発生した場合、適宜繰り上げをおこない、本選出場チームを選出する。
    Read more...

    参加者

    予選参加者(以下参加者)はチームで登録するものとし、チームは2名もしくは3名での登録とする。予選参加者は予選の第1日目、第2日目のいずれかのみに参加することができる。参加者は「一般枠」「学生枠」のいずれかに登録すること。
  • 学生枠: チームメンバー全員が学生・生徒であること(年齢は問わないが社会人学生は対象外とする)
  • 一般枠: 学生枠に該当しない参加チーム

  • 学生枠に該当するチームが一般枠に登録することはできる。

    連絡手段

    参加登録時に入力した代表者のメールアドレスを主催者からの連絡先として利用します。返答が必要な連絡に対して返答が得られなかった場合、当日競技環境を提供できない可能性があります。定期的なメールチェックをお願いいたします。

    競技時間

  • 予選第1日目: 2017年10月21日(土) 10:00〜18:0013:13〜21:13(JST)
  • 予選第2日目: 2017年10月22日(日) 10:00〜18:0013:00〜21:00(JST)


  • 禁止事項

    以下の行為を特に禁止する。
  • 予選第2日目 18:00競技終了時間までの、予選出題内容に関するあらゆる事項の公開
  • 主催者が他チームへの妨害とみなす全ての行為


  • サーバー事項

    サーバーは主催者で用意する。パスワード認証でsshできるように構成されており、パスワードは事前にメールで通知され、IPアドレスは当日用意されるポータルサイトから確認できる。

    サーバーは sudo reboot コマンドで再起動できるが、停止した場合は参加者側からの起動はできない。(その場合は運営からの救済措置は保証しない。)

    ソフトウェア事項

    コンテストにあたり、参加者は与えられたソフトウェア、もしくは自分で競技時間内に実装したソフトウェアを用いる。 高速化対象のソフトウェアとして主催者から Perl, Ruby, Python, PHP, Node.js, Go によるWebアプリケーションが与えられる。 ただし各々の性能が一致することを主催者は保証しない。どれをベースに用いてもよいし、独自で実装したものを用いてもよい。

    競技における高速化対象のアプリケーションとして与えられたアプリケーションから、以下の部分は変更しないこと。

  • アクセス先のURI、ただしサーバー側で生成する部分(IDなど)は文字種([0-9] や [0-9a-zA-Z_] など)を変えない範囲で自由に生成しても良い
  • レスポンス(HTML)のDOM構造(表示に影響しない範囲での空白文字の増減は許可される)
  • JavaScript/CSSファイルの内容
  • 画像および動画等のメディアファイルの内容


  • 各サーバにおけるソフトウェアの入れ替え、設定の変更、アプリケーションコードの変更および入れ替えなどは一切禁止しない。 ベンチマーク中に与えられたサーバー以外の外部リソースを利用する行為 (他のインスタンスに処理を委譲するなど) は禁止する。ただしモニタリングやテスト、開発などは、PCや外部のサーバーを利用しても構わない。

    許可される事項には、例として以下のような作業が含まれる。

  • 複数台あるサーバーの役割の変更
  • DBスキーマの変更やインデックスの作成・削除
  • データベースに利用するミドルウェアの変更
  • キャッシュ機構の追加、ジョブキュー機構の追加による遅延書き込み
  • 他の言語による再実装


  • ただし以下の事項に留意すること。

  • コンテスト進行用のメンテナンスコマンドが正常に動作するよう互換性を保つこと
  • 各サーバの設定およびデータ構造は任意のタイミングでのサーバ再起動に耐えること
  • サーバ再起動後にすべてのアプリケーションコードが正常動作する状態を維持すること
  • ベンチマーク実行時にアプリケーションに書き込まれたデータは再起動後にも取得できること


  • 採点

    採点は採点条件(後述)をクリアした参加者の間で、性能値(後述)の高さを競うものとする。 予選参加者に提供される性能計測ツール(以下計測ツール)に参加者が実行リクエストを送り、その後ツール側から計測用の処理が実行される。

    採点条件として、以下の各チェックの検査を通過するものとする。

  • 負荷走行中、更新を伴うHTTPリクエストに対してレスポンスを返した後は、以降に発生したリクエストにその更新結果が正しく反映されていること
  • 参照実装と同じHTTPステータスコードを返すこと
  • 当日マニュアルに記載される時間以内にレスポンスを返すこと
  • 例外として、並列度の高い負荷で発生するステータスコード500のエラーとタイムアウトは失格扱いにせず、加点も減点もしない
  • レスポンスHTMLのDOM構造が変化していないこと(表示に影響しない範囲での空白文字の変更は認める)
  • レスポンスJSONが、データとして等価であること
  • ブラウザから対象アプリケーションにアクセスした結果、ページ上の表示および各種動作が正常であること


  • 性能値として、以下の指標を用いる。計測ツールの実行時間は1分間とする。細かい閾値ならびに配点についての詳細は予選当日のマニュアルに記載する。

  • 計測時間内に成功したHTTPリクエストに対して、当日マニュアルに記載される配点で加点する。
  • 500エラーやタイムアウトは加点も減点もしない


  • 本選出場チームの選出

    競技時間中に計測され登録された計測値によって、本選出場チームが選出される。 基本的に、計測値としては時間内の最後に登録された値を用いる。

    一般枠 (計18チーム)

    1. 予選各日の終了時スコアにおける上位3チーム
    2. 予選両日を通し、1の該当チームを除いた中での上位12チーム

    学生枠 (12チーム)

    1. 予選両日を通し学生枠参加チーム内における上位12チーム
    ただし、学生チームが一般枠の基準で通過した場合、学生枠はそのチームを含めずに12チームを選出する

    備考

    予選終了後、主催者はサーバーに対して再起動を含む追試をおこなう。ここで、アプリケーションが正常に動作しない、あるいは予選結果として登録されたスコアに近い結果が再現されない場合、ベンチマークの結果に捏造があると判断される場合には、判断基準の公開と共にそのチームは失格とする。失格が発生した場合、適宜繰り上げをおこない、本選出場チームを選出する。

    その他

    参加者は、予選第2日目の競技終了時刻までの間、予選出題内容、計測ツールの計測方法について知り得た情報を自チーム、もしくは主催者以外の人間に共有してはならない。 ただし主催者が公開している情報を除く。
    Read more...

    参加者

    予選参加者(以下参加者)はチームで登録するものとし、チームは2名もしくは3名での登録とする。予選参加者は予選の第1日目、第2日目のいずれかのみに参加することができる。参加者は「一般枠」「学生枠」のいずれかに登録すること。
  • 学生枠: チームメンバー全員が学生・生徒であること(年齢は問わないが社会人学生は対象外とする)
  • 一般枠: 学生枠に該当しない参加チーム

  • 学生枠に該当するチームが一般枠に登録することはできる。

    参加登録

    参加登録は、チームの代表者1名が以下のページからおこなう。
    ISUCON6 オンライン予選 参加登録フォーム

    登録受付は2016年9月9日(金) 12:00:00 JSTまでとする。

    連絡手段

    登録した代表者のMicrosoftアカウントのメールアドレスは主催者からの連絡先として利用します。返答が必要な連絡に対して返答が得られなかった場合、当日競技環境を提供できない可能性があります。定期的なメールチェックをお願いいたします。

    競技時間

  • 予選第1日目: 2016年9月17日(土) 10:00〜18:00(JST)
  • 予選第2日目: 2016年9月18日(日) 10:00〜18:00(JST)


  • 禁止事項

    以下の行為を特に禁止する。
  • 予選第2日目 18:00 までの、予選出題内容に関するあらゆる事項の公開
  • 主催者が他チームへの妨害とみなす全ての行為


  • サーバ事項

    参加者は各自が用意したMicrosoft Azure(以下Azure)アカウントを使用し、主催者が指定する方法で、Azure Virtual Machines(以下VMs)のインスタンスを起動して使用する。インスタンスタイプおよびその他設定内容については、事前及び当日のマニュアルにて詳細を指定するので従うこと。指定と異なる設定のインスタンスを用いた場合、予選結果は無効となる。

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

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

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


    ソフトウェア事項

    コンテストにあたり、参加者は与えられたソフトウェア、もしくは自分で競技時間内に実装したソフトウェアを用いる。 高速化対象のソフトウェアとして主催者から Perl, Ruby, Python, PHP, Node.js, Go, Scala によるWebアプリケーションが与えられる。 ただし各々の性能が一致することを主催者は保証しない。どれをベースに用いてもよいし、独自で実装したものを用いてもよい。

    競技における高速化対象のアプリケーションとして与えられたアプリケーションから、以下の機能は変更しないこと。
  • アクセス先のURI(ポート、およびHTTPリクエストパス)
  • レスポンス(HTML)のDOM構造
  • JavaScript/CSSファイルの内容
  • 画像および動画等のメディアファイルの内容


  • 各サーバにおけるソフトウェアの入れ替え、設定の変更、アプリケーションコードの変更および入れ替えなどは一切禁止しない。 起動したインスタンス以外の外部リソースを利用する行為 (他のインスタンスに処理を委譲するなど) は禁止する。

    許可される事項には、例として以下のような作業が含まれる。
  • DBスキーマの変更やインデックスの作成・削除
  • データベースに利用するミドルウェアの変更
  • キャッシュ機構の追加、jobqueue機構の追加による遅延書き込み
  • 他の言語による再実装


  • ただし以下の事項に留意すること。
  • コンテスト進行用のメンテナンスコマンドが正常に動作するよう互換性を保つこと
  • 各サーバの設定およびデータ構造は任意のタイミングでのサーバ再起動に耐えること
  • サーバ再起動後にすべてのアプリケーションコードが正常動作する状態を維持すること
  • ベンチマーク実行時にアプリケーションに書き込まれたデータは再起動後にも取得できること


  • 採点

    採点は採点条件(後述)をクリアした参加者の間で、性能値(後述)の高さを競うものとする。 予選参加者に提供される性能計測ツール(以下計測ツール)に参加者が実行リクエストを送り、その後ツール側から計測用の処理が実行される。

    採点条件として、以下の各チェックの検査を通過するものとする。

  • 負荷走行中、更新を伴うHTTPリクエストに対してレスポンスを返してから1秒以内に関連するURI GETのレスポンスデータに反映されていること
  • エラー(ステータスコードが200および300番台以外のもの、ならびに規定の時間内に計測ツールがレスポンスを得られなかったもの)の割合が指定以下であること
  • レスポンスHTMLのDOM構造が変化していないこと
  • ブラウザから対象アプリケーションにアクセスした結果、ページ上の表示および各種動作が正常であること


  • 性能値として、以下の指標を用いる。計測ツールの実行時間は1分間とする。細かい閾値ならびに配点についての詳細は予選当日のマニュアルに記載する。

  • 計測時間内のHTTPリクエスト成功数をベースとする
  • リクエストの種類毎に配点を変更する
  • エラーの数により減点する
  • 時間内にエラーが一定数を超えた場合は計測失敗となる
  • HTTP POSTならびにPUTリクエストは一定時間内にレスポンスを返すこととし、違反は大きく減点する


  • 本選出場チームの選出

    競技時間中に計測され登録された計測値によって、本選出場チームが選出される。 基本的に、計測値としては時間内の最後に登録された値を用いる。

    一般枠 (計15チーム)

    1. 予選各日の終了時スコアにおける上位3チーム
    2. 予選両日を通し、1の該当チームを除いた中での上位9チーム

    学生枠 (10チーム)

    1. 予選両日を通し学生枠参加チーム内における上位10チーム
    ただし、学生チームが一般枠の基準で通過した場合、学生枠はそのチームを含めずに10チームを選出する

    備考

    予選終了後、主催者は予選上位者のVMsイメージに対して、再起動を含む追試をおこなう。ここで、アプリケーションが正常に動作しない、あるいは予選結果として登録されたスコアに近い結果が再現されない場合、ベンチマークの結果に捏造があると判断される場合には、判断基準の公開と共にそのチームは失格とする。失格が発生した場合、適宜繰り上げをおこない、本戦出場チームを選出する。

    その他

    参加者は、予選第2日目の競技終了時刻までの間、予選出題内容、計測ツールの計測方法について知り得た情報を自チーム、もしくは主催者以外の人間に共有してはならない。 ただし主催者が公開している情報を除く。

    Read more...

    9/10 18:35 本選出場チームの選出、備考欄に追記

    参加者

    予選参加者(以下参加者)はチームで登録するものとし、チームは2名もしくは3名での登録とする。 予選参加者は予選の第1日目、第2日目のいずれかのみに参加することができる。 参加者は「一般枠」「学生枠」のいずれかに登録すること。

  • 学生枠: チームメンバー全員が学生・生徒であること(年齢は問わない)
  • 一般枠: 学生枠に該当しない参加チーム

  • 学生枠に該当するチームが一般枠に登録することはできる。

    参加登録

    参加登録は、チームの代表者1名が以下のページから行う。

    ISUCON5 オンライン予選 参加登録フォーム

    登録受付は 2015年9月18日(金) 12:00:00 JST までとする。

    競技時間

  • 予選第1日目: 2015年9月26日 10:00〜18:00 (JST)
  • 予選第2日目: 2015年9月27日 10:00〜18:00 (JST)


  • 禁止事項

    以下の行為を特に禁止する。
  • 予選第2日目 18:00 までの、予選出題内容に関するあらゆる事項の公開
  • 主催者が他チームへの妨害とみなす全ての行為


  • サーバ事項

    参加者は各自が用意したGoogle Cloud Platform(以下GCP)アカウントを使用し、主催者が指定するイメージからGoogle Compute Engine(以下GCE)のインスタンスを起動して使用する。 GCEのインスタンスタイプおよびその他設定内容については当日のマニュアルにて詳細を指定するので従うこと。指定と異なる設定のインスタンスを用いた場合、予選結果は無効となる。

    予選実施に用いたインスタンスは実施後に主催者による確認作業の対象となるため、削除せず残すこと。 またその作業のため、参加者は主催者のGCPアカウントを予選参加用のGCPプロジェクトにinviteすること。

    GCPアカウントは支払い設定を有効とすること。 主催側からISUCON用クーポンが払出されるためそれを用いることができるが、仮に余剰の支払い等が発生した場合は参加者の負担とする。

    ソフトウェア事項

    コンテストにあたり、参加者は与えられたソフトウェア、もしくは自分で競技時間内に実装したソフトウェアを用いる。 高速化対象のソフトウェアとして主催者から Perl, Ruby, Python, PHP, Node.js, Go, Java, Scala によるWebアプリケーションが与えられる。 ただし各々の性能が一致することを主催者は保証しない。どれをベースに用いてもよいし、独自で実装したものを用いてもよい。

    競技における高速化対象のアプリケーションとして与えられたアプリケーションから、以下の機能は変更しないこと。
  • アクセス先のURI(ポート、およびHTTPリクエストパス)
  • レスポンス(HTML)のDOM構造
  • JavaScript/CSSファイルの内容
  • 画像および動画等のメディアファイルの内容

  • 各サーバにおけるソフトウェアの入れ替え、設定の変更、アプリケーションコードの変更および入れ替えなどは一切禁止しない。 起動したインスタンス以外の外部リソースを利用する行為 (他のインスタンスに処理を委譲するなど) は禁止する。

    許可される事項には、例として以下のような作業が含まれる。
  • DBスキーマの変更やインデックスの作成・削除
  • キャッシュ機構の追加、jobqueue機構の追加による遅延書き込み
  • 他の言語による再実装

  • ただし以下の事項に留意すること。
  • コンテスト進行用のメンテナンスコマンドが正常に動作するよう互換性を保つこと
  • 各サーバの設定およびデータ構造は任意のタイミングでのサーバ再起動に耐えること
  • サーバ再起動後にすべてのアプリケーションコードが正常動作する状態を維持すること
  • ベンチマーク実行時にアプリケーションに書き込まれたデータは再起動後にも取得できること


  • 採点

    採点は採点条件(後述)をクリアした参加者の間で、性能値(後述)の高さを競うものとする。 予選参加者に提供される性能計測ツール(以下計測ツール)に参加者が実行リクエストを送り、その後ツール側から計測用の処理が実行される。

    採点条件として、以下の各チェックの検査を通過するものとする。
  • 負荷走行中、更新を伴うHTTPリクエストに対してレスポンスを返してから1秒以内に関連するURI GETのレスポンスデータに反映されていること
  • エラー(ステータスコードが200および300番台以外のもの、ならびに規定の時間内に計測ツールがレスポンスを得られなかったもの)の割合が指定以下であること
  • レスポンスHTMLのDOM構造が変化していないこと
  • ブラウザから対象アプリケーションにアクセスした結果、ページ上の表示および各種動作が正常であること

  • 性能値として、以下の指標を用いる。計測ツールの実行時間は1分間とする。細かい閾値ならびに配点についての詳細は予選当日のマニュアルに記載する。
  • 計測時間内のHTTPリクエスト成功数をベースとする
  • リクエストの種類毎に配点を変更する
  • エラーの数により減点する
  • HTTP POSTならびにPUTリクエストは一定時間内にレスポンスを返すこととし、違反は大きく減点する


  • 本選出場チームの選出

    競技時間中に計測され登録された計測値によって、本選出場チームが選出される。 基本的に、計測値としては時間内の最後に登録された値を用いる。

    一般枠 (計20チーム)

    1. 予選各日において、主催者が指定するスコアに最初に到達した1チーム
    2. 予選各日の終了時スコアにおける(1.該当チームを除く)上位4チーム
    3. 予選両日を通し、1, 2 の該当チームを除いた中での上位10チーム

    学生枠 (5チーム)

    1. 予選両日を通し学生枠参加チーム内における上位5チーム

    備考

    予選終了後、主催者は予選通過者のGCEイメージに対してインスタンスの再起動を含む追試を行う。 ここでアプリケーションが正常に動作しない、あるいは予選結果として登録されたスコアに近い結果が再現されない場合、そのチームは失格とする。

    <9/10 18:35 追記 >
    その他、ベンチマーク結果の捏造があると判断される場合は調査結果および判断基準の公開とともに失格とする。

    その他

    参加者は、予選第2日目の競技終了時刻までの間、予選出題内容、計測ツールの計測方法について知り得た情報を自チーム以外の参加者に共有してはならない。 ただし主催者が公開している情報を除く。


    参考までに、こちらもあわせてどうぞ。
    ISUCON参加者向け Google Cloud Platform (GCP)の使い方 : ISUCON公式Blog
    Read more...

    ↑このページのトップヘ