ISUCON公式Blog

WINNER'S PRIZE \1,000,000



商標「ISUCON」利用の
ガイドラインはこちら
スポンサー各社からの応援特設ページ ISUCON10 個人スポンサー

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

関連エントリ
ISUCON9 開催決定!今年の出題は、さくらインターネットさま&メルカリさまに決定です! #isucon : ISUCON公式Blog
ISUCON9 オンライン予選の参加登録を開始&参加チームとメンバーリスト : ISUCON公式Blog

ISUCON9 オンライン本選 Tweet まとめ #isucon - Togetter

9時開場、10時開始という早めスタートにも関わらず、今年も気合充分な集まり具合です。
IMG_2544_resize





今年の新企画です



本選出場者に毎年くばっているネームカードです
batch_172A2545_resize


運営部屋も準備万端
IMG_2552_resize


時間となり、運営の櫛井から開会挨拶です
172A2571_resize


本選の出題担当であるさくらインターネットのこたまごさんより問題についての説明です
172A2593_resize






問題が発表されザワつく会場
batch_172A2585_resize


皆さん頑張ってください!
172A4195_resize
batch_172A2608_resize
batch_172A2625_resize
batch_172A2626_resize
batch_172A2642_resize
batch_172A2646_resize


そっと弁当の準備です。
batch_172A4190_resize





休憩タイムの準備にも余念がない
batch_172A4209_resize





コーヒーは量が多すぎましたね
172A4234_1200


特別賞が出ました
172A4253_1200


午後もモリモリ皆さん頑張っています
IMG_2568_1200
IMG_2575_1200


いつものやつです
IMG_2570_1200


そして18時となり競技終了!拍手で起こります
IMG_2620_1200


集計中の時間には運営各社からプレゼンタイム。皆さんおつかれなのでパパッと進行。
IMG_2650_1200


同時に懇親会の準備も進みます、寿司は最高ですね
IMG_2661_1200
IMG_2662_1200
IMG_2664_1200


そして予定より少し遅れて結果発表。競技終了から発表まで1時間ほどですが、色々なパターンで綿密に採点をするので時間がかかる場合もあるのです。
IMG_2668_1200


まずは規定の点数に最初に到達したチームに贈られる特別賞。受賞したのは「ARINE」でした。
IMG_2682_1200


続いて3位。学生賞がなくなったので今回から復活しました。13,996点で受賞したのは「はしもとせいこ」でした。おめでとうございます!
IMG_2693_1200


2位は、29,704点で「nil」が受賞です。高校生の1人チームの受賞に驚きと尊敬の拍手が惜しみなく贈られました。
IMG_2702_1200
IMG_2707_1200


そして優勝は… 35,801点で「白金動物園」でした!おめでとうございます!
IMG_2721_1200
IMG_2736_1200


ISUCON4の時、出題担当として一緒に運営をしましたので個人的にもグッとくるものがありました
IMG_2749_1200




Twitterでも大きな話題となりました。

IMG_2775_1200


本選の出題担当である、さくらインターネットのこたまごさんより講評。
IMG_2782_1200


学生1人チームと優勝チームからそれぞれどのようなアプローチをしたかお話いただきました
IMG_2804_1200
IMG_2794_1200


ご参加いただいた皆さん、運営に関わっていただいた皆さん、ありがとうございました!
IMG_2817_1200


参加者全員で一枚!
_全体集合写真_1200


上位入賞者でも一枚!
_上位集合写真_1200


運営チームでも一枚!お疲れさまでした!
_スタッフ集合写真_1200


というわけで懇親会へ。乾杯!
IMG_2846_1200


同じ問題に取り組んだ濃密な8時間を共に過ごした者同士、話題はつきません。
172A4348_1200


ケーキもISUCON仕様です
172A4364_1200



以上です、次回のISUCONについては未定ですがISUCON9はとても盛り上がりました。ご参加いただいた皆さん、ご参加いただいていなかった皆さんも、ありがとうございました!
Read more...

10/25 17:00 更新終了

ISUCON9 本選の感想エントリをまとめていきます。見つけた順ですが後で何かしらのルールで並び替えます。もしここに載っていないものがある場合は ISUCON9 本選のブログ書いたよ!フォームで教えていただけると助かります。重複はこちらでチェックしますのでドシドシお願いします。

本選のTweetはこちらでまとめています
ISUCON9 オンライン本選 Tweet まとめ #isucon - Togetter


参加者
白金動物園として ISUCON 9 に出場し、優勝しました - 鳩舎
チーム白金動物園として ISUCON 9 本選で優勝しました - 昼メシ物語

