最近我们的RDS数据库出现了问题,大约每15-20分钟,数据库就会在一两分钟内无响应.使用无响应的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 |
+-------------------------+-------+
Run Code Online (Sandbox Code Playgroud)
如果是,您可能会遇到一些查询,这些查询会导致临时表大到足以使它们无法容纳在内存中,并且必须假脱机到磁盘.不幸的是,你不能找出如何这些临时较大的结果集,但我想这是15吉布的顺序.
您应该弄清楚哪些查询正在生成巨大的临时表并尝试优化这些查询.不幸的是,MySQL没有良好的日志记录信息来跟踪这一情况,而且Amazon RDS不允许您用MySQL的增强型分支代替MySQL,例如Percona Server,它会以慢速方式为您提供这些信息.查询日志.
因此,您必须转到开发环境并对SQL查询进行一些代码检查,逐个通过EXPLAIN运行它们,并确定哪个是瓶颈.