🙃

ISUCON14に初参加して撃沈しました

2024/12/09に公開

はじめに

これは2024年12月8日(日)のISUCON14に初参加して無事撃沈した記録です!
言語はGoを使って、最終スコアは5421点で834チーム中329位、学生99チーム中35位でした。上位に食い込めずかなり悔しい...
結果は残念でしたがとても楽しかったです!!

つよつよ記事ではないので、温かい目でみていただけると幸いです😇
CyberAgent 26th Fresh Engineer's Advent Calendar 2024の9日目の記事も兼ねてます!(内定者のアドベントカレンダーなのに、撃沈したという内容で面目ないです🫠)

チーム

チーム名

チーム名は「torima」です!
参加登録の時にチーム名を全く決めていなくて、とりあえずの意味で「torima」にしてたら、名前考えるの忘れててそのまま出場しました笑

メンバー

インターン等で知り合った同じ26卒の@ogiogi_dayo@KaguraGatewayを誘って3人で出場しました〜!
自分含め全員がISUCON初参加でしたが、頼もしいメンバーを集めることができました!!

準備

メンバー集めて意気込んだはいいものの、ISUCON初参加のくせに就活や研究で全然時間とれず、前日に必死に練習しました😇
午前中に有名な「達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践」を通読して、ふむふむと思いつつ、午後からISUCON13の環境を実際にEC2で立てて練習しました。
各種ツールで計測してボトルネックを特定し、インデックス貼ってベンチマークしてみたりして流れをつかんでいきました。
夜に当日の流れやよく使うコマンド、ざっくりとした初動を話し合いました。
圧倒的に準備不足です...😣

当日のタイムライン

9:00

Discordに集合。起床に成功したため今のところは優勝ペース

9:30

YouTubeライブを見る。ライドチェアサービスの語感が良すぎる。チェア〜〜!!!

10:00 (922点)

競技開始。とりあえずEC2を立てて、初回ベンチマークを実行してみる。スコアは922点
@ogiogi_dayoがGitHubやslow-query-logなどの各種設定をしつつ、自分と@KaguraGatewayがレギュレーションやコードを読む
ISUCON13と構成は大きく変わらなそうで一安心

10:30 ~ 11:00 (3623点)

とりあえず各テーブルに必要そうなインデックスを貼ってみる。スコアが3623点に上昇!!
ここでリーダーボードをみると全体4位に浮上!初動はよさそう
「最初で最後かもしれないね〜」と話してたら、本当にそうなりました...😇

アクセスログの結果をみて、重いエンドポイントを手分けして改善をしていくことにする

11:00 ~ 12:00 (0点)

色々な修正を加えつつベンチマークを回すが、途中でベンチマークが落ちるようになる。
直前の変更とは明らかに違う場所で落ちていて、原因がわからず。。変更のRevertのRevertのRevertのPRが出る😇
結局少し前の変更が原因で、「バグがあるのになんで動いてたんだよ!!」状態に😢

12:00 ~ 14:30 (4511点)

お昼ご飯をもぐもぐ食べつつ、重そうなN+1やDBクエリを潰していき、少しずつスコアを伸ばす
修正してログを見るとボトルネックが別のところに移っていて、次だ次!と進めていく
ただ、スコアは大きくは伸びておらず、スコアの要件をちゃんと読んで改善にあたればよかったな〜と今は思っています。来年頑張る

16:00 ~ 17:00 (7745点)

@KaguraGatewayがAPPとDBのサーバ分割、自分と@ogiogi_dayoがアプリケーションの改善を行うように役割を分担する
サーバ分割がうまく動いたタイミングで、スコアが一気に伸び、歓声が上がる!🙌
アプリケーションの方も、地道に改善を続けて5000点を超えるようになる!

17:00 ~ 18:00 (5421点)

サーバ分割の方で最高スコアの7829点を出し、アプリケーションの改善と統合すると1万点乗るかも!と話していたが、 統合するとベンチマークが落ちるようになる。ここの修正が間に合わず、単一サーバの方でスコアを提出することに...
他チームでもこの現象は起きていたようで、もう少し時間があれば解決できそうな原因だったこともあり、悔しい結果に😢

感想

ISUCONって敷居高そうだな〜〜と思っていましたが、チームでわいわい開発できて、とても楽しいイベントでした!!
初出場ながら、ボトルネックを改善することでスコアが伸びていくのを実感できました!!
普段使ってるクラウドのオートスケールの偉大さも感じました...
反省点は

  • 圧倒的準備不足!!!
  • パフォーマンスチューニングに気を取られていて、アプリの内容や、どうやったらスコアが上がるかという部分を考えられていなかった...

です
来年はもっと勉強して、強くなって戻ってきます! オフラインで参加してみたいな〜

運営・スポンサーの方々ありがとうございました!

GitHubで編集を提案

Discussion