在 Windows 上使用 AS-SSD,我发现我的 Kingston A2000 的读取速度为 2000 MB/s,写入速度为 1700 MB/s。在 ubuntu 20.04.2 上使用 GNOME-DiskUtility 基准测试,它的读取速度为 2100 MB/s,但写入速度为 430 MB/s
我遗漏了什么?这实际上是在 Proxmox 主机的两个客户操作系统中完成的,每次测试都会将相同的 SSD 传递给它们。
答案1
如果您确实想测试 NVMe 驱动器,则需要一个驱动器大小 1/1000 的文件来刷新驱动器缓存,否则您只是在比较缓存速度。因此,在 1TB 驱动器上,您的测试文件大小应为 1GB。根据需要调整驱动器大小。您使用什么程序在 Windows 中进行基准测试?
我有一对 500gb PCIe 4.0 Samsung 980 Pro 硬盘,安装在 Linux raid 0 中,对于一个 1GB 的文件(分区大小的 1/1000),我获得了 13.0 GB/s 的速度,正好是我预期的速度。我的写入速度约为 1.3 GB/s,比您在 Windows 基准测试(如 Crystal Disk Mark)上获得的速度要低得多。我不确定这是为什么。但是,我已经进行了一些实际测试,从 PCIe 3.0 1TB 硬盘读取并写入我的 raid,大文件超过 35GB,我的 raid 以 PCIe 3.0 硬盘的最大读取速度写入,这表明 Ubuntu 中的 Disk Bench 已关闭,实际性能很好。
因此,我们知道的是:两个完全不同的系统使用 Gnome-Disk-Utility 获得相似的读写比,但我的独立测试表明 Ubuntu 测试在某种程度上存在“缺陷”或报告了某种其他类型的写入测试,例如随机写入。
如果您有第二个 NVMe 可以读写,那么您可以进行真实的实际测试,方法是:
fallocate -l 100G test.img
这会快速创建一个充满零的 100GB(107.4GiB)假文件,然后用秒表来回移动它。我得到的速度在 1.8 GB/s 和 2.3 GB/s 之间,具体取决于我要怎么做。我还有另一对 4.0 驱动器正在路上,打算将我的操作系统放在 Linux Raid 5 NVMe 阵列上,当我拿到它们时,以及我还在等待的附加 4.0 卡,我计划最初将它们设置为 Raid 0 中的一对,并来回运行这个测试,并对一些真实文件(如磁盘映像)进行计时。对于 ME 来说,基准测试很棒,但我想知道真实世界的性能。
我忘了添加我的评论。NVMe 驱动器具有相当快的 NAND 闪存,但它们的实际速度来自驱动器上的快速缓存,某些测试仅通过填充缓存来给人一种错误的速度感,而像您在 Ubuntu 中所做的磁盘工作台这样的测试默认会写入 100 个 10MB 文件或总共 1GB。在我的三星驱动器上,每 1TB 驱动器大小的 DDR4 SDRAM 为 1 GB,因此我的 500GB 驱动器上有 512MB。分区为 Raid 1 后,我的总缓存为 1GB。第一个(1gb)文件填满了它,接下来的 99 个正在测量实际的 NAND 速度。无论如何划分,不到一分钟的时间内写入 100GB 都令人印象深刻。在读取测试中,它只是直接从缓存中读回 1GB 文件(在我看来),而在写入测试中,它必须将该文件实际放在驱动器上,因此您看到的是驱动器的实际写入速度。因此,NVMe 驱动器虽然速度极快,但实际上并不像广告中宣传的那样,这是我个人的看法,因为您很少会从缓存中读取文件,但小于缓存大小的小写入似乎会非常快,而事实上驱动器迟早会将该缓存写入 NAND。
编辑:请参阅下文,了解 Sandbo 关于使用 KDiskMark 的建议,该建议可作为 snap 包使用
sudo snap install kdiskmark
KDiskMark 运行良好,比内置磁盘测试台好得多。