我在同一个 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%),否则系统不会进行交换。