ISUCON公式Blog

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

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

優勝賞金100万円!今年もやります ISUCON5 開催と日程のお知らせ #isucon

こんにちは、櫛井です。
エンジニアの皆さんお待たせしました!色々ありましたが正式に ISUCON5 開催決定です!やったー!

isuconlogo_2


ISUCONとは

お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトル、それがISUCONです。過去の実績も所属している会社も全く関係ない、結果が全てのガチンコバトルです。

ってやつです!
今回もLINE株式会社にてイベントの企画・運営・会場・賞金提供などを行います。本選用サーバは今年もテコラス株式会社さまにご提供いただきます。気になるアプリ提供(出題)は、トレジャーデータ株式会社さまにご協力いただく事となりました。ありがとうございます!
基本的には@tagomoris氏、@kamipo氏が担当される予定ですが、問題作成時、いくつかの言語については課題アプリケーションの実装をお手伝いいただける方を募集します。対象の言語はPython, PHP, Javaなどを予定しています。(お手伝いいただく場合はISUCON5に参加できません。また応募がない場合は予選・決勝における参考実装が提供されない可能性があります)

優勝賞金は今年もドドンと100万円!そしてなんとなんと準優勝も賞金30万円(予定)と超ウルトラ太っ腹コンテストとなっております!皆様、ふるってご参加ください。昨年の予選参加数185組を上回っていただけると運営的にはとても嬉しいです。

過去の開催模様はこちらをご覧ください
▼ISUCON4 本選リアルタイムフォトレポート 【更新終了】 : ISUCON公式Blog
▼第三回 #isucon 本選リアルタイムフォトレポート【更新終了】 : ISUCON公式Blog
▼#isucon2 リアルタイムフォトレポート 更新終了 : ISUCON公式Blog
▼写真と動画で振り返る #isucon オフィシャルレポート : ISUCON公式Blog
Read more...

ISUCON4 本選AMIとソースコードの公開

みなさんこんにちは。ISUCON4 出題担当チームの mirakui です。

2014年11月に行われた ISUCON4 本選ではテコラスさん提供のホスト上に用意された VM で競技を行いました。今回、本選の VM に似た環境を再現する AMI を用意しましたのでご紹介いたします。

AMI

本選環境を再現するために、2つの AMI を提供します。1つはチューニング対象アプリケーション用の AMI 、もう1つはベンチマーカー用の AMI です。

  • アプリケーション AMI
    • ami-86e8e287
  • ベンチマーカー AMI
    • ami-84e8e285

アプリケーション AMI は、本選で参加チームに3台ずつ提供された VM とほとんど同じ内容です。

ベンチマーカー AMI は、ベンチマークサーバを再現するもので、 benchmarker の実行ファイルと、本選で実際に用いられた動画ファイルのセット(13GB程度)が入っています。

推薦環境

本選の競技環境に近づけつつ、安定したスコアを得るため、以下の環境で試すことを推薦します。

アプリケーション用インスタンス(1〜3台)

  • インスタンスタイプは c3.large
    • ただし、カーネルパラメータによって 2 cpus / 1GB memory に制限されている(後述)
  • EBS は gp2 (general purpose SSD) 80GB
    • standard (magnetic) タイプだと性能の個体差が激しく、ガチャ問題が発生するため

アプリケーション用インスタンスは1台から3台のうち好きな台数を立てて下さい。初期状態の参考実装では複数台のアプリケーション用インスタンスがあっても無意味なので、最初は1台だけで充分でしょう。

なお本選では、VM3台のうち1台が 1 cpu 、のこり2台が 2 cpus で提供されました。この条件を再現するために、アプリケーション用インスタンスを3台立てる場合は、そのうち1台の /etc/grub.conf を編集して maxcpus=1 にしてください。詳細は後述します。

ベンチマーカー用インスタンス(1台)

  • インスタンスタイプは c3.2xlarge (8 cpus / 15GB memory)
    • 合計13GB程度の動画ファイルをメモリに展開する必要があるため

なお、インスタンス間のネットワークレイテンシを安定させるため、ベンチマーカー用1台およびアプリケーション用3台のインスタンスは、すべて同じ Availability Zone で起動してください。

Read more...

ISUCON4 本選の解説と講評

ISUCON4本選の振り返り

こんにちは。ISUCON4 出題担当スタッフの mirakui です。
あの盛り上がった本選から約一ヶ月が経過してしまいましたが、本選について振り返ってみます。

ISUCON4 の予選は、参加チーム180組以上という過去最大の規模でしたが、本選に出場できたのはその中のたった30組でした。この倍率の高さからも激戦であったことは想像に難くないと思いますが、一体どのような問題で、どのような戦いだったのでしょうか。

テーマは「動画広告配信」

本選問題のテーマは、「動画広告配信」でした。広告リクエストに応じて表示すべき動画クリエイティブを抽選し、5MB 程度の mp4 ファイルを出力するという問題です。

この問題には以下の内容が含まれていました。

  • 広告主が動画広告を入稿する API。おもに以下の情報を POST する
    • 広告動画ファイル
    • ユーザが広告(リダイレクタ)をクリックした時のリダイレクト先 URL
    • 広告枠の ID
  • 広告表示 API。広告の抽選を行う
  • ユーザが広告をクリックしたときのリダイレクタ API
  • インプレッション数のカウンタをインクリメントする API。インプレッションが発生したときに XHR で呼ばれる想定
  • 動画ファイルを返す API
  • 広告主向けにクリック数、インプレッション数を集計してレポートする API。レポートは速報レポートと最終レポートの2種類があり、それぞれ集計の内容が異なる

アプリケーションの概要は上記の通りで、Ruby 参考実装では約230行程度の規模でした。

また、参加者が動作確認をするための簡単な HTML を用意はしていましたが、ベンチマーカがアクセスするためのフロントエンドは無く、JSON API のみから構成されたアプリケーションでした。

本選レギュレーションと当日マニュアル

本選では、以下のドキュメントを競技者に配布しました。これらに目を通していただくと、当日の雰囲気が伝わるかもしれません。

競技環境

本選の競技に用いるサーバ環境は、テコラスさんが提供して下さいました。

今回の競技用サーバは1チームに3台(VM)ずつ提供され、全ての VM には同じようにアプリケーションがセットアップされていました。この3台をどのように使い分けてもいいし、1台だけでもいいというレギュレーションでした。ただ、参考実装では複数のホストで動作するようには作られていないので、3台で負荷分散するためには何らかの工夫をする必要がありました。

Read more...

↑このページのトップヘ