ISUCON9 本選9位でした | tkuchiki's blog
本戦敗退から学ぶISUCONの正しい歩き方 - そーだいなるらくがき帳
ISUCON9本選にチーム「いんふらえんじにあー as Code」で参加して11位でした #isucon - netmark.jp
ISUCON9本選でFailしてきました - 開発^3
ISUCON9本選を11位でフィニッシュしました - Gマイナー志向
isucon9本戦に参加してきました
ISUCON9本選参加 - Journal InTime(2019-10-05)




ISUCON9 予選に参加してきました #isucon - ravelll の日記
ISUCON本戦に参加して、特別賞を受賞しました! | エンジニアブログ | GREE Engineering
ISUCON9決勝参加記 (チーム名: ようするにメガネが大好きです) - methaneのブログ
ISUCON9 本選で4位になれました - Aim Developer
Read more...

ローカル環境でISUCON9予選のアプリケーションとベンチマーカーはGoとMySQLとDockerがあれば、Macなどローカル環境で動かすことができます。

ソースコードの取得

まず、ソースコード一式をもってきます
$ go get -d github.com/isucon/isucon9-qualify
$ cd $GOPATH/src/github.com/isucon/isucon9-qualify


初期データの作成

ベンチマーカー、アプリケーション両方が使う初期データの生成をします。
$ cd initial-data
$ make

makeを実行するとDocker コンテナの中で初期データの作成を行い、
initial-data/result
に結果が出力され、
webapp/sql
以下へのコピーも行われます。
パスワードの生成があるため、時間がかかります。

画像データの展開

初期データの画像とベンチマーカーが使う画像をダウンロードする必要があります。
ファイルは github releaseからダウンロードできます。1.5GB程度のファイルが2つとなりますので、回線状況のよいところでのダウンロードをおすすめします。

https://github.com/isucon/isucon9-qualify/releases

初期画像データダウンロード
$ cd webapp/public
GitHub releases から initial.zip をダウンロード
$ unzip initial.zip
$ rm -rf upload
$ mv v3_initial_data upload

ベンチマーク用画像データダウンロード
$ cd initial-data
GitHub releases から bench1.zip をダウンロード
$ unzip bench1.zip
$ rm -rf images
$ mv v3_bench1 images


データベースの作成と初期化

isucariデータベースとユーザの作成をします。
$ cd webapp/sql
$ cat 00_create_database.sql | mysql

mysqlのポート、ユーザとパスワードは環境に合わせて指定してください。
初期化はinit.shを実行します。
$ cd webapp/sql
$ ./init.sh

環境変数によってMySQLのホストやポート番号を変更できます。詳しくはinit.shの中をご覧ください。

アプリケーションの実行

Goの参考実装を起動してみます。
Goのバージョンは1.12以上で確認しています。
$ cd webapp/go
$ GO111MODULE=on go run api.go main.go

この状態で、ブラウザで http://localhost:8000/ をみるとISUCARIのログイン画面がでてくるはずです。
MySQLのホストやポート番号を変更する場合は、
webapp/sql/init.sh
を参考に環境変数を指定してください。試せるログインユーザは
docs/manual.md
に書かれています。

外部サービスの起動

アプリケーションは起動してますが、外部サービスがないため、購入時などにエラーになります。

payment service、shipment service の起動が必要です。

まず、各サービスをbuildします。
$ cd $GOPATH/src/github.com/isucon/isucon9-qualify
$ make

payment service、shipment service とベンチマーカーのバイナリができます。

それぞれ別ターミナルにて、
$ ./bin/payment

port 5555でpaymentが
$ ./bin/shipment

port 7000 で shipmentが起動します。
これでISUCARIが使えるようになるはずです。

ベンチマークの実行

ベンチマーカーがpayment、shipmentサービスを内包しているので、立ち上げた両サービスは停止する必要があります。

アプリケーションのみが起動していることを確認したら
$ ./bin/benchmarker

とすると、initializeのフェーズからベンチマークが動き始めます。

ベンチマーカーとアプリケーションを別ホストで動かす場合は、benchmarkerの起動時にURLを設定する必要があります。詳しくは
README.md
か ヘルプ
benchmarker -h
を参考にしてください。

参考までに MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports) Intel Core i5 4 CPU モデルでの初期スコアは
2019/09/13 00:12:29 main.go:180: === final check ===
2019/09/13 00:12:29 main.go:212: 3020 0
{"pass":true,"score":3020,"campaign":0,"language":"Go","messages":[]}

これぐらいになりました。httpsでの通信がないためか予選時よりスコアは高くなっています。

なお上記の環境でベンチマークを実行すると、ファンがうねり、バッテリーが1-2%減ります。用法用量を気をつけて実行してください。よいスコア出ましたら、以下のissueに実行した環境と変更点など報告してもらえると、嬉しいです。

https://github.com/isucon/isucon9-qualify/issues/569

どうぞお試しください。
Read more...

↑このページのトップヘ