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
6
3k
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
【D2-5】MIXI SREの最新事例まるわかり! 〜 各事業のSRE活動にかかわるエンジニアに本音を聞く | #MTDC2024 | MIXI TECH DESIGN CONFERENCE 2024
mixi_engineers
PRO
3
89
【D2-7】共闘ことばRPG コトダマンの自律分散型QA組織 | #MTDC2024 | MIXI TECH DESIGN CONFERENCE 2024
mixi_engineers
PRO
1
35
【D2-S1】MIXIオンプレミス設備のこれまでとこれから~そして印西へ~ | #MTDC2024 | MIXI TECH DESIGN CONFERENCE 2024
mixi_engineers
PRO
1
60
【D2-6】モンスト10周年における真獣神化実装担当者が10年分の形態変化の設計をイチから作り直した話 | #MTDC2024 | MIXI TECH DESIGN CONFERENCE 2024
mixi_engineers
PRO
2
85
【D2-8】WordPressのヘッドレス運用化 〜minimo roomのJamstack構成移行プロジェクト〜 | #MTDC2024 | MIXI TECH DESIGN CONFERENCE 2024
mixi_engineers
PRO
2
43
【D2-S2】Kotlin と Flutter を愛であう会 for Android開発 | #MTDC2024 | MIXI TECH DESIGN CONFERENCE 2024
mixi_engineers
PRO
2
67
なんで私に登壇依頼が?! ~頼られるエンジニアになるためには~ /
mixi_engineers
PRO
2
250
【D1-3】フィギュアスケートにおける自動追尾カメラ開発 - 位置情報+AI画像解析 | #MTDC2024 | MIXI TECH DESIGN CONFERENCE 2024
mixi_engineers
PRO
1
320
【D1-6】netkeibaにおける機械学習を用いた競馬オッズ予測手法の開発とその変革 | #MTDC2024 | MIXI TECH DESIGN CONFERENCE 2024
mixi_engineers
PRO
1
310
Other Decks in Technology
See All in Technology
M&A戦略を支えるデータマネジメント (MIDAS Tech Study #16 GENDA Komiyama)
kommy339
1
150
今日からできる!簡単 .NET 高速化 Tips -2024 edition-
xin9le
7
4.6k
しくじり先生、PharmaXのLLMアプリケーション開発の失敗を語る
pharma_x_tech
0
110
M5stackで使用できるpHセンサの開発
shinrinakamura
0
260
MixIT 2024 - Pulumi : Gérer son infra avec son langage de programmation préféré
ju_hnny5
1
120
止まらないLinuxシステムを構築する_高信頼性クラスタ入門
koedoyoshida
3
2.3k
Rustで「プリズモイダル法」を利用して「土量計算」をガチでやる
nokonoko1203
1
340
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
3
410
Microsoft for Startups Founders Hub_20240429 update
daikikanemitsu
1
2.4k
認知症フレンドリーテックとスタックチャン
naokiuc
0
350
「知的単純作業」を自動化する、地に足の着いた大規模言語モデル (LLM) の活用
nrryuya
1
990
How to do well in consulting–Balkan Ruby 2024
irinanazarova
0
170
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
22
1.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
25
2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
21
1.6k
Testing 201, or: Great Expectations
jmmastey
30
6.4k
The Mythical Team-Month
searls
217
42k
Designing Experiences People Love
moore
136
23k
Bash Introduction
62gerente
605
210k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
1.9k
Unsuck your backbone
ammeep
664
57k
Art, The Web, and Tiny UX
lynnandtonic
290
19k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
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.