Raspbian

為什麼 USB 硬碟慢(讀比寫慢)?

  • March 7, 2021

免責聲明:我知道這裡有 Raspberry Pi 社區,但我認為它不是特定於 Pi 的,更像是 Raspbian(或 Debian?)vs USB HDD vs NTFS 等。

TL;DR:所以,我有一個帶有外部 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
  • fstab:
UUID=1276F80376F7E57F  /mnt/usb_hdd    ntfs-3g    defaults,big_writes,noatime   0   0
  • hdparm 測試
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
  • rsync 讀取
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 之間偏離。非常不穩定。

  • rsync 寫入
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 開始,但逐漸減慢至 ~35。至少不像讀的那樣隨機。

問題

  1. **一般來說,**讀寫速度不是都很慢嗎?即使考慮到 Pi 和 NTFS - 40MB/s 也有點慢,不是嗎?如果是這樣 - 它的問題在哪裡?
  2. 為什麼讀比寫慢??為什麼讀取速度會隨著時間的推移如此不穩定?

傳輸期間 CPU 大約為 30%,並且有足夠的記憶體……它是“只是 NTFS”嗎?

無論如何,我會很感激這裡的任何幫助。

要回答您的第一個問題,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

引用自:https://unix.stackexchange.com/questions/637804