ISUCON初挑戦記

こんにちは、TVerでバックエンドエンジニアをやっている水野です。

こちらは TVer Advent Calendar 2023 の18日目の記事です。

初めてISUCONに挑戦しました。結果は最終スコア0で、悔いが残りますが、次回ISUCON14(開催未定)に向けての備忘録として振り返ります。

参加までの流れ

私がISUCON13に参加したきっかけは、ISUCON夏祭りへの参加でした。

techblog.tver.co.jp

ISUCON夏祭りのハンズオンでprivate-isuを解いたり、トークセッションで先人たちの戦略を聞いたりしているうちに、自分も参加者としてスキルを試してみたいという強い思いが芽生えました。

チームメンバーは社内で募ったSREエンジニア(tomoner_94444)、データチームエンジニア(sy6124)、そして私の3人で構成されました。

ISUCON13 オンラインライブ中継 - YouTube

当日やったこと

各自が当日に行った作業は以下の通りです。詳細は割愛し、サマリのみを記載します。

  • スロークエリ、N+1調査
  • Index貼る
  • tagsテーブルのオンメモリキャッシュ化

tomoner_94444

  • DB分割(アプリ側、DNS)
  • MySQL replication構成
  • HA proxy導入クエリ分散
  • カーネル設定変更 TCP 周り
  • Nginx cache周りの設定追加

sy6124

  • pprofを入れようとして失敗
  • アプリの改善(forでクエリを投げまくっているところのforをなくす

会社からのサポート

株式会社TVerは、ISUCONへの挑戦を後押しする文化があり、以下のサポートを提供していただきました。

また、ISUCON13の企業スポンサーとして、大会への直接的なサポートも行っています。

techblog.tver.co.jp

  1. ISUCON素振り、ISUCON当日を勤務扱い
  2. ISUCON企業スポンサー枠として参加
  3. ISUCON素振り時、会社のAWS SandBox環境を提供
  4. ISUCON当日に、昼食とコーヒーの差し入れ

ISUCON素振り、ISUCON当日を勤務扱い

休日に行ったISUCON素振りとISUCON当日を勤務扱いとして認めて頂きました。勤務扱いにより、土日をフルに使った素振りを行うことができました。ISUCONと通常業務を両立させやすい環境で助かりました。

ISUCON企業スポンサー枠として参加

ISUCON企業スポンサー枠を得て、ISUCON13への参加が可能となりました。これにより、激しいISUCONエントリーの競争をスポンサー枠で回避し、無事に参加できました。

ISUCON素振り時、会社のAWS SandBox環境を提供

ISUCON素振り時、会社のAWS SandBox環境を利用させて頂きました。AWSのコストを気にすることなく、本番同様の素振りができるのは非常にありがたかったです。

ISUCON当日に、昼食とコーヒーの差し入れ

ISUCON当日に、CTOからカツサンド、マネージャー陣からコーヒーとスイーツを差し入れして頂きました。人情厚い差し入れに感謝です!

来年への抱負

今年のISUCONは最終スコア0で終わり、悔しさが残ります。来年が開催されるならば、再び参加し、納得のいくスコアを収めたいと考えています。

最終スコアが0になった原因は恥ずかしいので触れませんが、十分な素振りの時間を確保していれば防げたでしょう。。。来年はさらに準備をして臨みます。

「百聞は一見に如かず」のように、100回のISUCON素振りをしても一回のISUCON本戦参加によって得られる課題と楽しさがあると思います。今回それを知ることができ、ISUCON迷い中の方にはぜひとも参加をおすすめします。

今年のISUCON参加を通じて、自身のバックエンドエンジニアとしての通用する技術や不足している技術を明確にできました。これを日々の業務や自己研鑽に生かしていきます!