去年同様に id:hoto17296 と id:jp_taku2 と一緒にDarkというチームで出てきました。
結果は26772点!
去年は0点で、26722 / 0 = ∞(?)倍のスコアなのでこれこそ圧倒的成長ですね!
最終的なランキングも出てましたが、144(=12 ^2)位でした。
きりがいい。
全ランキングが出ると、来年はもっと上位目指すぞという気持ちになっていいですね。
優勝目指すぞ!ってなって、負けたとしても去年よりはあがった!とかわかるととても嬉しいです。
一週間夏休みを取っていたせいで、一番の懸念は当日の朝起きれるかでしたが起きれて良かったです。
(開始時刻遅くなっちゃったけど
開始時刻が遅れたので少しゆっくり目に行ったらインクの塗り合いが行われてたのがハイライトです。
これが #ISUCON か... pic.twitter.com/VML0PWkQfu
— ほと (@hoto17296) 2017年10月21日
やったこと
Appサーバ2台、DBサーバ1台の構成で、言語はPHPを選びました。
- alp + nginx logで計測
- slowlog + pt-query-digestで計測
- PHP + Black Fireで計測
- Varnishで
/icons
用の画像キャッシュ - mysqlをAppサーバにレプリケーション
- Appアクセス時にネットワーク経由でのコストを下げたかった
- けどそこまでスコア上がらず効果が薄めだったので最終的には無しに
当日はprivateにしていましたが、ここのレポジトリを使ってコードを置いたりしていました。
あとは30分毎に今どんな状況だっけみたいな話をしたり誰がどこやってるかみたいなのを整理したりしました。
最後の1時間にsplatoonのラスト1分のBGMを流すとめちゃくちゃ焦ってよかったです(?)
便利だったこと
去年もやったんですが、Makefileによくやる作業をまとめるの便利です。
application server用のMakefile
nginx_log=/tmp/nginx-access.log alp: sudo cat $(nginx_log)|alp --sum --aggregates "/icons/.+" alp/less: sudo cat $(nginx_log)|alp --sum --aggregates "/icons/.+"|less -Ss restart/php: sudo systemctl restart isubata.php.service clean/nginx: sudo rm -f $(nginx_log) $(MAKE) restart/nginx restart/nginx: sudo systemctl restart nginx.service
db server用のMakefile
slow_query=/var/log/mysql/mysql-slow.log slow/ptquery: sudo pt-query-digest $(slow_query) clean/slow: sudo rm -f $(slow_query) sudo systemctl restart mysql.service mysql: mysql -uisucon -pisucon isubata
例えばnginxのログを一度削除して、nginxを再起動したいみたいなコマンドを作ったりしました。
ログを削除するときにログの場所どこだっけとか、
systemctlのコマンドこれであってるっけとか考えなくて良くて、
make clean/nginx
でログを削除して、nginxをリスタートできます。
便利!
去年は色々書いてたけど、今年はあまり書かなかったので、みんなあんまり使ってなかったのが悲しかったです。
コマンドが1コマンドが多いから特にいらんかったみたいな話もありました。
来年はもうちょっと色々書いて便利にしていきたい。
ベンチマーカーも公開されたので、復習していこうと思います。
運営の方々当日大変だったと思いますがとても楽しめました!
ありがとうございました!