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
1
190
組織のデータリテラシー向上に向けて ~ MIXI データ活用ガイドラインができるまで 〜
mixi_engineers
PRO
6
180
MIXI配信取り組み
mixi_engineers
PRO
2
56
MIXIにおけるWebRTC技術の活用/Use of WebRTC Technology in MIXI
mixi_engineers
PRO
2
120
「人物ごとのアルバム」の精度改善の軌跡/Improving accuracy of albums by person
mixi_engineers
PRO
2
260
「モンスターストライク」の運営を支えるデータ分析基盤の歴史と進化 / History and evolution of the data analysis infrastructure supporting “Monster Strike” operations
mixi_engineers
PRO
3
430
【全貌公開】 MIXI の Atlassian Cloud 移行の裏側 / Behind MIXI's Migration to Atlassian Cloud
mixi_engineers
PRO
0
770
MIXI TECH NOTE #12
mixi_engineers
PRO
2
83
運営11年目タイトルを守る最強の盾の有効性と活用法
mixi_engineers
PRO
2
440
Other Decks in Technology
See All in Technology
Global Azure2025(GitHub Copilot ハンズオン)
tomokusaba
2
770
newmo の創業を支える Software Architecture と Platform Engineering
110y
5
510
Azure & DevSecOps
kkamegawa
2
180
Azure × MCP 入門
ry0y4n
8
1.7k
さくらのクラウド開発の裏側
metakoma
PRO
9
3.2k
使えるデータ基盤を作る技術選定の秘訣 / selecting-the-right-data-technology
pei0804
7
1.2k
正式リリースされた Semantic Kernel の Agent Framework 全部紹介!
okazuki
1
1.1k
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2025年版)
infiniteloop_inc
13
36k
20250514 1Passwordを使い倒す道場 vol.1
east_takumi
0
120
試作とデモンストレーション / Prototyping and Demonstrations
ks91
PRO
0
130
Simplify! 10 ways to reduce complexity in software development
ufried
2
250
AOAI で AI アプリを開発する時にまず考えたいこと
mappie_kochi
1
700
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
41
2.3k
Producing Creativity
orderedlist
PRO
344
40k
Scaling GitHub
holman
459
140k
Making the Leap to Tech Lead
cromwellryan
133
9.3k
Making Projects Easy
brettharned
116
6.2k
Designing for humans not robots
tammielis
253
25k
Documentation Writing (for coders)
carmenintech
71
4.8k
How to train your dragon (web standard)
notwaldorf
91
6k
RailsConf 2023
tenderlove
30
1.1k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Gamification - CAS2011
davidbonilla
81
5.3k
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.