Ubuntu 上的 NVMe (Gen4) 运行缓慢

Ubuntu 上的 NVMe (Gen4) 运行缓慢

对于新发布的 Ubuntu 24.04,我购买了新的 WD_Black SN770 NVMe,宣传速度高达 5150MB/s(GEN4)。我的主板(ASrock X570 Pro4)支持 Gen4x4,根据 LinkSta(LnkSta:速度 16GT/s,宽度 x4)一切都应该正常。

但如果我进行测试,速度就会慢很多:

hdparm -t /dev/nvme0n1
    /dev/nvme0n1:
     Timing buffered disk reads: 8840 MB in  3.00 seconds = 2946.04 MB/sec

那么我的系统可能出了什么问题?为什么我没有得到 ~5GB/s?在另一个帖子中,有人说这是“barrier-flag”的问题,但这并没有解决我的问题。

在此处输入图片描述

答案1

尽管 hdparm 测试旨在实现最小开销,但我认为测试结果仍然受到系统和 CPU 的限制。

我的 Ubuntu 24.04 测试服务器中安装了两个 NVME 驱动器。两者都是 WD Black SN850X,顺序读取规格为 7300 MB/秒。一个是 1TB,一个是 2TB。

我得到:

doug@s19:/media/nvme/home/doug/c$ sudo taskset -c 6 hdparm -t /dev/nvme0n1

/dev/nvme0n1:
 Timing buffered disk reads: 5070 MB in  3.00 seconds = 1689.66 MB/sec
doug@s19:/media/nvme/home/doug/c$ sudo taskset -c 6 hdparm -t /dev/nvme1n1

/dev/nvme1n1:
 Timing buffered disk reads: 7718 MB in  3.00 seconds = 2572.02 MB/sec

但同时进行 top 捕获时,观察到 CPU 6 没有空闲时间,并且似乎系统受限。正如观察到的那样,我们预计 IO 等待时间会很长。

top - 08:27:01 up 2 days,  1:34,  2 users,  load average: 0.12, 0.04, 0.01
Tasks: 212 total,   3 running, 209 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  1.0 us, 38.4 sy,  0.0 ni,  0.0 id, 60.6 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu8  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu10 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  31924.4 total,   4513.2 free,    858.0 used,  27021.1 buff/cache

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
   5506 root      20   0    4860   4736   2304 R  39.0   0.0   0:00.67 hdparm
      1 root      20   0   22256  12392   9064 S   0.0   0.0   0:01.83 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.02 kthreadd
      3 root      20   0       0      0      0 S   0.0   0.0   0:00.00 pool_wo+
...

如果我说的是真的,那么测试结果应该与 CPU 最大频率有关:

Max-Freq Results         %
100%     2590.10 MB/sec
 90%     2544.17 MB/sec   -1.77%
 80%     2531.59 MB/sec   -2.26%
 70%     2492.58 MB/sec   -3.77%
 60%     2423.82 MB/sec   -6.42%
 50%     2305.09 MB/sec  -11.00%

相关内容