ISUCON6の感想書くまでがISUCONと聞いた #isucon

isucon.net

予選がすべて終了して感想も解禁ということなので、ざっくりと感想をば。

会社の同僚と参加しましたが、結果的には予選敗退ということで残念な結果に終わりました。自分は初参加でしたがこの結果はとても悔しいですねぇ……ボトルネックの部分の洗い出しはちゃんと行われていただけに、そこを徹底的につぶしていけなかったのが敗因ですね。

開始直後の1時間ぐらいの情報集めやあれこれ設定などはインフラ担当のかたが素早くやられて、特に問題なく進んでいった感じでした。自分ともう一人はruby実装の作りを見たりMySQLのデータをのぞいたりと情報集め。作りとしてはisudaがブラウザからのアクセスやキーワードの登録、ログインなどを担当していて、isutarがスターまわりの管理をしていて相互にデータ通信している、それとは別に中身のわからないspamチェック用サーバが動いているということが判明。とりあえず方針を決めて、余計な通信や処理しているところは削除したり処理を置き換えたりしていく。

この段階でrack-lineprofつかって計測とかしていて、ボトルネックになるのはisuda.rbのhtmlifyメソッドということはわかっていたんですが、ここ手をつけるの大変じゃね?と後回しに……ここでもうちょっと強くおしておけばよかったかなと思ったり。

github.com

このあとベンチマーカーを通してメッセージ等出てきたら原因になりそうなところを探してつぶすみたいなことをしていたが、あまり点数も上がらず時間は過ぎていくばかり。結局、終了2時間程前になってhtmlifyメソッドを改善していくことになりDBにテーブル追加したり、キャッシュしたりして5万台まで持って行ったがタイムアウト

終わってみると時間のかかっている箇所をいかに早くするかという、通常のWebアプリでもよくある話だったなぁという印象です。巨大な正規表現と変換処理をどうするかってところに注力していれば予選突破できたかなぁという感触です。

それにしても終わったあとはくたくたになっておりました。おかげで今風邪気味……しっかり養生します。