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
Aurora MySQL version 3でTempTable溢れの振り返り
Search
MIXI ENGINEERS
PRO
September 12, 2023
Technology
7
5.2k
Aurora MySQL version 3でTempTable溢れの振り返り
9/11に開催された、【Chatwork × みてね勉強会】EKS&Aurora最新ノウハウでお話させていただいた、みてねSREの伊東の登壇資料です。
MIXI ENGINEERS
PRO
September 12, 2023
Tweet
Share
More Decks by MIXI ENGINEERS
See All by MIXI ENGINEERS
プロジェクトマネジメント実践論|現役エンジニアが語る!~チームでモノづくりをする時のコツとは?~
mixi_engineers
PRO
3
210
スクラムマスターなしでもいい感じにスクラム開発している話
mixi_engineers
PRO
1
210
組織のデータリテラシー向上に向けて ~ MIXI データ活用ガイドラインができるまで 〜
mixi_engineers
PRO
6
230
MIXI配信取り組み
mixi_engineers
PRO
2
99
MIXIにおけるWebRTC技術の活用/Use of WebRTC Technology in MIXI
mixi_engineers
PRO
2
150
「人物ごとのアルバム」の精度改善の軌跡/Improving accuracy of albums by person
mixi_engineers
PRO
2
270
「モンスターストライク」の運営を支えるデータ分析基盤の歴史と進化 / History and evolution of the data analysis infrastructure supporting “Monster Strike” operations
mixi_engineers
PRO
3
460
【全貌公開】 MIXI の Atlassian Cloud 移行の裏側 / Behind MIXI's Migration to Atlassian Cloud
mixi_engineers
PRO
0
790
MIXI TECH NOTE #12
mixi_engineers
PRO
2
93
Other Decks in Technology
See All in Technology
Autonomous Database サービス・アップデート (FY25)
oracle4engineer
PRO
1
750
Vibe Codingの裏で、 考える力をどう取り戻すか
csekine
2
590
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
770
Eight Engineering Unit 紹介資料
sansan33
PRO
0
3.4k
TypeScript をより型安全に扱うプラクティス #TSKaigi #TSKaigi2025_kataritai
bengo4com
0
2.1k
impressions-trying-lambda-web-adapter
junkishigaki
2
150
基調講演: 生成AIを活用したアプリケーションの開発手法とは?
asei
1
100
Generational ZGCのメモリ運用改善 - その物理メモリ使用量、本当に正しい?
tabatad
1
290
「伝える」を加速させるCursor術
naomix
0
540
GitHub Copilot Use Cases at ZOZO
horie1024
1
490
Ретроспективный взгляд на Vue 3. Даша Сабурова, Vue-разработчик Lamoda Tech
lamodatech
0
140
ai bot got sick (abc 2025s version)
kojira
0
160
Featured
See All Featured
How GitHub (no longer) Works
holman
314
140k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Designing for Performance
lara
609
69k
Music & Morning Musume
bryan
46
6.6k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Producing Creativity
orderedlist
PRO
346
40k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Making Projects Easy
brettharned
116
6.2k
Practical Orchestrator
shlominoach
188
11k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Cult of Friendly URLs
andyhume
79
6.4k
Transcript
Aurora MySQL version 3での TempTable溢れの振り返り 【Chatwork × みてね勉強会】EKS&Aurora最新ノウハウ
MIXI, Inc. 自己紹介 株式会社MIXI Vantageスタジオ みてねプロダクト開発部 基盤開発グループ SREチーム
伊東 宏起 https://hekki.info
MIXI, Inc. 家族アルバム みてねの紹介 写真プリント フォトブック スマホで撮影した子どもの写真や動画を家族と共有し、 コミュニケーションして楽しむ家族アルバムサービスで す。
MIXI, Inc. 家族アルバム みてねの紹介 利用者数1,800万人を突破(2023年5月時点) ※ iOS・Android™ アプリ登録者数、ブラウザ版登録者数の合計 7言語・175の国と地域でサービスを提供
MIXI, Inc. 本日お話する内容 - 障害発生時のタイムライン - 障害の原因を分析 - 再発防止策
- まとめ
MIXI, Inc. 障害発生時のタイムライン - ある日のピークタイム、APIサーバーの全面に配置されているALBのHTTPCode_Target_5XX_Countが急 激に増加しアラートが発報 - アプリケーションログを確認したところ The
table is full というエラーが頻発していることが判明 - Aurora MySQLクラスターのライターインスタンス・リーダーインスタンスそれぞれクエリを投げてみると、 リーダーインスタンスのみで同様のエラーが出ていることに気づく - そこで新しいリーダーインスタンスを追加してみたところエラーが出ない - インスタンス固有の問題と勘違いし、既存のリーダーインスタンスを削除したところ、新しいリーダーインス タンスでも同様のエラーが発生 - ピークタイムの終わりに伴って負荷が下がった結果、自然とエラーが解消
MIXI, Inc. - TempTableストレージエンジンとは? - MySQL8.0で登場した、テンポラリテーブルのためのストレージエンジン - 基本的にインメモリで動作しつつ、データが大きすぎる場合にディスク領域も確保する -
TempTableストレージエンジンがテンポラリテーブルに割り当てることができるメモリ・ディスク領域の上限 はそれぞれtemptable_max_ram, temptable_max_mmap で定義されている - どちらもデフォルト値は1GB 障害の原因を分析 TempTableストレージエンジンが確保 したメモリ・ディスク領域のサイズが上限値を超えてしまった
MIXI, Inc. - Aurora MySQL 3系のリードレプリカの場合、Aurora DB クラスター独 自のストレージアーキテクチャによりテンポラリテーブルの挙動が異 なる
- aurora_tmptable_enable_per_table_limit はデフォルトで0 - temptable_max_ram を超えるまでメモリ領域を確保 - メモリ領域を使い切ったら temptable_max_mmap 超えるまでディスク領域を 確保 - ディスク領域も使い切ったら The table is full となる 障害の原因を分析(つづき) TempTableストレージエンジンが確保したメモリ・ディスク領域のサイズが上限値を超えてしまった 引用元: https://aws.amazon.com/jp/blogs/database/use-the-temptable-storage-engine-on-amazon-rds-for-mysql-and-amazon-aurora-mysql/
MIXI, Inc. - TempTableストレージエンジンがメモリ・ディスクをどのぐら い確保しているかを可視化 - prometheus-mysql-exporterを導入してメトリクスを収集 ・Grafanaで可視化 -
https://github.com/prometheus/mysqld_exporter - 実績値を元に temptable_max_ram, temptable_max_mmap を 十分に引き上げ - 初手の応急処置ではリーダーインスタンスの台数を増やす ことでエラーを抑止したが、リーダーインスタンスを安全に 元の台数に戻すこともできた 再発防止策
MIXI, Inc. - Aurora MySQL 3へのアップグレードに伴って私達の環境で発生した障害を振り返りました - アップグレード時に下記のようにケアしていれば、障害を起こすことはなかったはずなので反省
- temptable_max_ram, temptable_max_mmap を予め引き上げておく - アップグレード後にテンポラリテーブルの使用状況を確認 - temptable_max_ram, temptable_max_mmap を適正値まで調整 - 同様の問題に遭遇したエントリーが散見されるので、Aurora MySQL 3系のお使いの場合は参考にしてい ただけると幸いです まとめ
MIXI, Inc.