TLDR:如何对插入笔记本电脑的 USB 3.1 设备速度缓慢进行故障排除。
问题:当我复制(尝试过 GUI 和终端)时,前几个 .iso 文件几乎立即复制 300mb/s+,但随后第 3/4 个文件开始减慢至 12mb/s 以下(即使一次复制一个)。
硬件:
- 戴尔 XPS 15 9520(Fedora Linux 37 - 工作站)
- Sandisk Extreme GO USB 3.1 64GB(使用 Ventoy)
- 戴尔 USB-C 转 USB-A/HDMI 适配器
- Anker PowerExpand+ 7 合 1 USB-C PD 集线器
尝试过:
- 重新格式化 USB(gparted - exfat)。
- 在安装和未安装 Ventoy 的情况下使用 USB。
- 使用不同的端口、不同的适配器/集线器。
- 一次性复制大量 .iso 文件与一次复制一个文件 - 等待每个文件完全复制。
无论哪种方式,在几个文件(大约 4GB)之后,USB 驱动器都会变得非常慢。弹出 USB(通过 GUI 或终端)可能需要很长时间,但重新安装后速度会恢复得很快。使用 GUI 弹出时,我收到消息设备忙 - 所以现在使用终端并等待命令完成。
司机 |港口详情:
$ udevadm info -q path -n /dev/sdc
/devices/pci0000:00/0000:00:14.0/usb4/4-1/4-1.1/4-1.1:1.0/host1/target1:0:0/1:0:0:0/block/sdc
$ lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/1p, 5000M
|__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
|__ Port 5: Dev 6, If 0, Class=, Driver=, 480M
|__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 5, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 9, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 4: Dev 8, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 3: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 3: Dev 11, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 4: Dev 12, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 4: Dev 13, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 3: Dev 15, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 16, If 0, Class=, Driver=, 12M
|__ Port 6: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 6: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 6: Dev 4, If 2, Class=Video, Driver=uvcvideo, 480M
|__ Port 6: Dev 4, If 3, Class=Video, Driver=uvcvideo, 480M
|__ Port 9: Dev 7, If 0, Class=Vendor Specific Class, Driver=, 12M
|__ Port 10: Dev 10, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 10: Dev 10, If 1, Class=Wireless, Driver=btusb, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 20000M/x2
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 2: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
|__ Port 3: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
答案1
复印时速度变慢的详细原因将在这发布(例如内存缓存)。有趣的是,对我来说,设备的温度似乎也发挥了作用。
这网站对于对 USB 驱动器设备的期望设定现实的期望非常有用。
这指南展示了如何使用驱动器速度hdparm
并对其进行基准测试dd
测试:
$ hdparm -tT /dev/sde
/dev/sde:
Timing cached reads: 36072 MB in 2.00 seconds = 18064.09 MB/sec
Timing buffered disk reads: 554 MB in 3.00 seconds = 184.65 MB/sec
小数据量:
$ dd if=/dev/zero of=./largefile bs=8k count=10000
10000+0 records in
10000+0 records out
81920000 bytes (82 MB, 78 MiB) copied, 0.0478257 s, 1.7 GB/s
$ dd if=./largefile of=/dev/null bs=8k
10000+0 records in
10000+0 records out
81920000 bytes (82 MB, 78 MiB) copied, 0.473879 s, 173 MB/s
数据量较大
$ dd if=/dev/zero of=./largefile bs=8k count=1000000
1000000+0 records in
1000000+0 records out
8192000000 bytes (8.2 GB, 7.6 GiB) copied, 658.022 s, 12.4 MB/s
$ dd if=./largefile of=/dev/null bs=8k
1000000+0 records in
1000000+0 records out
8192000000 bytes (8.2 GB, 7.6 GiB) copied, 45.1854 s, 181 MB/s
结果/结论:与 usb.userbenchmark.com 上发布的平均速度相比略快,很高兴现在知道会发生什么以及测试它的方法。