为什么USB硬盘速度慢(读取比写入慢)?

为什么USB硬盘速度慢(读取比写入慢)?

免责声明:我知道这里有 Raspberry Pi 社区,但我不认为它是特定于 Pi 的,更像是 Raspbian(或 Debian?)、USB HDD 与 NTFS 等。

长话短说:所以,我有一个带有外部 USB 硬盘的 Raspberry Pi 4。那里的读/写速度相当低,最让我惊讶的是读实际上比写慢!那么到底是怎么回事,罪魁祸首又在哪里呢?

详细信息:

  • 操作系统
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l GNU/Linux
  • 文件系统表:
UUID=1276F80376F7E57F  /mnt/usb_hdd    ntfs-3g    defaults,big_writes,noatime   0   0
  • 高清参数测试
pi@raspberrypi:~ $ sudo hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   1496 MB in  2.00 seconds = 747.81 MB/sec
 Timing buffered disk reads: 258 MB in  3.01 seconds =  85.60 MB/sec
  • 同步读取
pi@raspberrypi:~ $ rsync --progress -hv /mnt/usb_hdd/Share/Downloads/Games/Civ5.iso ~/Civ5.iso
Civ5.iso
          2.37G 100%   18.90MB/s    0:01:59 (xfr#1, to-chk=0/1)

sent 2.37G bytes  received 35 bytes  19.19M bytes/sec
total size is 2.37G  speedup is 1.00

奇怪的是,它开始时约为 70MB/s,但几乎立即下降到约 20,然后在 8 到 25 之间偏离。非常不稳定。

  • 同步写入
pi@raspberrypi:~ $ rsync --progress -hv ~/Civ5.iso /mnt/usb_hdd/Share/Downloads/Civ5.iso
Civ5.iso
          2.37G 100%   39.15MB/s    0:00:57 (xfr#1, to-chk=0/1)

sent 2.37G bytes  received 35 bytes  40.52M bytes/sec
total size is 2.37G  speedup is 1.00

该速度也以约 65MB/s 开始,但逐渐减慢至约 35MB/s。至少不像读到的那样随机。

问题

  1. 两人都没读过总体写得慢?即使考虑 Pi 和 NTFS - 40MB/s 也有点慢,不是吗?如果是这样-问题出在哪里?
  2. 为什么读比写慢?为什么读取速度随着时间的推移如此不稳定?

传输过程中 CPU 处于 ~30% 状态,并且内存充足...是“只是 NTFS”吗?
无论如何,我将不胜感激这里的任何帮助。

答案1

回答你的第一个问题,40MB/s 听起来像是 USB 2.0 的瓶颈。 Pi 4 支持 USB 3,但请确保您的 HDD 和电缆是 USB 3。

更新了评论中的信息:

另请注意,您rsync涉及两个方面:外部硬盘驱动器和您的家所在的地方。要从等式中删除第二部分,请尝试dd仅进行 HDD 基准测试:

  • 涉及文件系统的写入:sudo dd if=/dev/zero of=/mnt/usb_hdd/blob bs=16M count=100 status=progress oflag=direct
  • 从文件系统读取:sudo dd if=/mnt/usb_hdd/blob of=/dev/null bs=16M count=100 status=progress
  • 直接从磁盘读取:sudo dd if=/dev/sda of=/dev/null bs=16M count=100 status=progress iflag=direct

相关内容