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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Sankyo Toshio
July 20, 2024
Technology
0
160
データベースのメモリ管理周り〜OutofMemoryを撲滅したい〜
最近DB周りで起きたインシデントへの考察と対策をお話します。
Sankyo Toshio
July 20, 2024
Tweet
Share
More Decks by Sankyo Toshio
See All by Sankyo Toshio
広島発!スタートアップ開発の裏側
tsankyo
0
400
スタートアップの開発とクラウドサービス
tsankyo
0
200
水産業ドメイン可視化と実装のコツ〜釣って捌いて食べてみる〜
tsankyo
1
880
素早く価値を届けるために スタートアップのプロダクトデリバリー戦略
tsankyo
0
690
水産業の辛いポイント、Railsがいてくれたから乗り越えられた
tsankyo
1
1.1k
Other Decks in Technology
See All in Technology
vLLM Community Meetup Tokyo #3 オープニングトーク
jpishikawa
0
330
[JAWSDAYS2026]Who is responsible for IAM
mizukibbb
0
480
20260311 ビジネスSWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
270
Security Diaries of an Open Source IAM
ahus1
0
210
AWS DevOps Agent vs SRE俺 / AWS DevOps Agent vs me, the SRE
sms_tech
3
550
us-east-1 に障害が起きた時に、 ap-northeast-1 にどんな影響があるか 説明できるようになろう!
miu_crescent
PRO
13
4.2k
NewSQL_ ストレージ分離と分散合意を用いたスケーラブルアーキテクチャ
hacomono
PRO
3
270
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
870
マルチアカウント環境でSecurity Hubの運用!導入の苦労とポイント / JAWS DAYS 2026
genda
0
530
実践 Datadog MCP Server
nulabinc
PRO
1
100
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
8
7.2k
Yahoo!ショッピングのレコメンデーション・システムにおけるML実践の一例
lycorptech_jp
PRO
1
200
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
240
Navigating Team Friction
lara
192
16k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
350
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
290
The Curse of the Amulet
leimatthew05
1
9.9k
Done Done
chrislema
186
16k
Between Models and Reality
mayunak
2
230
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
53k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
450
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) こういうチューニングもあるよ。 というのがあればぜひ教えてください🙏