HDD 比 Ramdisk 更快

HDD 比 Ramdisk 更快

我有一个使用 3x 1tb gen4x4 nvme m.2 驱动器的 raid0。捆绑到驱动器 C:

这是我的固态硬盘速度

在此处输入图片描述


然后我决定看看 ramdisk 是否更快。所以我在驱动器 F 上创建了一个 Ramdisk:

这是虚拟硬盘速度:

在此处输入图片描述


问:我能说 Ramdisk 不好吗?

答案1

完全有可能,一旦您有多个 m.2 设备协同工作,您就可能实现比 RAM 磁盘更高的带宽。

让我们来看一个i7-9700k

最大内存带宽:41.6 GB/s

现在这个数字可能看起来很高,但这只是针对单向长距离传输而言的。RAM 不是全双工的,因此当同时读写时,您将得到一半。

在最好的情况下,这意味着直接读取一个内存块并写入另一个内存块将会看到

最大内存带宽:20.8 GB/s

现在你还必须考虑你正在使用的操作系统和程序。它有文件系统缓存,用于读取或写入数据的缓冲区。从 CrystalDiskMark 缓冲区读取、复制到操作系统直写缓存,然后在最终设备上写入现在是两个不同的读/写操作。这再次减少了写入数据的带宽

最大内存带宽:10.4 GB/s

现在,ramdisk 或 crystaldiskmark 很可能在写入时禁用磁盘缓存,并且在写入期间,ramdisk 软件仅分配一个 RAM 块供程序复制到其中,这就是为什么您会得到更高的数字,但是对于每次读取事务,ramdisk 软件都需要查找数据的存储位置,从而浪费宝贵的 CPU 周期和内存带宽。

很难确切知道为什么 ramdisk 的读取数据比写入数据低这么多。

M.2 驱动器和存储磁盘通常具有一些优势,因为它们不必使用 RAM 来第二次复制所有内容。

对于写入,他们可以看到 20.8GB/s 的数字,一次从程序缓冲区读取,一次从内存复制到 nvme raid 驱动器控制器。

对于读取,他们可能会看到完整的41.6GB/s(或接近 PCIE 带宽可以达到的速度),因为它只是通过 PCIe 将数据复制到内存中,程序不会读取它来检查它,并且操作系统只是在其磁盘缓存的某处为 PCIE 设备提供了一个缓冲区并说“将你的数据放在那里”,而不需要额外的复制、读取或写入。

我们过去使用 ramdisk 的原因是 RAM 带宽通常比存储快几个数量级。巨大的差异使得带宽减半对于我们需要额外提升时来说只是一个相对较小的牺牲。

对于机械硬盘,RAM 的速度仍然快得多,而且 RAM 的寻道时间与机械硬盘相比有天壤之别。在读取某些数据之前必须等待 9 毫秒,这确实会严重影响机械硬盘的随机数据读取,而 ramdisk 的延迟时间以纳秒为单位,速度会快数百万倍,并且根据任务的不同,速度会显著提高。

NVMe 和 PCIe 正在改变这一现状。闪存存储寻道时间远低于机械磁盘,总带宽差异约为其几倍,在某些情况下为 4 倍或 8 倍,而不是像机械磁盘那样慢 10 倍或 100 倍。

相关内容