├── bench # ベンチマーカーなどが依存するパッケージのソースコード
├── cmd # ベンチマーカーなどのソースコード
├── docs # 運営が用意した各種ドキュメント
├── initial-data # 初期データ作成
├── provisioning # セットアップ用ansible
└── webapp # 各言語の参考実装
こちらのblogでも紹介しています。参考にしてください http://isucon.net/archives/53805209.html
# 初期データ作成
$ cd initial-data
$ make
# 初期画像データダウンロード
$ 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
$ make
$ ./bin/benchmarker
Version: Go 1.13 or later
$ ./bin/benchmarker -help
Usage of isucon9q:
-allowed-ips string
allowed ips (comma separated)
-data-dir string
data directory (default "initial-data")
-payment-port int
payment service port (default 5555)
-payment-url string
payment url (default "http://localhost:5555")
-shipment-port int
shipment service port (default 7000)
-shipment-url string
shipment url (default "http://localhost:7000")
-static-dir string
static file directory (default "webapp/public/static")
-target-host string
target host (default "isucon9.catatsuy.org")
-target-url string
target url (default "http://127.0.0.1:8000")
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto "https";
proxy_set_header True-Client-IP $remote_addr;
$ ./bin/shipment -help
Usage of shipment:
-data-dir string
data directory (default "initial-data")
payment
はオプションなし。
nginxでいい感じにするなら以下の設定が必須
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto "https";
cd webapp/sql
# databaseとuserを初期化する
mysql -u root < 00_create_database.sql
# データを流し込む
./init.sh
cd webapp/go
make
./isucari
技術情報などについても記載されているので参考にしてください。
MySQL 5.7および8.0にて動作確認しています。
ただし、nodejsでアプケーションを起動する場合、MySQL 8.0の認証方式によっては動作しないことがあります。 詳しくは、 https://github.com/isucon/isucon9-qualify/pull/316 を参考にしてください