似乎我们的数据库服务器正在以越来越快的速度进行垃圾收集,这似乎很正常,因为它正在增长。什么时候切换到更大的实例有什么好的经验法则,我不是 DBA,也没有参考框架。现在,只要只剩下 100mb,它似乎每 2-3 天就会进行一次垃圾收集。
服务器本身有 1.7GB 的 RAM。
似乎我们的数据库服务器正在以越来越快的速度进行垃圾收集,这似乎很正常,因为它正在增长。什么时候切换到更大的实例有什么好的经验法则,我不是 DBA,也没有参考框架。现在,只要只剩下 100mb,它似乎每 2-3 天就会进行一次垃圾收集。
服务器本身有 1.7GB 的 RAM。
在切换服务器型号之前,您需要了解配置方面的差异
我坐下来仔细查看了所有通常写在 my.cnf 中的默认 MySQL 设置。所有的值都是相同的,除了两个
亚马逊根据服务器型号设置以下值
有关更多信息,请参阅我过去关于 Amazon RDS 中 MySQL 的帖子
Sep 21, 2012
: MySQL 5.5 内存不足,创建多个数据库时断开所有连接Sep 18, 2012
:如何减少 AWS RDS MySQL 上的数据库大小?Sep 10, 2012
:Amazon RDS 备份/快照服务是否锁定表?Aug 02, 2012
:本地数据库与 Amazon RDSJul 25, 2012
:扩展 Percona 数据中心:设置和复制刚刚遇到这个问题,可以给你一些建议。
如果您在接近达到某种资源限制时尝试衡量何时迁移到更大的实例(而不是增加数据库的大小):内存、I/O 和 CPU 都有能力限制你的表现。
您在问题中提到的症状可能是您正在使用越来越多的内存的症状 - 用于缓存和缓冲区的内存正在被回收用于其他用途。升级到大型实例类型将增加可用内存量。
Rolando 发布的图表应该为您提供关于可用连接数量的良好指南 - 如果您达到这些限制,那么是时候升级了。可用连接与可用内存直接相关,因此达到连接限制意味着您应该升级。
如果您的 CPU 平均 > 50% 左右,您可能需要开始计划升级。
最后,如果您看到持续较高的 I/O,您可能需要考虑使用更大的实例(通常,实例越强大,I/O 越好)或使用预配置的 IOPS。