Edited at

isuconでよく使うツールをまとめてみた

昨年のisucon7に続いて、今年もisucon8の予選に参戦した kopug です。

結果は…アレですが、非常に今回も楽しまさせて頂きました。

運営の皆様本当にお疲れ様でした。そしてありがとうございました!

さて、今回はisuconでサクッと使えて、便利なツールたちをまとめてみます。


netdata

netdata


Install

$ bash <(curl -Ss https://my-netdata.io/kickstart.sh)

$ sudo systemctl start netdata

常に外部モニタで写して状況を確認できるようにしていました。System Overview みて違和感を感じたら詳細を見るみたいな。


dstat

dstat

ある程度当たりをつけて負荷計測 -> 設定 or コード変更をしているときには、netdataではなく dstatを使ってます。


Siege

$ siege -c 300 -t 10S -b -i --log=/tmp/siege.log -f ./urls.txt

Lifting the server siege...
Transactions: 439 hits
Availability: 100.00 %
Elapsed time: 9.83 secs
Data transferred: 58.21 MB
Response time: 2.05 secs
Transaction rate: 44.66 trans/sec
Throughput: 5.92 MB/sec
Concurrency: 91.35
Successful transactions: 446
Failed transactions: 0
Longest transaction: 6.76
Shortest transaction: 0.00

LOG FILE: /tmp/siege.log
You can disable this log file notification by editing
/home/vagrant/.siege/siege.conf and changing 'show-logfile' to false.

ab(Apache Bench)に似ていますが、これは複数URLに対して実行ができます。POSTやcookie等も渡せるので、isuconで毎回Portalのベンチマークを実行するにはちょっと待ち時間がかかるので、あたりが付いているときは、これで局所的にベンチをかけて調整をしました。


Kataribe

Apache/Nginx/H2O/Varnishncsa 等で使えるLog Profilerです。

今回はH2Oだったので、READMEに書いてあるとおりにLogFormatを変更して使いました。

Portalのベンチマークを動かしたらまずはこれで確認をする流れを作っています。


pt-query-digest

MySQL の SlowQuery をこれで発見することができます。何が嬉しいかというと slowlogを吐かなくても tcpdumpの結果から解析をすることもできるので、

一時的に見るのが手軽でいいですね


最後に

今回 isucon8は1人枠ができたので、そちらで参戦をしました。

そこで感じたメリット/デメリットを書いてみます。


  • メリット


    • 開発環境を作らなくていい

    • isuconアカウントを自分好みに使える (.vimrc .tmux .zshrc etc)



  • デメリット


    • 手が足りない。時間の刻むスピードが3倍早く感じる

    • さみしい。ただひたすら寂しい。笑


      • 思わず Alexaに話しかけてしまう