feature image

2023年12月4日 | ブログ記事

ISUCON13「リアクティブ二子玉川~♪」34位(学生6位) 参加記

ISUCON13に@pikachu@ikura-hamu@h1rono_kで「リアクティブ二子玉川~♪」として出場し、全体34位、学生チーム内では6位(多分)になりました。

GitHub - reactive-futakotamagawa/isucon13
Contribute to reactive-futakotamagawa/isucon13 development by creating an account on GitHub.

チームメンバー(役割分担)

全員学士2年の3人チームで出場しました。みんなウェブ系に関わり始めたのが大学入ってからにしては、結構頑張ったのではないかなと思います。

例年であれば学生枠で本選出場できる順位ですが、今年は30位までしか賞品が無いので、惜しくも獲得できず悲しい。

pikachu

traPでISUCON講習会を開催したものです。記事はこちら ISUCON初心者向け講習会のテキストを作り、開催しました!
2回目の出場で、競技中の役割は「ひたすら改善に集中する」で、スコアを上げまくりました。最上位チームの研究をして対策をしていたかいもあり、結果的に34位のスコアまで上げることが出来ました。

データベースのチューニング(インデックスを貼ったり)をした後、サーバー3台のリソースを全部良い感じに使えるように3台構成にしたり、インメモリキャッシュでN+1を改善したりしました。
本当は最後の方にN+1を4箇所くらい直す修正をしたのですが、failして間に合わなかったのが悔いです。手数を増やせるようにさらに演習を積んで来年も挑みたいと思います。

ikura-hamu

初出場でした。事前準備ではツールの整備を行いました。チームメイトからの評判もそこそこよかったです。記事はこちら 【 #ISUCON 】 最近の若者は ssh しないらしいですよ 僕はアプリの実装をずっといじってたのでほとんどsshしませんでした。DNSをいじるのにはさすがにsshしてたはず。

競技中は主にアプリの改善を担当して、N+1をJOINしたりキャッシュしたりしました。アイコンに304を返すやつは最初のuserテーブルにハッシュを持とうとしたらなぜか整合性チェックで怒られ、メモリに切り替えたら通りはしましたが、304では返されておらず不思議でした。プリントデバッグしようとしたのですがログが出てこず、おかしいなと思っていたら、アプリが違うサーバーに移ったのを忘れて別のサーバーのログを見ていました。結果ダブルクォーテーションがついているかどうかの違いだったのですが、修正したらむしろ点が下がり、時間も無かったので諦めました。後半はこればっかりしていて時間を食ってしまったので申し訳ないです。

h1rono

git奉行とデプロイ→ベンチマーク実行、スコアのtag付け、緊急時のバグ修正を担当しました。

PowerDNSのMySQLバックエンドを1台目から3台目のサーバーに分けようとしましたが、失敗しました。

改善記録

レポジトリ: https://github.com/reactive-futakotamagawa/isucon13

初動やる事まとめ: https://md.trap.jp/s/BYNELQi-7

10:00 競技開始

10:09 3742点 初期スコア

10:18 3442点 の環境構築ツールにより環境構築が完了

10:24 3527点 アクセスログとスローログの有効か、秘伝のタレの流し込み

11:14 3992点 LivestreamRankingのN+1修正

11:23 8930点 上位クエリにINDEXを貼り、アプリのコネクション数を増やした

11:41 10251点 さらにINDEXを追加し、InterpolateParamsをtrueに変更

11:51 12016点 TagModelのキャッシュ

12:16 12652点 2台構成

12:49 13418点 unix domain socket

競技上の不備でベンチマークが回せなくなり、ベンチマーク実行待ちの改善が溜まり始める......

13:36 11935点 prepared statement を使う

13:37 15464点 UserRankingのN+1修正

14:00 11661点 getUserLivestreamsgetReactionsを並列処理

14:08 16565点 moderateのN+1修正

14:30 17196点 INDEXをさらに追加で貼った

15:51 53054点 3台構成(s1:dnsDB s2:DB s3:アプリ)

16:22 49549点 jsonをsonicに

16:49 31898点 不正に500を返していたのを修正

17:11 55263点 cacheUser

17:23 39755点 アイコンでハッシュが一致したら304を返す

17:28 fail点 cacheTheme cacheLivestreamTags

17:34 47960点 ログを完全に切る

17:59 47291点 再起動試験をして、最終スコア

来年は優勝するぞ!

pikachu icon
この記事を書いた人
pikachu

VRChatに住んでいる、重度のケモナーです。よろしくね!

ikura-hamu icon
この記事を書いた人
ikura-hamu

SysAd班、ゲーム班 いろいろやりたい

H1rono_K icon
この記事を書いた人
H1rono_K

趣味プログラマー(大学生)

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2023年11月26日
ISUCON13にツールの力で勝ちたかった(mazrean)
mazrean icon mazrean
2021年9月21日
ISUCON11 traP CM制作についての小話
dan_dan icon dan_dan
2023年11月26日
【 #ISUCON 】 最近の若者は ssh しないらしいですよ
ikura-hamu icon ikura-hamu
2022年7月24日
ISUCON12に向けてダッシュボードを自作してログを可視化しました
Ras icon Ras
2023年12月5日
部内ISUCON「PISCON」を開催しました!
cp20 icon cp20
2023年11月22日
ISUCON初心者向け講習会のテキストを作り、開催しました!
pikachu icon pikachu
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記