(BMI = Bench Marker Interface)
ISUCONの練習時に使える、簡易的なベンチマーカーWebUI
プライベートネットワークで競技用サーバーと繋がったベンチマークサーバーで動かすことを想定しています。
リポジトリ直下にconfig.json
というファイルを作って下さい。
同様のスキーマであればyamlでも大丈夫です。
{
"address": ":3000", // Remote-BMIがリッスンするアドレス
"mysql": { // MySQLの設定
"hostname": "localhost", // ホスト
"port": 3306, // ポート
"username": "isucon", // ユーザー名
"password": "isucon", // パスワード
"database": "remote_bmi" // データベース名
},
"version": "isucon11-qualify", // 実行するベンチマークコマンドのバージョン
// server/benchmark/command.go に全てのコマンドをmapでまとめ、そのキーを"version"に入れます。
"bench_ip": "localhost" // ベンチマークサーバーのプライベートIPアドレス
}
環境変数でも設定できます。
export ADDRESS=":3000"
export MYSQL_HOSTNAME="localhost"
export MYSQL_PORT="3306"
export MYSQL_USERNAME="isucon"
export MYSQL_PASSWORD="isucon"
export MYSQL_DATABASE="remote_bmi"
export VERSION="isucon11-qualify"
export BENCH_IP="localhost"
Node.js環境とGo環境が必要です。 リポジトリをクローンした上で、リポジトリのルートディレクトリでコマンドを実行してください。
make init
make build
リポジトリのルートディレクトリにremote-bmi
という名前の実行用バイナリが生成されます。
ビルドを実行した上で、バイナリファイルと設定ファイルをお好きな場所に設置し、下記のコマンドを入力するとサーバーが立ち上がります。
{バイナリまでのパス}/remote-bmi serve -c {設定ファイルのパス}
ベンチマークサーバー内でのsystemdによる管理をオススメします。