約100GBあったRDSの空き容量が約30分で空き容量0になる現象が発生しました。
空き容量が不足した結果、RDSのストレージオートスケーリング機能が発動して、空き容量約10GBまで回復したようです。(下図)
気になる点としてはこの現象が発生した時間帯付近で、通常ではありえない数の読み込み/書き込みが発生していました。(下図)
下記のSQLで、どのデータベース・テーブルのサイズが大きくなっているのか確認しました。
SQL
1SELECT 2 table_schema "DB", 3 sum( table_rows ) "Table Rows", 4 sum( data_length + index_length ) / 1024 / 1024 / 1024 "Data (GB)", 5 sum( data_free )/ 1024 / 1024 / 1024 "Free Space (GB)" 6FROM information_schema.TABLES 7GROUP BY table_schema;
その結果が下表です。my_app_dbはアプリケーションで使用しているDBです。
これを見ると、アプリケーションのDBは100GBも使っていないですが、information_schemaの空き領域が異常に大きいように思います。
information_schemaが空き領域を確保しすぎていることが容量不足の原因でしょうか。
その場合、どうしたらこの状態を改善できそうでしょうか。
DB | Table Rows | Data (GB) | Free Space (GB) |
---|---|---|---|
information_schema | NULL | 0.000183105469 | 1098.375000000000 |
mysql | 134419 | 0.007693754509 | 0.005859375000 |
performance_schema | 4037614 | 0.000000000000 | 0.000000000000 |
my_app_db | 1757505 | 0.997558593750 | 0.221679687500 |
sys | 6 | 0.000015258789 | 0.000000000000 |
ちなみにこの減少が発生した時間帯付近の空きメモリ容量も急激に現象していました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。