Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ruby でもなんとかなる - ISUCON13 公式反省会
Search
Hayato Kawai
January 11, 2024
Technology
0
160
Ruby でもなんとかなる - ISUCON13 公式反省会
「ISUCON13 公式反省会【参加者限定】」の LT 資料です。
https://connpass.com/event/304701/
Hayato Kawai
January 11, 2024
Tweet
Share
More Decks by Hayato Kawai
See All by Hayato Kawai
巨大 tfstate に立ち向かう技術
fohte
1
390
RubyKaigi で LT 初登壇したきっかけと感想
fohte
1
980
Datadog Logs を活用して SLO 監視基盤を構築する
fohte
3
1.4k
The Journey of rubocop-daemon into RuboCop
fohte
1
1.2k
Ruby as Shell script
fohte
1
540
rubocop-daemon 裏話: OSS の苦悩
fohte
2
610
RuboCop Server Mode の仕組み
fohte
1
300
Ruby を使ったプロダクト開発を支えるオブザーバビリティ基盤
fohte
2
160
インシデントコマンダーやってみた
fohte
5
1k
Other Decks in Technology
See All in Technology
開発スピードは上がっている…品質はどうする? スピードと品質を両立させるためのプロダクト開発の進め方とは #DevSumi #DevSumiB / Agile And Quality
nihonbuson
1
270
Googleマップ/Earthが一般化した 地図タイルのイマ
mapconcierge4agu
1
190
SCSAから学ぶセキュリティ管理
masakamayama
0
140
The 5 Obstacles to High-Performing Teams
mdalmijn
0
250
テストアーキテクチャ設計で実現する高品質で高スピードな開発の実践 / Test Architecture Design in Practice
ropqa
3
480
DeepSeek on AWS
hariby
1
200
自動と手動の両輪で開発するデータクレンジング
estie
2
190
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
550
データの品質が低いと何が困るのか
kzykmyzw
5
930
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
16
3.4k
インフラをつくるとはどういうことなのか、 あるいはPlatform Engineeringについて
nwiizo
4
710
Server Side Swift 実践レポート: 2024年に案件で採用して見えた課題と可能性
yusuga
2
470
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Thoughts on Productivity
jonyablonski
69
4.4k
How to train your dragon (web standard)
notwaldorf
90
5.8k
How GitHub (no longer) Works
holman
313
140k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Bash Introduction
62gerente
610
210k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Speed Design
sergeychernyshev
25
780
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Transcript
© 2024 Wantedly, Inc. Ruby でもなんとかなる ISUCON13 公式反省会 2024-01-11 Hayato
Kawai / @fohte
© 2024 Wantedly, Inc. あなた誰 名前: @fohte (ふぉーて) 川井 颯人
(Hayato Kawai) 所属: ウォンテッドリー株式会社 趣味: 🎮 🎹
© 2024 Wantedly, Inc. 初出場 49 位 (35,524 点) 🎉
@fohte @unblee @gedorinku チーム名: gefoun
© 2024 Wantedly, Inc. 感想 • 初出場で 49 位は善戦できたのでは ◦
欲を言えば 30 位以内に入りたかった • Ruby でもなんとかなることがわかった
© 2024 Wantedly, Inc. チームの戦略 • Ruby でがんばる ◦ 書き・読み慣れているため
• プロファイリングは APM にまかせる ◦ 慣れているため
© 2024 Wantedly, Inc. Ruby でがんばる
© 2024 Wantedly, Inc. Ruby でがんばる • ISUCON は上位入賞を目指すなら Go
でやるべき? ◦ そうかも ◦ 今回も上位 30 チーム中 Go が 29 チームで Ruby は 1 チーム • でも Ruby が一番読み書きに慣れているし… • => アプリケーションの速度より自分たちの速を優先
© 2024 Wantedly, Inc. Ruby でがんばる • チームの作戦「とにかく N+1 を潰す」
• Ruby でも N+1 を解消していくだけでスコアは上がった ◦ 実際に本番でやったことは、N+1 改善とアイコンの静的配信が 9 割
© 2024 Wantedly, Inc. Ruby でがんばる • つまり… Ruby でもなんとかなるのでは?
◦ なんとかしたい ◦ 優勝を目指すなら Ruby は厳しい? ◦ 少なくとも 30 位以内に入るなら Ruby でも善戦できそう
© 2024 Wantedly, Inc. プロファイリングは APM にまかせる
© 2024 Wantedly, Inc. プロファイリングは APM にまかせる • プロファイリングは Datadog
APM に丸投げした
© 2024 Wantedly, Inc. プロファイリングは APM にまかせる • なぜ Datadog
APM なのか? ◦ 単に「ISUCON でよく使われるツール」を知らなかった ◦ 普段使っていて慣れているし、便利
© 2024 Wantedly, Inc. プロファイリングは APM にまかせる • 最も便利だった機能: 「リクエストが多くレスポンス時間が長い
エンドポイント」を降順で一覧する ◦ テーブルの上から改善していくだけでスコアが延びていく • 他にもボトルネックを見つけるための機能が揃っている ◦ 特定のリクエストで時間がかかっている処理も見れる ◦ MySQL のクエリログも見れる ◦ ただ今回の場合、DNS の負荷には気付けなかった
© 2024 Wantedly, Inc. プロファイリングは APM にまかせる • Datadog APM
の失敗: 高い 😇 ◦ ホスト課金: $18.75/host/month ◦ APM: $38.75/host/month ◦ ISUCON は 3 台なので…… 💸 ▪ 対策として 1 台にだけ Datadog Agent を入れて APM を有効化した ▪ それでも高い 😇
© 2024 Wantedly, Inc. プロファイリングは APM にまかせる • パワー (金)
で解決 ◦ おすすめはしません
© 2024 Wantedly, Inc. さいごに
© 2024 Wantedly, Inc. さいごに • Ruby でもなんとかなる (なりそう) •
Datadog APM 便利 (だけど失うものがある)
© 2024 Wantedly, Inc. さいごに 謝辞 • ISUNARABE がめちゃくちゃ便利でした •
『達人が教えるWebパフォーマンスチューニング 〜ISUCON から学ぶ高速化の実践』最高でした