我应该关闭 AWS EC2 上的交换功能吗?

我应该关闭 AWS EC2 上的交换功能吗?

我在同一个 AWS EC2 实例上运行 Web 服务器和数据库服务器。我知道交换 Web 服务器是个坏主意,所以我应该关闭它吗?它会影响数据库服务吗(我想不会,但我不确定)。如果会,我该如何关闭它?

我正在运行 Amazon Linux AMI。

谢谢 ;-)。

答案1

一般来说,不,即使您有足够的 RAM,也不应该禁用交换。使用交换可以提高系统性能,因为很少使用的内存的内容可以复制到交换中,然后可以重新分配内存以执行一些有用的操作。

但是,有时也会出现奇怪的情况。你从哪里得到“为 Web 服务器设置 swap 是个坏主意”的信息?

答案2

不。不。不。不。不。不。

此外,您掌握的信息也是错误的:

我知道用 swap 来代替 web 服务器是个坏主意

答案3

亚马逊建议您根据工作负载调整服务器:

“使用交换空间进行内存分页不如使用 RAM 快或高效。如果您的工作负载定期将内存分页到交换空间,则应考虑迁移到具有更多 RAM 的更大实例类型。”

Amazon 将为 c1.medium 和 m1.small 实例添加交换分区。其他实例默认没有交换分区。

因此,如果我们听从人们的建议去信任你的操作系统,你的操作系统就会告诉你不应该有交换。

答案4

关闭服务器的交换并不是一个好主意。如果您认为系统有足够的内存可用,则可以设置 vm.swappiness = 10(或任何较小的值)。这样,除非内存不可用(已使用 90%),否则系统不会进行交换。

相关内容