2

我们一直在 RDS 中使用 MariaDB,我们注意到交换空间在没有被回收的情况下变得越来越高。然而,可释放的内存似乎很好。请检查附件。

实例类型:db.t2.micro

可用内存:125Mb

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

IOPS:禁用

存储 : 10Gb (SSD)

很快,RDS 会吃掉所有的交换空间,这会给应用程序带来很多问题。有没有人有类似的问题?最大交换空间是多少?(在文档中没有找到任何东西)

请帮忙!

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

2

有没有人有类似的问题?

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

您可以在此处找到来自 AWS 的解释

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

和决议:

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

最大交换空间是多少?

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

于 2020-05-11T11:37:43.343 回答
2

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

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

于 2016-05-24T15:01:07.903 回答