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
5k
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
「モンスターストライク」の運営を支えるデータ分析基盤の歴史と進化 / History and evolution of the data analysis infrastructure supporting “Monster Strike” operations
mixi_engineers
PRO
3
220
【全貌公開】 MIXI の Atlassian Cloud 移行の裏側 / Behind MIXI's Migration to Atlassian Cloud
mixi_engineers
PRO
0
260
MIXI TECH NOTE #12
mixi_engineers
PRO
2
40
運営11年目タイトルを守る最強の盾の有効性と活用法
mixi_engineers
PRO
2
300
MIXI における技術広報とその役割
mixi_engineers
PRO
2
310
セキュリティ監視の内製化 効率とリスク
mixi_engineers
PRO
8
2.6k
IT企業でロボットを作った話 / A story about building a robot in an IT company
mixi_engineers
PRO
2
120
「共闘ことばRPG コトダマン」 SREチーム流 アプリのユーザー体験向上を支えるオブザーバビリティ
mixi_engineers
PRO
1
290
MIXI M のこれまでとこれから / Welcome Fintech Community #2
mixi_engineers
PRO
1
290
Other Decks in Technology
See All in Technology
rootful・rootless・privilegedコンテナの違い/rootful_rootless_privileged_container_difference
moz_sec_
0
120
生成AI × 旅行 LLMを活用した旅行プラン生成・チャットボット
kominet_ava
0
130
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
3
590
SpiderPlus & Co. エンジニア向け会社紹介資料
spiderplus_cb
0
660
LangGraphとFlaskを用いた社内資料検索ボットの実装②Retriever構築編
aoikumadaki
0
100
機械学習を「社会実装」するということ 2025年版 / Social Implementation of Machine Learning 2025 Version
moepy_stats
3
410
OCI技術資料 : ファイル・ストレージ 概要
ocise
3
12k
2025年の挑戦 コーポレートエンジニアの技術広報/techpr5
nishiuma
0
110
商品レコメンドでのexplicit negative feedbackの活用
alpicola
1
190
ネットワーク可視化の世界
likr
7
5.7k
Accessibility Inspectorを活用した アプリのアクセシビリティ向上方法
hinakko
0
140
OPENLOGI Company Profile for engineer
hr01
1
18k
Featured
See All Featured
Side Projects
sachag
452
42k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
490
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
Adopting Sorbet at Scale
ufuk
74
9.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
jQuery: Nuts, Bolts and Bling
dougneiner
62
7.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
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.