Skip to content

ISUCONの練習時に使えるベンチマーカーWebUI

Notifications You must be signed in to change notification settings

logica0419/remote-bmi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Remote-BMI

Client CI Pipeline Server CI Pipeline CodeQL

(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による管理をオススメします。

About

ISUCONの練習時に使えるベンチマーカーWebUI

Topics

Resources

Stars

Watchers

Forks

Languages