SSD 作为 Linux 交换用于大型虚拟内存应用程序?

Jé *_*eue 4 linux ssd cache swap

这个问题主要涉及这一点,但在 64 位 Linux 上运行,我有一组数据缓存 JVM 以及想要一个大型 Web 缓存。今天的每个缓存都配置为完全适合系统内存 (24GB) 并在 LRU 中持久保存到磁盘。

但是,我很好奇如果我们**过度**分配缓存进程并为高优先级 Linux 交换设置 SSD 时的性能。我想知道 Linux 内核是否可能比我们简单的 LRU 进程更智能/更快?

我担心过度分配 JVM 堆并让内核交换堆页面作为 GC,它必须定期遍历所述页面。

小智 5

恐怕我会不同意其他回答。是的,SSD 只会进行 10 万次写入。对于 100GB 驱动器,这意味着写入 10^16 字节,或 3000 年稳定的 100MB/s 数据流。即使负载平衡非常糟糕,您只能获得其中的 1%……嗯。此外,通过丢弃支持解决了性能下降问题,并且现代驱动器在使用时不会显着下降。

是的,拥有更多的服务器和 RAM 会更好,但是虽然现在您可以以 200 美元的价格获得 100GBytes 的 SSD,但具有 100GBytes RAM 的服务器将花费您大约 100 倍 - 仅用于 RAM。功耗也可能是 100 倍。

我认为 SSD 非常适合交换,从少数 IOPS 到数万正是您所需要的。但是:我只是在这里发表意见 - 我很想看到基于 SSD 交换的真实数字。

编辑:为了回答 OP,我同意内核可能比您更聪明(无意冒犯!:-),因此您也可以尝试使用旧的旋转磁盘进行过度分配。