SODA Engineering Blog
🏆

ISUCON13に参加しました! (チームひろし)

2023/12/09に公開

会社の同僚のりんちひろしチームひろしとして参加しました。
チームメンバー全員今回がISUCON初出場でしたが、結果は35,904点で47位でした!!!(なかなか健闘したと思う)

チーム紹介スライド

タイムライン

記憶を頼りに書いてるので、時間に関してはざっくり区切ってます。

09:00 ~ 10:00

朝マックを食べながら作戦会議。

10:00 ~ 11:00

ざっくり以下のような分担で作業を進めました。

  • cfからのサーバー起動、公開鍵の登録、mysql, nginx周りのセットアップ
  • デプロイ、pprotein周りのセットアップ
  • 当日マニュアル、アプリケーションマニュアル読み込み、エンドポイントまとめ(意外とエンドポイント多くて結局使わなかった)

サーバーを起動してすぐに最初のベンチマーカーを実行をしてスコアは3,813点でした。

11:00 ~ 13:00

  • 簡単に直せそうなn+1や足りないindexを追加(2人)
  • DNS周りのボトルネック調査(1人)

この時点でスコアは10,000点くらいでした。

13:00 ~ 16:00

  • dbから取得したiconデータをsha256でハッシュ値にした値をインメモリキャッシュする
  • getLivecommentsHandlerのn+1を解消
  • getReactionsHandlerのn+1を解消
  • iconデータの304レスポンス対応
  • isupipeのDBを2台目のサーバーに移動

この時点でスコアは37,000点くらいで、全体では10位で大歓喜でした。
記念にスクショを撮りました笑

16:00 ~ 17:00

  • moderateHandlerの訳分からんクエリの修正
  • appサーバーを2台構成にしようと試みる(未達成)
  • getUserStatisticsHandlerの集計処理結果をキャッシュしようと試みる(未達成)

この時間帯はそれぞれボトルネック解消に苦戦していてスコアが全く伸びず苦しい時間帯でした。
残り1時間を切ったところでチームで会話して作業中のものは諦めることに。。。(悔しすぎた)

17:00 ~ 18:00

この時間はmysql,nginx,appサーバーのログを全てにオフにしたり、軽く直せそうなindexの追加などやりました。

ISUCONに初出場した感想

チームひろしはISUCON13に向けて1ヶ月以上前から毎週末オフィスに集まり過去問を解いて練習していました。
直近3回分くらいを割としっかりやり込んだので、上位30位には余裕で入るでしょみたいな自信をチーム全員持っていたので、47位という結果はとても悔しかったです。
DNSの実装を全てインメモリに乗せる修正をしたようなチームもあり、上位に入るようなチームは実装スピードが異常に早いなと驚愕しました。

あとは自分が担当した箇所でサーバーを2台構成にするところで、nginxの初歩の設定で躓いたりしたのが反省点で、素振りの大切さを再認識しました。

結果は満足いくものではなかったけど、その過程のチーム練習がすごく楽しかったり、普段業務ではやらないようなことをできるのが良かったので、来年も必ず参加して優勝したいです!

チームのレポジトリ

https://github.com/rinchsan/isucon13-final

チームメンバーのブログ

https://zenn.dev/team_soda/articles/20231126195358
https://zenn.dev/team_soda/articles/isucon13-final

全体順位

https://isucon.net/archives/57993937.html

SODA Engineering Blog
SODA Engineering Blog

Discussion