既に1ヶ月が経とうとしてるけどISUCONに出た時の思い出です。
9/27(日)にISUCONのオンライン予選にチーム「dark」として参加してきました。
darkの由来は Dark - Developers at Real Kommunity | Doorkeeper です
一緒に参加してくれた @hoto17296 @jp_taku2 ありがとう!
参加した時の反省とかを諸々日記みたいな形で書こうかなと思います。
最終的に出たスコアは約5300点でした。
1万点遠い・・・
やったこと
- kataribeでログ解析
- / のチューニングひたすら
- N+1のクエリがたくさんあったのでとりあえず減らしていく
という感じでした。
kataribeについてはこちらを参考に・・・
工夫とか
Makefile
大体何度も打つコマンドはすぐ打てるようにしておくべきと思ってるので、Makefileを利用して何度も打つコマンドはすぐに打てるようにしました。
Makefile便利です。
便利さについてはこちらがわかりやすいです。
VOYAGE GROUP エンジニアブログ : 超便利!Makefileを作ってmakeするのは想像よりもずっと簡単だった
例えば下記のようなMakefileを用意しておけば
やばい!急いでrubyのコードをリロードしないといけない!って焦っている時でも間違えずに同じコマンドを打つことが出来ます。
ruby-reload: systemctl stop ruby-isucon systemctl start ruby-isucon
やりたかったこと
なんとなく試したかったのは記事のタイトルを取るためにsplit処理が走ってたりしたので、DB設計を変えてアプリケーションの責務を減らしたかったなぁと思いました。
ただ、途中アプリケーションがバグり、ベンチがFailしまくって切り戻すのに時間がかかったので難しかった感じでした。
今はもうベンチツールも公開されているので試してみたいなと思います。
感想
今回のは素直にチューニングしていくだけでも結構良い感じにできる気がした。
ただ、素直にチューニングしていった結果どうなるのかがわかってないので、もう一度解くことをしようと思いましたとさ。
あと、ISUCONはほんと大学受験っぽさあって
過去問も満足に解けないなら記念受験にしかならないので修行しようと思いますた。
無能さを実感できてよかった。