昨年のisucon7に続いて、今年もisucon8の予選に参戦した kopug です。
結果は…アレですが、非常に今回も楽しまさせて頂きました。
運営の皆様本当にお疲れ様でした。そしてありがとうございました!
さて、今回はisuconでサクッと使えて、便利なツールたちをまとめてみます。
netdata
Install
$ bash <(curl -Ss https://my-netdata.io/kickstart.sh)
$ sudo systemctl start netdata
常に外部モニタで写して状況を確認できるようにしていました。System Overview みて違和感を感じたら詳細を見るみたいな。
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に話しかけてしまう