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
5.7k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Aurora MySQL version 3でTempTable溢れの振り返り
9/11に開催された、【Chatwork × みてね勉強会】EKS&Aurora最新ノウハウでお話させていただいた、みてねSREの伊東の登壇資料です。
MIXI ENGINEERS
PRO
September 12, 2023
More Decks by MIXI ENGINEERS
See All by MIXI ENGINEERS
セキュリティ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
180
WEBフロントエンド研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
47
AI研修(Day1)【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
210
AI研修(Day2)【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
150
データ活用研修 問いの発見と仮説構築【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
54
データ活用研修 データマネジメント【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
57
QA・ソフトウェアテスト研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
53
データベース研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
70
ソフトウェアアーキテクチャ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
130
Other Decks in Technology
See All in Technology
CloudWatchから始めるAWS監視
butadora
0
120
「待ち時間」の消滅と「自我消耗」の加速:生成AI時代のエンジニアを救うメンタル・リソース管理
poropinai1966
0
110
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
2
1k
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
270
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
480
SoccerMaster: A Vision Foundation Model for Soccer Understanding
kzykmyzw
0
180
論語・武士道・産業革命から見る かわるもの、かわらないもの
ichimichi
6
720
StepFunctionsとGraphRAGを活用した暗黙知活用のためのRAG基盤
yakumo
0
170
AI Native なプロダクト組織の立ち上げ方 : 生産性 100 倍への挑戦
mikesorae
0
1.4k
副作用のある Lambda でも Lambda Power Tuning は使えるのか / lambda-power-tuning-side-effects
koukihosaka
2
150
kaonavi Tech Night#1
kaonavi
0
170
AI時代こそ、スケールしないことをしよう -「作る人」から「なぜ作るか」を考える人へ / Do Things That Don't Scale in the AI Era — From How to Why
kaminashi
1
130
Featured
See All Featured
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
The SEO identity crisis: Don't let AI make you average
varn
0
520
Abbi's Birthday
coloredviolet
3
8.8k
The Language of Interfaces
destraynor
162
27k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
A better future with KSS
kneath
240
18k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
660
RailsConf 2023
tenderlove
30
1.5k
Fireside Chat
paigeccino
42
4k
ラッコキーワード サービス紹介資料
rakko
1
4M
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
The Cost Of JavaScript in 2023
addyosmani
55
10k
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.