对于具有 SSD 驱动器的 Linux 服务器,RAM 中的交换压缩(ZSWAP)是否有益?

对于具有 SSD 驱动器的 Linux 服务器,RAM 中的交换压缩(ZSWAP)是否有益?

我正在尝试在内存利用率高(90%...)的罕见事件期间提高 Web 服务器的性能(响应性),此时 Web 服务器开始大量交换,以帮助更快地进行手动干预并减少错误。我无法为机器添加更多 RAM(32G RAM + 6G 交换分区)。

在这种情况下提高性能的一种方法是在 RAM 中使用压缩交换缓存,以便系统更有效地使用 RAM,并减少 I/O 等待对缓慢非易失性内存的影响。

1999 年的一项早期研究 [1] 表明,与 I/O 操作相比,CPU 越快,压缩交换缓存的好处就越大,而且随着 CPU 速度的提高,这种情况会变得更好。如果使用旋转磁盘,建议使用交换压缩。

我不知道这个提高性能的建议是否仍然适用于只有 SSD 驱动器的服务器。这里的 I/O 操作要快得多,因此收益比旋转磁盘要低。

Linux 3.11 中引入了此功能的实现,通过蘇達2012 年 [2]。有人在服务器上使用过吗?使用纯 SSD 驱动器是否也有好处?

[1]https://www.usenix.org/legacy/event/usenix99/full_papers/wilson/wilson.pdf

[2]https://events.static.linuxfound.org/sites/events/files/slides/tmc_sjennings_linuxcon2013.pdf

答案1

RAM 仍然比 SSD 快得多。您可能看到 NVMe 驱动器的广告宣传速度为 3GB/s,请记住,现代 PC 中的 RAM 可以达到 20-25GB/s。这些只是连续速度,随机访问时间大大优于 NVMe。您说的是毫秒与纳秒。SATA SSD 甚至更慢。

还要记住,Apple 使用内存压缩,并且每台 Mac(低端 iMac 除外)都使用非常快的 SSD。

答案2

为了提高分页系统的响应能力,首先要防止它们分页:

  • 减少应用程序的内存需求
  • 扩展到更多实例
  • 在实例中扩展到更多 RAM

zswap 是你需要自己测试的东西,取决于工作量。在交换设备之前插入压缩缓存会增加开销,这可能会影响响应时间。此外,zswap 仍处于实验阶段并与可能的工作负荷相比进行了轻度测试。

虽然这样做有好处,但需要花费几个小时来调整、测试和监控其运行情况。考虑再购买 32 GB 左右的 RAM,从一开始就防止页面丢失。

相关内容