非常高的RDS MySQL内存

可以用你的帮助来理解这一点。 我正在运行一个RDS MySQL实例(SSD上的db.m3.large)和100GB的存储空间。

我有点吓坏了,我的记忆是50%

图表http://f.cl.ly/items/2130242A0K040E392h0L/10.png

我必须做错事,因为服务器在这一点上并没有被大量使用。 这是过去两周的图表:

2周使用图表http://f.cl.ly/items/2y411W0z0I1V1T0T3O3T/11.png

正如你所看到的,CPU大部分是0%,DB连接低,写/读操作也是低的。

我运行所有的InnoDB表。 唯一想到的(这可能会增加内存如此之高)是我的分析function。 我有一个表(分片),其中存储分析计算的每日摘要。 该表有4个中文字段,所以我已经改变了InnoDB使用该表的Barracuda文件格式(这样我可以row_format=compressed )。 这是唯一的数据库参数,这是不是默认的实例(一切都是开箱即用)。

我甚至没有在这个表中有很多行,现在最大的行可能是35kb。 最大的客户有56行(我也没有很多客户)。 所以我很惊讶这是什么可能导致…

你能告诉我为什么我的记忆可能会如此之高(又叫我搞砸了)吗? 是否因为MySQLcaching我的分析查询/结果? 或者是别的什么?

关于发生了什么的提示是在“Freeable Memory”图表中。 如果你的数据库在进程内存中保存了很多表数据和索引数据,那么这个数字会比现在小得多。 就目前而言,Freeable几乎和Total一样大。

按照devise工作,在这里没有什么可看的。 请设置PANIC = FALSE。