Instantly share code, notes, and snippets.

Embed
What would you like to do?
ISUCON4 本選マニュアル

ISUCON4 本選マニュアル

本日の流れ

  • 10:00 受付
  • 11:00 競技開始
  • 13:00 (頃) お弁当配布
  • 18:00 競技終了
  • 19:00 (頃) コンテスト結果発表

レギュレーション詳細

スコア算出方法や禁止事項などは以下のレギュレーションを参照してください。

http://bit.ly/isu4reg

本選ポータルサイト

https://isucon4-portal.herokuapp.com/

上記リンクを開き、チームの API キーを入力してログインしてください。

API キーはサーバー上の /home/isucon/env_variables.shISUCON_API_KEY 環境変数として定義されています。 下記コマンドで確認が可能です。

[isucon@isu01b ~]$ echo $ISUCON_API_KEY

ポータルサイトにログイン後、ヘッダーに表示されているチーム名が正しいか必ず確認してください。 もし自身のチーム名と異なる場合は、運営チームにチャットまたは口頭まで問い合わせてください。

ディレクトリ構成

参考実装のアプリケーションコードおよび、スコア計測用プログラムは /home/isucon ディレクトリ以下にあります。

/home/isucon
  ├ benchmarker       # スコア計測用プログラム
  ├ env.sh            # ↓の環境変数ラッパー
  ├ env_variables.sh  # アプリケーション用の環境変数
  └ webapp/           # 各言語の参考実装

参考実装の言語切り替え方法

参考実装の言語は Ruby, Python, PHP, Perl, Go が用意されており、初期状態では Ruby の実装が起動しています。

80番ポートでアクセスできるので、ブラウザから動作確認をすることができます。

起動する実装を Ruby 以外に切り替えるには、まず supervisord を終了させます。

sudo /etc/init.d/supervisord stop

その後、 /etc/supervisord.conf において希望の言語を autostart=true にし、 [isucon_ruby]autostart=false したうえで、

sudo /etc/init.d/supervisord start

を実行することで切り替えることができます。

PHP の場合

なお、PHP を利用する場合のみ、上記に加えて、以下の操作を行ってください。

sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
sudo mv /etc/nginx/nginx.php.conf /etc/nginx/nginx.conf
sudo /etc/init.d/nginx restart

課題アプリケーション テストページ操作ガイド

広告を入稿する

イスコンAd は動画広告配信アプリケーションです。

/ にアクセスすると、下記のようなページが表示されます。

  • パラメータ advertiser は、出稿主の ID を表す文字列です。スラッシュ / を除くあらゆる文字が利用可能です。
  • パラメータ slot は、広告枠を表す文字列です。スラッシュ / を除くあらゆる文字が利用可能です。

"Create Ad" フォームを入力して Post をクリックすると、ファイルがアップロードされ広告が入稿されます。

広告の表示テストをする

/view.html にアクセスし、"Display test" に slot を入力して Show をクリックすると、指定した slot に入稿されている広告が表示されます。

広告をクリックすると再生が始まり、再度クリックすると destination へリダイレクトします。

isuad クッキーを付与する

/view.html にアクセスし、"User attribute test" のフォームに入力し Set をクリックすることで、isuad クッキーをブラウザに付与することができます。

広告主向けのレポートを表示する

/ へアクセスし、"Report test" フォームに advertiser を入力し、Show report, Show final_report をクリックする事でレポートを表示することができます。

benchmarker

課題アプリケーションのベンチマークを行うには、各サーバにある /home/isucon/benchmarker を用います。

benchmarker には、ローカルで実行して動作確認をするための bench オプションと、共有のベンチマークサーバから負荷をかけてもらう remote オプションがあります。

スコアとして採用されるのは remote で実行した場合のみなのでご注意ください。

詳しい使い方は benchmarker help コマンドでご確認ください。

FAQ

チャット等で問い合わせのあった質問と、その回答は以下に掲載しています。随時更新するので、質問する前に確認してみてください。

https://gist.github.com/sorah/e2362c139da9c2ee6b33

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment