isucon11予選に出場して敗退した
isucon11に予選に出場して敗退したのでやったことのまとめ。 スコア的には本戦出場かしないかくらいのところにいる気がするのですごく悔しい。 チーム名は「牡蠣に当たるときの効果音→カッキーン」
当日のリポジトリはこちら
メンバー
当日一緒に出てくれたメンバーの紹介
pinkumohikan
我らがリーダー
常に冷静沈着でいい感じに指示を出してくれます
インフラアプリ何でもできるすごい人
cureseven
アプリガシガシ直していく担当
isucon公式ソングの歌ってみたを一番早く出した人
自分の担当
サーバー分離とかミドルウェア周りの整備とかをする人
なんとか調べてなんとかしてます
当日やったこと
このissueを見るとだいたい流れがわかるので、大きなところだけ。
10:00~11:00
いつも設定するやつを設定していました。
ここは練習したので、30分程度でいつも終わっています。
pincmohikanがindex貼ったり、curesevenがDBのconnection数や動的プレースホルダなどを行いました。
僕はDBの負荷が結構あったのでアプリとDBの分離を行いました。
この時点でスコア21701で6位を取って興奮してました。
11:00~12:00
pincmohikanがバルクインサートを設定してくれていました。
12:00~13:00
mysql8にして「ORDER BY timestamp DESC」となっていた箇所にindexを効くように変更。
insertが重かったのでmysql にinnodb_autoinc_lock_mode =2を設定して少しだけスコアが伸びる。
13:00~15:00(ご飯もこのあたり)
varnishと格闘していた思い出しかなく、何もできていない感・・・
設定への理解不足が辛かった。
ここは設定できなくて挫折。
15:00~16:00
Web2台DB1台構成に変更。
半々の割合くらいでリクエストを各サーバーへ飛ばすように変更。
16:00~終わりまで
ほそぼそとチューニングをしていました。
再起動に問題がないかを最終チェック。
あとはなにかSQL書いていた気がします。
まとめ
最終スコア31位にいて悔しい気持ちでいっぱいです。
今年はどのチームよりも練習した自信があるだけすごく悔しいです。
16回近く練習に付き合ってくれたチームメンバーには感謝しかないです。ありがとうございます!
来年こそは、本戦に出たいなと思います。
運営の皆さんお疲れさまでした。