読者です 読者をやめる 読者になる 読者になる

日頃の行い

個人的な日頃の行いをつらつら書いてます\\\\ ٩( 'ω' )و ////

(今更の)ISUCON 5オンライン予選に参加して来ました

既に1ヶ月が経とうとしてるけどISUCONに出た時の思い出です。
9/27(日)にISUCONのオンライン予選にチーム「dark」として参加してきました。
darkの由来は Dark - Developers at Real Kommunity | Doorkeeper です
一緒に参加してくれた @hoto17296 @jp_taku2 ありがとう!
参加した時の反省とかを諸々日記みたいな形で書こうかなと思います。

isucon.net

最終的に出たスコアは約5300点でした。
1万点遠い・・・

やったこと

  • kataribeでログ解析
  • / のチューニングひたすら
  • N+1のクエリがたくさんあったのでとりあえず減らしていく

という感じでした。
kataribeについてはこちらを参考に・・・

arata.hatenadiary.com

工夫とか

Makefile

大体何度も打つコマンドはすぐ打てるようにしておくべきと思ってるので、Makefileを利用して何度も打つコマンドはすぐに打てるようにしました。
Makefile便利です。
便利さについてはこちらがわかりやすいです。

VOYAGE GROUP エンジニアブログ : 超便利!Makefileを作ってmakeするのは想像よりもずっと簡単だった

例えば下記のようなMakefileを用意しておけば
やばい!急いでrubyのコードをリロードしないといけない!って焦っている時でも間違えずに同じコマンドを打つことが出来ます。

ruby-reload:
    systemctl stop ruby-isucon
    systemctl start ruby-isucon

Makefile便利です。インターフェイスですね。

その他

開始前はチームで一つのインスタンスでやると環境揃えるのめんどくさいなぁって思ってました。
が、自分のユーザホームで git clone file:///home/isucon/path/to/rubyとかやったら結構上手く行ったので結構便利でした。
gitはfileプロトコルもいけるので便利ですね。

やりたかったこと

なんとなく試したかったのは記事のタイトルを取るためにsplit処理が走ってたりしたので、DB設計を変えてアプリケーションの責務を減らしたかったなぁと思いました。
ただ、途中アプリケーションがバグり、ベンチがFailしまくって切り戻すのに時間がかかったので難しかった感じでした。
今はもうベンチツールも公開されているので試してみたいなと思います。

isucon.net

感想

今回のは素直にチューニングしていくだけでも結構良い感じにできる気がした。
ただ、素直にチューニングしていった結果どうなるのかがわかってないので、もう一度解くことをしようと思いましたとさ。
あと、ISUCONはほんと大学受験っぽさあって
過去問も満足に解けないなら記念受験にしかならないので修行しようと思いますた。
無能さを実感できてよかった。