我们一直在RDS中使用MariaDB,我们注意到交换空间越来越高,没有被回收。然而,可用的记忆似乎很好。请检查附件。
实例类型:db.t2.micro
可用内存:125Mb
交换空间:每24小时增加5Mb
IOPS:已停用
存储:10Gb(SSD)
很快RDS将占用所有交换空间,这将给应用程序带来很多问题。 有没有人有类似的问题? 什么是最大交换空间? (在文档中没有找到任何内容)
请帮忙!
答案 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