Raspbian
為什麼 USB 硬碟慢(讀比寫慢)?
免責聲明:我知道這裡有 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。至少不像讀的那樣隨機。
問題
- **一般來說,**讀寫速度不是都很慢嗎?即使考慮到 Pi 和 NTFS - 40MB/s 也有點慢,不是嗎?如果是這樣 - 它的問題在哪裡?
- 為什麼讀比寫慢??為什麼讀取速度會隨著時間的推移如此不穩定?
傳輸期間 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