ISUCON公式Blog

ISUCONとはLINEヤフー株式会社が運営窓口となって開催している、お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトルです

  
      
  
   

開催日程

   

2024年12月8日(日) 10:00-18:00

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

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...

    櫛井です。
    参加者の皆さん、応援してくださった皆さん、お疲れ様でした!すでに公式ハッシュタグにて紹介していますが、順位は以下の通りでした。

    1位 614841 生ハム原木
    2位 362755 チームフリー素材
    3位 15350 fujiwara組
    4位 14448 ナイスカロリー
    5位 10855 lily white
    6位 9355 .dat
    7位 9199 SHINCHOKU.ZERO
    8位 8416 †空中庭園†《ガーデンプレイス》
    9位 8407 Oops!
    10位 8347 山形組
    11位 8329 PHPに花束を
    12位 8281 (ρ_-)/超銀杏バスターズ\(・ω・ o) 【学生1位】
    13位 8275 Printemps
    14位 8095 マカレラーズ
    15位 8095 Mr. Frank & Co: A New Hope
    16位 8068 チームレッド
    17位 8017 GoMiami
    18位 7951 EH-MTI
    19位 7925 50ms or die.
    20位 7907 blacklab~全ては僕らのせい~
    21位 7879 Beer Qz's
    22位 7858 Team Ku's
    23位 7813 MEAN普及委員会
    24位 7773 BIG丼
    25位 7231 ☆(ゝω・)vキャピ
    26位 6598 ご注文はPHPですか?
    27位 5922 railsへの執着はもはや煩悩の域であり、開発者一同は瞑想したほうがいいと思います。
    28位 3807 椅子子
    29位 68 鉄球315
    FAIL (*103 に nginx がいない) 部長と副部長

    使用言語の割合などは改めてお知らせする予定です。
    Read more...

    2014.9.27 13:38 追記
    ブラウザでの表示崩れについて追記しました

    --
    2014.9.26 12:05 追記
    予選登録は締め切りました

    --
    2014.9.8 13:00 公開

    参加者

    予選参加者 (以下参加者) はチームでの登録とし、チームは2人~3人での構成とする。

    参加者は予選の第1日目、2日目のいずれかのみに参加することができる。

    参加者は「一般枠」「学生枠」のいずれかに登録すること。

  • 「学生枠」参加メンバー全員が学生・生徒であること (年齢は問わない)
  • 「一般枠」学生枠以外の参加者

  • 学生枠の要件に該当する参加者でも、一般枠に登録することができる。


    参加登録

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

    登録内容の確認メールは登録後しばらく経ってから送ります
    参加メンバーの変更、予選参加日程の変更は参加登録メールへの返信で受け付けます

    https://feedback.line.naver.jp/enquete/public/135-HOEPHwUi

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


    競技時間

  • 予選第1日 2014年9月27日 10:00~18:00 (JST)
  • 予選第2日 2014年9月28日 10:00~18:00 (JST)



  • 禁止事項

    以下の事項は特別に禁止する。
  • 他のチームへの妨害と主催者がみなす全ての行為



  • サーバ事項

    参加者は各自が用意した Amazon Web Services (以下AWS) アカウントを利用し、主催者が指定した Amazon Machine Image (以下AMI) から起動したインスタンスを1台利用する。

    使用するインスタンスタイプは m3.xlarge (EBS最適化なし) で、ルートボリュームは standard (Magnetic) とする。他のインスタンスタイプおよびボリュームタイプを使用した場合の結果は無効とする。

    参加者は 2014年9月29日 10:00 (JST) までに競技時間中に使用したインスタンスから AMI を作成し、AMI を主催者の AWS アカウントに共有すること。

    AWSの利用料は参加者の負担とする。
    Amazon Web Services様のご厚意により利用可能クーポンをご提供いただけることとなりました


    ソフトウェア事項

    コンテストにあたり、参加者は与えられたソフトウェア、もしくは自分で競技時間内に実装したソフトウェアを用いる。

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

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

  • アクセス先のURI (IPアドレスおよびパス(複数)
  • レスポンス(HTML)のDOM構造
  • ブラウザで表示した際の見た目(問題ない範囲で)
  • 画像類の内容
  • JavaScript/CSSの実行される結果

  • 追記: なお、参考実装の PHP を利用した場合、AMI 中の初期設定では CSS や画像が反映されず表示崩れが起きてしまっています。AMI 提出時の利用言語に "PHP" と回答している場合は、この点について不問にします。

    各サーバにおけるソフトウェアの入れ替え、設定の変更、アプリケーションコードの変更および入れ替えなどは一切禁止しない。

    起動したインスタンス以外の外部リソースを利用する行為 (他のインスタンスに処理を委譲するなど) は禁止する。

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

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


    採点

    採点は採点条件(後述)をクリアした参加者の間で、性能値(後述)の高さを競うものとする。

    予選用に提供された AMI にインストールされている性能値計測用ツール(以下計測ツール) を参加者が任意のタイミングで実行することで、性能値が計測され、主催者の用意した管理サーバに送信される。

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

  • 負荷走行中、POSTしたデータ(コメント)が、POSTへのHTTPレスポンスを返してから1秒以内に関連するURI GETのレスポンスデータに反映されていること
  • レスポンスHTMLのDOM構造が変化していないこと
  • ブラウザから対象アプリケーションにアクセスした結果、ページ上の表示および各種動作が正常であること


  • 性能値として、以下の指標を用いる。
  • 計測ツールの実行時間は1分間
  • 計測時間内の HTTP GET/POST リクエストの成功数をベースにする。ただしすべてのリクエスト成功について同一の配点とは限らない
  • エラー(ステータスコードが200および300番台以外のもの、規定の時間内に計測ツールがレスポンスを得られなかったもの) の回数をもとにベースのスコアから減点される



  • 本選出場チームの選出

    競技時間中に計測され、管理サーバに最後に登録された計測値によって、本選出場チームが選出される。

    一般枠
  • 予選第1日の上位5チーム、予選第2日の上位5チームが本選進出
  • それ以外のチームについては、予選両日を通して上位10チームが本選進出

  • 学生枠
  • 予選両日を通して上位 5チームが本選進出
  • ただし、競技終了後に参加者から提出された AMI を元に主催者が実行した環境において、競技時間中に計測された性能値に近い値が再現できないチームは失格とすることがある。


    情報の管理について

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


    質問などは Twitter @941 までお願いします。DMでのやりとりがよければフォローいたしますのでMentionを飛ばしてください。
    Read more...

    参加者

    予選参加者 (以下参加者) はチームでの登録とし、チームは2人~3人での構成とする。

    参加者は予選の第1日目、2日目のいずれかのみに参加することができる。

    参加者は「一般枠」「学生枠」のいずれかに登録すること。
  • 「学生枠」参加メンバー全員が学生・生徒であること (年齢は問わない)
  • 「一般枠」学生枠以外の参加者
  • 学生枠の要件に該当する参加者でも、一般枠に登録することができる。


    参加登録

    参加者は、代表者1名が管理ページ https://isucon2013.kayac.com/ から twitter もしくは Github アカウントで認証してログインし、必要な情報の登録を行うこと。

    登録受け付けは 2013年10月4日 12:00 までとする。


    競技時間

  • 予選第1日 2013年10月5日 10:00~18:00
  • 予選第2日 2013年10月6日 10:00~18:00



  • 禁止事項

    以下の事項は特別に禁止する。
  • 他のチームへの妨害と主催者がみなす全ての行為



  • サーバ事項

    参加者は各自が用意した Amazon Web Service (以下AWS) アカウントを利用し、主催者が指定した Amazon Machine Image (以下AMI) から起動したインスタンスを1台利用する。

    使用するインスタンスタイプは m3.xlarge (EBS最適化なし) とする。他のインスタンスタイプを使用した場合の結果は無効とする。

    参加者は 2013年10月7日 10:00 までに競技時間中に使用したインスタンスから AMI を作成し、AMI を主催者の AWS アカウントに共有すること。

    AWSの利用料は参加者の負担とする。


    ソフトウェア事項

    コンテストにあたり、参加者は与えられたソフトウェア、もしくは自分で競技時間内に実装したソフトウェアを用いる。

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

    競技における高速化対象のアプリケーションとして与えられたアプリケーションから、以下の機能は変更しないこと。
  • アクセス先のURI (IPアドレスおよびパス(複数))
  • レスポンス(HTML)のDOM構造
  • ブラウザで表示した際の見た目(問題ない範囲で)
  • 画像類の内容
  • Javascript/CSSの実行される結果

  • 各サーバにおけるソフトウェアの入れ替え、設定の変更、アプリケーションコードの変更および入れ替えなどは一切禁止しない。

    起動したインスタンス以外の外部リソースを利用する行為 (他のインスタンスに処理を委譲するなど) は禁止する。

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

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


    採点

    採点は採点条件(後述)をクリアした参加者の間で、性能値(後述)の高さを競うものとする。

    予選用に提供された AMI にインストールされている性能値計測用ツール(以下計測ツール) を参加者が任意のタイミングで実行することで、性能値が計測され、主催者の用意した管理サーバに送信される。

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

  • 負荷走行中、POSTしたデータ(コメント)が、POSTへのHTTPレスポンスを返してから1秒以内に関連するURI GETのレスポンスデータに反映されていること
  • レスポンスHTMLのDOM構造が変化していないこと
  • ブラウザから対象アプリケーションにアクセスした結果、ページ上の表示および各種動作が正常であること

  • 性能値として、以下の指標を用いる。

  • 計測ツールの実行時間は1分間
  • 計測時間内の HTTP GET/POST リクエストの成功数をベースにする。ただしすべてのリクエスト成功について同一の配点とは限らない
  • エラー(ステータスコードが200および300番台以外のもの、規定の時間内に計測ツールがレスポンスを得られなかったもの) の回数をもとにベースのスコアから減点される


  • 本選出場チームの選出

    競技時間中に計測され、管理サーバに登録された性能値の最大値によって、本選出場チームが選出される。

    一般枠
  • 予選第1日の上位5チーム、予選第2日の上位5チームが本選進出
  • それ以外のチームについては、予選両日を通して上位10チームが本選進出

  • 学生枠
  • 予選両日を通して上位 3チームが本選進出
  • ただし、競技終了後に参加者から提出された AMI を元に主催者が実行した環境において、競技時間中に計測された性能値に近い値が再現できないチームは失格とすることがある。


    情報の管理について

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


    附記

  • 本レギュレーションに記載されている日時は日本標準時とする

  • Read more...

    こんにちは、櫛井です。
    優勝賞金ドドンと100万円! 第三回 ISUCON 開催のお知らせ にありました表題の内容について決まりましたのでお知らせいたします。

    isuconlogo_2


    オンライン予選の概要と開催日


    オンライン予選の方式は以下を予定しております
    • 予選はAmazon Web ServiceのEC2を利用
    • 出題者側で作成したお題アプリ、ベンチマークツールが乗ったマシンイメージを公開
    • 各参加チームが自分のAWSアカウントでそのマシンイメージを起動
    • 出題者側で発行したAPI key(文字列) を入力してベンチマークツールを設定
    出題内容は当日発表となりますが、詳細なレギュレーションや予選の参加申し込み等については予選開催日の1ヶ月前を目処に発表予定です。

    予選の開催日ですが10月5日(土)といたします。
    オンライン予選の実施は1日限定で、10時〜18時の時間帯固定とします。日程をずらしての参加は出来ません。

    【8月15日訂正】
    10月5日(土)または10月6日(日)のいずれかとなり、開催時間は10時〜18時の時間帯固定です。
    オンライン予選の実施は1日どちらかのみ参加可能で、参加申し込み時にどちらかを申請していただきます。

    参加費は無料ですが、AWSを利用する料金は予選参加者負担となりますのでご了承ください。



    本選開催日


    「本選の開催日がわからないとチームメンバー集められないよ!」という声もチラホラ聞こえておりますが、決定いたしました。

    11月9日(土) LINE株式会社 渋谷ヒカリエオフィスにて開催となります。
    当日は10時から開始、懇親会も予定しておりますが詳細は追ってお知らせいたします。


    以前もお知らせしておりますが、参加は2〜3名を1チームとし予選と本選でチームメンバーの変更を行うことは出来ません。(予選を3名で、本選を同一メンバーの2名で参加はOK) まずはオンライン予選に向けてチームメンバーを集めたり、ISUCON2の過去問にチャレンジしたり、感想エントリを見て当時の対策方法を探ったり、何かしらの素振りをしておいてください!

    質問などは Twitter @941 までお願いします。DMでのやりとりがよければフォローいたしますのでMentionを飛ばしてください。
    Read more...

    ↑このページのトップヘ