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
データベースのメモリ管理周り〜OutofMemoryを撲滅したい〜
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Sankyo Toshio
July 20, 2024
Technology
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データベースのメモリ管理周り〜OutofMemoryを撲滅したい〜
最近DB周りで起きたインシデントへの考察と対策をお話します。
Sankyo Toshio
July 20, 2024
More Decks by Sankyo Toshio
See All by Sankyo Toshio
広島発!スタートアップ開発の裏側
tsankyo
0
450
スタートアップの開発とクラウドサービス
tsankyo
0
220
水産業ドメイン可視化と実装のコツ〜釣って捌いて食べてみる〜
tsankyo
1
930
素早く価値を届けるために スタートアップのプロダクトデリバリー戦略
tsankyo
0
720
水産業の辛いポイント、Railsがいてくれたから乗り越えられた
tsankyo
1
1.2k
Other Decks in Technology
See All in Technology
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
5
390
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
350
CVE-2026-20833_脆弱性対応とAES 化について
jukishiya
0
350
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
8k
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
0
190
Tech-Verse 2026_Keynote
lycorptech_jp
PRO
0
130
From Prompt Engineering to Loop Engineering
shibuiwilliam
1
330
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
140
【FinOps】データドリブンな意思決定を目指して
z63d
3
600
そのタスクオンスケですか?
poropinai1966
0
120
金融の未来を考える / Thinking About the Future of Finance
ks91
PRO
0
150
NDIAS CTF 2026 問題解説会資料
bata_24
0
170
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
220
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
400
Balancing Empowerment & Direction
lara
6
1.2k
4 Signs Your Business is Dying
shpigford
187
22k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
440
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
620
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Utilizing Notion as your number one productivity tool
mfonobong
4
340
Building Applications with DynamoDB
mza
96
7.1k
GitHub's CSS Performance
jonrohan
1033
470k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.6k
Transcript
データベースのメモリ管理周り by さんきょー(@t3qyo) Road to SRE NEXT@広島 LT
• さんきょー @t3qyo • PdMとたまにエンジニア • カープファン • 広島Uターンで水産業関連のスタートアップに 自己紹介
2 今、気仙沼(宮城)の カツオが脂のっててお すすめです✨
今日話すこと 3 こういうチューニングもあるよ。 というのがあればぜひ教えてください🙏 最近DB周りで起きたインシデントへの考察と対策をお話します。 本業はDB畑ではないんですが、このインシデントを解決したくて今回の登壇を機 にいろいろ調べました。
最近Sentry がこいつをちらほら 4
あかんやつです😢 5
考察 6 • ここ最近で発生するようになった • 発生タイミングはだいたい決まっている ◦ 一括アップロードを行っているタイミングが怪しいが Staging環境で負荷テストを行っても再現しない(そもそも完全 に本番環境を再現できていない)
一括アップロード単独で発生するわけでもなさそう。 • データベースのスペックは(まだ)問題なさそう。 平時は問題ないので、単純にスケールアップはしたくない ◦ 最大コネクション数 ◦ メモリ
やったこと 7 • Scout APMで重たい処理を確認して、 APIレベルのN+1潰す。使用メモリ削減 • Slow DB Queryを確認して対策
• 小さいクエリでも、毎回DB問い合わせ不要なものはキャッシュを使 う • Postgresの作業メモリ(work_mem)をデフォルト値から増やす
やったこと 8 • Scout APMで重たい処理を確認して、 APIレベルのN+1潰す。使用メモリ削減 •
やったこと 9 • Scout APMで重たい処理を確認して、 APIレベルのN+1潰す。使用メモリ削減 •
やったこと 10 • Slow DB Queryを確認して対策 謎のCOPY文 BIへの定期的な自前コピー処理が原因😭 → 外して、Replicaを使うように
• 小さいクエリでも、毎回DB問い合わせ不要なものはキャッシュを使 う やったこと 11
やったこと 12 • Postgresの作業メモリ(work_mem)をデフォルト値から増やす ◦ work_memが小さいとメモリを使ったクイックソートなどができ ず、実行計画が高くなる(参考) ◦ データ量が増えるにつれて適切な作業メモリを設定する必要があ る(参考)
学び 13 • ScoutAPMでAPIのメモリ使用状況可視化しておいてよかった ◦ ただ、(当たり前だが)DBに直接接続しているクライアントのクエリな どはDB側の監視ツールで把握する必要がある →API、DB両軸での対応が必要 • 単発のSQLでは発生しなくても、ユーザー数増加、他処理との組み合わせで
Out Of Memoryが発生する • Postgresではサービス拡大に合わせた作業メモリ(work_mem)の設定が必 要 • DBバックアップ、コピーの処理もメモリに影響を与えている
これから 14 • DBレベルでのSlow Query、メモリ利用状況をもっとわかりやすく取れるよ うにしたい💪 • AutoScaleしてくれるサービスへの移行も検討していきたい
ありがとうございました Road to SRE NEXT@広島 LT by さんきょー(@t3qyo) こういうチューニングもあるよ。 というのがあればぜひ教えてください🙏