ISUCON11に参加した #isucon
今年もISUCONに元同僚の id:int128 先生と id:translucens 先生と gosoudan3というチームで参加してきました。
昨年のブログはこちら。
今年は事前準備で以下の目標を立てました。
- 今年は150位くらいを目標
- サーバーのリソースを有効に使えるような構成にしたい
- DB冗長化を疑う
戦略としては王道の以下の3つの方針です。
- Webサーバー設定での改善
- DBの改善
- アプリの改善
結果としては 28336 で 159位相当でした。去年が246位相当だったので、ほぼ目標通りの結果となりました。
行った主な改善は以下のとおりです。
- AP 2台、DB 1台構成に変更
- DBにIndex付与
- N+1の改善
- 都度インサートをバルクインサートに変更
/trendと/isuの1秒以上リクエストを潰し切るのがなかなかできなかったのと、グラフ表示の加点については結局手が出せないまま時間切れでした。
パフォーマンスの計測はnginxの$request_timeログとCloud ProfilerによるCPU時間で順番にボトルネックを潰すやり方でした。
CDについては昨年同様GitHub Actionsによるtag pushデプロイでした。
終わった後の反省としては以下が上がりました。
- tagとスコアの関係がわからなくなった
- performance_schemeオフするのを忘れた
- API Mockの注意書きを忘れてた
- ブランチ戦略はスコアが上がったらmainにマージにする方針がよさそう
- パラメータ変更のところは環境変数に切り出しでもよかったかも
- Cloud Profilerはあってもなくてもスコアはあんまり変わらなかった
途中のベストスコアは34226点でした。ただこれ以上大きくスコアは伸ばせなかったのは悔しさが残るところです。
来年も開催されることがあれば、また上位を目指したいと思います。
運営の皆さん、参加された皆さんお疲れさまでした。