前回は webapp を Azure 上に deploy しました。 今回は bench tool を 同じ Virtual Machines 上に配備したいと思います。
ベンチマークの取り方
ここでは Virtual Machines に deploy した webapp と同じ場所でベンチツールを実行するようにしてみます。
isucon5-qualify/gcp/bench/ansible の配下にある 02_xbuild_part.yml と 06_deploy_bench_tool.yml を少し修正します。
02_xbuild_part.yml
---
- hosts: all
- sudo: yes
- sudo_user: isucon
+ #sudo: yes
+ #sudo_user: isucon
gather_facts: no
tasks:
- git:
@@ -14,6 +14,7 @@
creates: /home/isucon/.local/ruby/bin/ruby
- hosts: all
+ become: true
gather_facts: no
tasks:
# java
06_deploy_bench_tool.yml
---
- hosts: all
gather_facts: no
- sudo: yes
- sudo_user: isucon
+ # sudo: yes
+ # sudo_user: isucon
tasks:
- git:
repo=https://github.com/isucon/isucon5-qualify.git
@@ -17,6 +17,7 @@
chdir: /home/isucon/isucon5-qualify/bench
- hosts: all
+ become: true
gather_facts: no
以下を実行します。
% YOUR_IP=13.XXX.XXX.XXX # 適宜変更してください
% YOUR_KEY=~/.ssh/id_rsa # 適宜変更してください
% ansible-playbook --private-key="${YOUR_KEY}" -u isucon 02_xbuild_part.yml 06_deploy_bench_tool.yml
jq が入ってないと思うので install します。
sudo apt install jq
bench を実行します
cd ${HOME}/isucon5-qualify/bench
jq '.[0]' < ../webapp/script/testsets/testsets.json | gradle run -Pargs="net.isucon.isucon5q.bench.scenario.Isucon5Qualification 127.0.0.1"
とりあえずこんな結果になりました。
{
"valid" : true,
"requests" : 193,
"elapsed" : 80419,
"done" : "[{Isucon5InitExecutor},{BootstrapChecker},{Isucon5Load,Isucon5Load,Isucon5Load,Isucon5Load,Isucon5Checker}]", "responses" : {
"success" : 138,
"redirect" : 54,
"failure" : 1,
"error" : 0,
"exception" : 0
},
"violations" : [ ]
}
ちなみに使用しているサイズは Basic A2 (2 コア、3.5 GB メモリ) です。