NVMe SSD 突然变得异常缓慢(读取和写入均如此)

NVMe SSD 突然变得异常缓慢(读取和写入均如此)

更新 1:我重新启动了这台服务器,将其安装到硬盘上的另一个 Ubuntu(也是 20.04 LTS),并hdparm -tT显示超过 1 GB/s 的合理性能。现在我倾向于相信这是一个软件问题 - SSD 本身应该没问题。

更新 2:令人困惑的是,没有显示任何奇怪的磁盘活动,但磁盘仍然“非常活跃”。偶尔会随机出现atop大量线程。z_wr_iss

在顶上


这是一台安装在台式电脑上的 HP SSD EX920 1TB,作为个人服务器全天候运行。它运行良好,已经运行了一年多,但就在上周,突然,进程开始随机进入 D(不可中断睡眠)状态。此驱动器仅半满且定期修剪。

HDparm 测试结果太荒谬了(/dev/nvme0有问题的是 SSD/dev/sda还是另一个 HDD)(阐明:HDparm程序正常,没有故障,SSD本身性能错误,只有几MB/s):

root@ubuntu:~# hdparm -Tt /dev/nvme0n1
/dev/nvme0n1:
 Timing cached reads:   15670 MB in  2.00 seconds = 7839.79 MB/sec
 HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
 Timing buffered disk reads:   8 MB in  3.61 seconds =   2.22 MB/sec

root@ubuntu:~# hdparm -Tt /dev/sda
/dev/sda:
 Timing cached reads:   29014 MB in  2.00 seconds = 14525.03 MB/sec
 Timing buffered disk reads: 454 MB in  3.01 seconds = 150.67 MB/sec

但是,SMART信息看起来还不错:

smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-56-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       HP SSD EX920 1TB
Serial Number:                      xxxxxxxxxxxxxxx
Firmware Version:                   SVN139B
PCI Vendor ID:                      0x1dee
PCI Vendor Subsystem ID:            0x126f
IEEE OUI Identifier:                0x000000
Controller ID:                      1
Number of Namespaces:               1
Namespace 1 Size/Capacity:          1,024,209,543,168 [1.02 TB]
Namespace 1 Formatted LBA Size:     512
Local Time is:                      Mon Dec  7 13:54:15 2020 CST
Firmware Updates (0x14):            2 Slots, no Reset required
Optional Admin Commands (0x0016):   Format Frmw_DL Self_Test
Optional NVM Commands (0x005f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat Timestmp
Maximum Data Transfer Size:         64 Pages
Warning  Comp. Temp. Threshold:     70 Celsius
Critical Comp. Temp. Threshold:     80 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     9.00W       -        -    0  0  0  0        0       0
 1 +     4.60W       -        -    1  1  1  1        0       0
 2 +     3.80W       -        -    2  2  2  2        0       0
 3 -   0.0450W       -        -    3  3  3  3     2000    2000
 4 -   0.0040W       -        -    4  4  4  4     6000    8000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        54 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    31,682,199 [16.2 TB]
Data Units Written:                 50,028,403 [25.6 TB]
Host Read Commands:                 538,395,033
Host Write Commands:                1,279,795,487
Controller Busy Time:               20,480
Power Cycles:                       1,012
Power On Hours:                     7,879
Unsafe Shutdowns:                   40
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    7
Critical Comp. Temperature Time:    0
Thermal Temp. 1 Transition Count:   8
Thermal Temp. 2 Transition Count:   2
Thermal Temp. 1 Total Time:         1118
Thermal Temp. 2 Total Time:         214

Error Information (NVMe Log 0x01, max 256 entries)
No Errors Logged

尝试访问hdparm -B此 NVMe SSD 上的 APM 信息 () 仅显示“设备的 ioctl 不适当”。

此外,我还有不是发现任何损坏的数据(全部完好),但读/写速度却不合理地缓慢。

该驱动器有三个分区:一个 EFI 系统分区(几百 MiB)、一个作为根文件系统的 ext4 分区(128 GiB),其余部分归 ZFS 所有。hdparm -tT在各个分区上运行会产生类似的结果(读取速度低于 10 MB/s)。所有这些分区都与 1 MiB 边界对齐。

我接下来该怎么做才能恢复此 SSD 的“正常”速度?还是我应该更换一个?

答案1

这是一个 nvme 驱动器,您可能需要安装 nvme-cli 来检查 APM 设置,以及 ioctl 不起作用的原因。z_wr_iss 线程是 Linux 上的 ZFS 写入线程。这些缓冲读取非常慢,也许您系统上的内存很慢?或者可能是 ZFS 调整问题。

相关内容