最近、RDS データベースに問題が発生しました。約 15 ~ 20 分おきに、データベースが 1 ~ 2 分間応答しなくなります。応答しない間、空きディスク容量の GB が使用され、その後回復されます。説明が難しいので、監視グラフのスクリーンショットを添付しました。これは 1 時間分です。何が起こっているのか、どこから見始めればよいのか、誰にもわかりませんか?

最近、RDS データベースに問題が発生しました。約 15 ~ 20 分おきに、データベースが 1 ~ 2 分間応答しなくなります。応答しない間、空きディスク容量の GB が使用され、その後回復されます。説明が難しいので、監視グラフのスクリーンショットを添付しました。これは 1 時間分です。何が起こっているのか、どこから見始めればよいのか、誰にもわかりませんか?

ディスクスペースの使用率により、ディスク上の一時テーブルで並べ替えるクエリ結果セットが非常に大きいと思います。Created_tmp_disk_tables確認するには、スパイクが発生したときにカウンターステータス変数の増加を探します。
mysql> show global status like 'Created%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Created_tmp_disk_tables | 56 | <-- this is probably the culprit
| Created_tmp_files | 23 |
| Created_tmp_tables | 3177 |
+-------------------------+-------+
そうである場合、メモリに収まらないほど大きな一時テーブルが発生し、ディスクにスプールする必要があるクエリがある可能性があります。残念ながら、これらの一時的な結果セットの大きさを知ることはできませんが、15GiBのオーダーだと思います。
どのクエリが巨大な一時テーブルを生成しているかを把握し、これらのクエリを最適化するようにしてください。残念ながら、ストックMySQLにはこれを追跡するための適切なログ情報がありません。また、Amazon RDSでは、ストックMySQLをMySQLの拡張フォーク(Percona Serverなど)に置き換えることはできません。クエリログ。
そのため、開発環境に移動してSQLクエリのコードレビューを行い、EXPLAINを1つずつ実行して、ボトルネックがどれであるかを特定する必要があります。