ISUCON11の予選にチーム「iwamot solo」で参加したものの、参考順位299位という厳しい結果に終わりました。一昨年のISUCON9が参考順位98位、昨年のISUCON10が参考順位66位だったので、今回は惨敗だと感じています。
一番の敗因は、Sinatraに不慣れなためにソースコードの改善にもたついてしまったことでした。現在の勤務先では主にRubyが使われているので競技でもRubyを選んだのですが、Sinatraアプリをメンテナンスする機会はまずないんですよね。
そんなわけで、競技時間中に実施できたことは下記くらいでした。
- サーバ構成の変更(Web+Appサーバ、Appサーバ、DBサーバ)
- インデックスの追加
- NginxとMySQLのちょっとしたチューニング
- calculate_condition_levelメソッドの高速化
- リクエストを落としている部分のコメントアウト
他にも試したいことがたくさんあったのですが、前述の不慣れな部分をあれこれ調べているうちに終了時間を迎えてしまった感じです。
今回の惨敗で思ったのは、勉強や練習に時間をかけなければ予選通過は無理そうだなということでした。ISUCON以外にも時間をかけて取り組みたいことがあるので、まあぼちぼちですかね。