Slide 1

Slide 1 text

© 2024 Wantedly, Inc. Ruby でもなんとかなる ISUCON13 公式反省会 2024-01-11 Hayato Kawai / @fohte

Slide 2

Slide 2 text

© 2024 Wantedly, Inc. あなた誰 名前: @fohte (ふぉーて) 川井 颯人 (Hayato Kawai) 所属: ウォンテッドリー株式会社 趣味: 🎮 🎹

Slide 3

Slide 3 text

© 2024 Wantedly, Inc. 初出場 49 位 (35,524 点) 🎉 @fohte @unblee @gedorinku チーム名: gefoun

Slide 4

Slide 4 text

© 2024 Wantedly, Inc. 感想 ● 初出場で 49 位は善戦できたのでは ○ 欲を言えば 30 位以内に入りたかった ● Ruby でもなんとかなることがわかった

Slide 5

Slide 5 text

© 2024 Wantedly, Inc. チームの戦略 ● Ruby でがんばる ○ 書き・読み慣れているため ● プロファイリングは APM にまかせる ○ 慣れているため

Slide 6

Slide 6 text

© 2024 Wantedly, Inc. Ruby でがんばる

Slide 7

Slide 7 text

© 2024 Wantedly, Inc. Ruby でがんばる ● ISUCON は上位入賞を目指すなら Go でやるべき? ○ そうかも ○ 今回も上位 30 チーム中 Go が 29 チームで Ruby は 1 チーム ● でも Ruby が一番読み書きに慣れているし… ● => アプリケーションの速度より自分たちの速を優先

Slide 8

Slide 8 text

© 2024 Wantedly, Inc. Ruby でがんばる ● チームの作戦「とにかく N+1 を潰す」 ● Ruby でも N+1 を解消していくだけでスコアは上がった ○ 実際に本番でやったことは、N+1 改善とアイコンの静的配信が 9 割

Slide 9

Slide 9 text

© 2024 Wantedly, Inc. Ruby でがんばる ● つまり… Ruby でもなんとかなるのでは? ○ なんとかしたい ○ 優勝を目指すなら Ruby は厳しい? ○ 少なくとも 30 位以内に入るなら Ruby でも善戦できそう

Slide 10

Slide 10 text

© 2024 Wantedly, Inc. プロファイリングは APM にまかせる

Slide 11

Slide 11 text

© 2024 Wantedly, Inc. プロファイリングは APM にまかせる ● プロファイリングは Datadog APM に丸投げした

Slide 12

Slide 12 text

© 2024 Wantedly, Inc. プロファイリングは APM にまかせる ● なぜ Datadog APM なのか? ○ 単に「ISUCON でよく使われるツール」を知らなかった ○ 普段使っていて慣れているし、便利

Slide 13

Slide 13 text

© 2024 Wantedly, Inc. プロファイリングは APM にまかせる ● 最も便利だった機能: 「リクエストが多くレスポンス時間が長い エンドポイント」を降順で一覧する ○ テーブルの上から改善していくだけでスコアが延びていく ● 他にもボトルネックを見つけるための機能が揃っている ○ 特定のリクエストで時間がかかっている処理も見れる ○ MySQL のクエリログも見れる ○ ただ今回の場合、DNS の負荷には気付けなかった

Slide 14

Slide 14 text

© 2024 Wantedly, Inc. プロファイリングは APM にまかせる ● Datadog APM の失敗: 高い 😇 ○ ホスト課金: $18.75/host/month ○ APM: $38.75/host/month ○ ISUCON は 3 台なので…… 💸 ■ 対策として 1 台にだけ Datadog Agent を入れて APM を有効化した ■ それでも高い 😇

Slide 15

Slide 15 text

© 2024 Wantedly, Inc. プロファイリングは APM にまかせる ● パワー (金) で解決 ○ おすすめはしません

Slide 16

Slide 16 text

© 2024 Wantedly, Inc. さいごに

Slide 17

Slide 17 text

© 2024 Wantedly, Inc. さいごに ● Ruby でもなんとかなる (なりそう) ● Datadog APM 便利 (だけど失うものがある)

Slide 18

Slide 18 text

© 2024 Wantedly, Inc. さいごに 謝辞 ● ISUNARABE がめちゃくちゃ便利でした ● 『達人が教えるWebパフォーマンスチューニング 〜ISUCON から学ぶ高速化の実践』最高でした