RDS吃掉所有的交换空间

时间:2016-05-23 14:32:48

标签: amazon-web-services memory swap aws-rds

我们一直在RDS中使用MariaDB,我们注意到交换空间越来越高,没有被回收。然而,可用的记忆似乎很好。请检查附件。

实例类型:db.t2.micro

可用内存:125Mb

交换空间:每24小时增加5Mb

IOPS:已停用

存储:10Gb(SSD)

很快RDS将占用所有交换空间,这将给应用程序带来很多问题。 有没有人有类似的问题? 什么是最大交换空间? (在文档中没有找到任何内容)

请帮忙!

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:2)

在RDS中启用增强监控使事情变得更加清晰。 显然我们需要关注的是Committed Swap而不是Swap Usage。我们能够看到我们有多少 Free Swap

我现在也相信MySQL只是因为那里有太多空间而在swap中转储东西,即使它并不是真的急需内存。

答案 1 :(得分:1)

有人有类似的问题吗?

我在不同的实例类型上有类似的问题。即使您切换到具有更多内存的更高实例类型,交换的趋势仍然存在。

AWS的说明,您可以找到here

仅当当前正在访问页面(例如,执行查询)时,Amazon RDS数据库实例才需要在RAM中具有页面。如果先前未使用过,则以前执行的查询带入RAM的其他页面可以刷新以交换空间。最佳做法是让操作系统(OS)交换较旧的页面,而不是强制操作系统将页面保留在内存中。这有助于确保有足够的可用RAM用于以后的查询。

分辨率:

同时检查 FreeableMemory SwapUsage Amazon CloudWatch指标,以了解数据库实例的整体内存使用模式。检查这些指标,以确保FreeableMemory指标的减少与SwapUsage指标的增加同时发生。这可能表明数据库实例的内存受到压力。

最大交换空间是多少?

通过启用增强监控,您应该能够看到操作系统指标,例如The amount of swap memory free, in kilobytes. 查看详细信息here