我想我在这里遗漏了一些东西,也许我需要做一些配置才能让我的硬件在 Linux 下全速运行——这是我的问题。
我最近得到了这个英特尔 NUC 9 Extreme 套件。
我添加了 64 GB 的 RAM,因为我想设置 RAID1 驱动器,所以我放了两个三星 970 EVO 1TB M.2 NVME在其中驱动:
由于它们是 PCIe Gen 3 x4 设备, 我原本期望能够从单个驱动器获得接近 3 GB/s 的连续读取速度,从 RAID1 设备获得略低于 6 GB/s 的速度但实际速度让我失望,因为即使在 RAID1 中,我也无法获得超过 2.1 GB/s 的速度。
为了测试存储速度,我使用了dd
,如下所示:
$ dd if=/dev/zero of=/path/to/test/64GB bs=1G count=64 && dd if=/dev/zero of=/media/ubuntu/evo/fill-cache bs=1G count=64 && dd if=/path/to/test/64GB of=/dev/null
64+0 record dentro
64+0 record fuori
68719476736 bytes (69 GB, 64 GiB) copied, 43,3462 s, 1,6 GB/s
64+0 record dentro
64+0 record fuori
68719476736 bytes (69 GB, 64 GiB) copied, 49,6182 s, 1,4 GB/s
134217728+0 record dentro
134217728+0 record fuori
68719476736 bytes (69 GB, 64 GiB) copied, 139,781 s, 492 MB/s
我运行这些命令 6-7 次,并连续写入速度低于 1.2 GB/s。连续读取速度始终低于 1.9 GB/s。运行bonnie++
我得到了类似的结果。
我进行了测试,分别从运行内核为 5.4 的 Ubuntu 20.04 的外部 USB 驱动器和运行内核为 5.8 的 Fedora 33 安装盘启动该系统,结果相似(Fedora 中的速度甚至更差)。我尝试了 ext4 和 xfs,没有明显的区别。
由于 RAID1 中的结果相同,甚至在我创建条带化 LVM 卷时结果也相同,因此我猜测一定存在某个地方的瓶颈,导致我的硬件无法全速运行。
硬件似乎运行良好,因为当我尝试从运行 Windows 10 的外部 USB 磁盘启动该系统时,我得到了预期的性能:
------------------------------------------------------------------------------
CrystalDiskMark 8.0.0 x64 (C) 2007-2020 hiyohiyo
Crystal Dew World: https://crystalmark.info/
------------------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes
[Read]
SEQ 1MiB (Q= 8, T= 1): 2924.425 MB/s [ 2788.9 IOPS] < 2865.38 us>
SEQ 128KiB (Q= 32, T= 1): 3523.300 MB/s [ 26880.6 IOPS] < 1179.77 us>
RND 4KiB (Q= 32, T=16): 2077.373 MB/s [ 507171.1 IOPS] < 1005.95 us>
RND 4KiB (Q= 1, T= 1): 53.885 MB/s [ 13155.5 IOPS] < 75.87 us>
[Write]
SEQ 1MiB (Q= 8, T= 1): 2208.972 MB/s [ 2106.6 IOPS] < 3788.09 us>
SEQ 128KiB (Q= 32, T= 1): 2117.792 MB/s [ 16157.5 IOPS] < 1978.06 us>
RND 4KiB (Q= 32, T=16): 1962.843 MB/s [ 479209.7 IOPS] < 1067.32 us>
RND 4KiB (Q= 1, T= 1): 130.946 MB/s [ 31969.2 IOPS] < 31.13 us>
Profile: Default
Test: 64 GiB (x5) [G: 0% (0/932GiB)]
Mode: [Admin]
Time: Measure 5 sec / Interval 5 sec
Date: 2020/12/15 10:18:14
OS: Windows 10 Professional [10.0 Build 18363] (x64)
我的设备也运行着最新的固件。
我是否应该在我的 Linux 系统上做一些特殊的事情来实现这些速度?
更新
有人建议我我的基准方法dd
可能是错误的,并尝试 Gnome Disks 的基准测试功能。
我尝试过,读取速度更接近规格,所以我做错了。不过,写入速度只有我在 Windows 上使用 CrystalDiskMark 看到的 1/4,所以我仍然感到困惑。