あいつの日誌β

働きながら旅しています。

isucon5 予選の復習を Azure 上でやってみる(2)

前回は webapp を Azure 上に deploy しました。 今回は bench tool を 同じ Virtual Machines 上に配備したいと思います。

ベンチマークの取り方

ここでは Virtual Machines に deploy した webapp と同じ場所でベンチツールを実行するようにしてみます。

isucon5-qualify/gcp/bench/ansible の配下にある 02_xbuild_part.yml06_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 メモリ) です。