我已經查找了該hdparm
命令,但所有範例都是用於測試磁碟的。不確定它是否可以用於測試外部 USB 裝置(特別是 USB 隨身碟)。
我現在正在使用這段程式碼:
dd if=/dev/zero of=/media/storage/speed_test.txt bs=100K count=1k
sudo /sbin/sysctl -w vm.drop_caches=3
dd if=$/media/storage/speed_test.txt of=/dev/null bs=100K count=1k
我期望的讀寫速度範圍是多少?我的寫入速度約為 900 MB/s,讀取速度約為 500 MB/s,我認為這個數字太高了。是我沒有正確清除快取嗎?我還可以使用哪些其他命令來測試速度?
更新:
謝謝user427539
的答案和zloster
的評論,我現在可以更準確地測量速度。我正在使用 16GB USB 隨身碟進行測試,並寫入和讀取 1GB 資料。我的寫入速度為 22 MB/s,讀取速度為 46 MB/s。然而這樣的速度對於USB3快閃記憶體設備來說是不是太慢了呢?為什麼速度會這麼低?
答案1
首先,您正在寫入的資料只有 100MB。磁碟和控制器還有一個您不會刪除的緩存,因此您需要進行更大的測試以確保這些快取不會破壞結果。
增加至少 1GB。也許更改為 bs=1M。為了確定起見,我通常使用 10GB 進行測試。
然後,您需要確保資料實際到達磁碟,在第一行末尾添加“conv=fdatasync”來執行此操作。
至於正常速度,USB2 設備/連接埠通常在 10 到 20 MB/秒之間。 USB3 裝置的速度應介於 50 到 150MB/秒之間。如果我看到新設備達到 120MB/秒,我會非常高興。 7.2GB/分鐘,速度非常快。
但請注意,旋轉磁碟的讀取/寫入速度與碟片在磁頭下旋轉的速度相同。因此,如果您知道密度(位元/英吋),則可以計算資料速度:
吞吐量 = 半徑 * 2PI * 密度 * RPM
您無法真正控制密度,但可以控制轉速,轉速越多,原始速度越快。
另請注意,盤片的半徑會根據磁頭的位置而變化。外軌道上可能約為 1.75 英寸,但內軌道上只有 0.75 英寸。這意味著當您從外軌移動到內軌時,驅動器會真正減慢速度。原始磁碟機通常會讓您先寫入外磁軌,因此您首先會獲得更好的速度。當驅動器填滿時,速度會變慢。我經常看到驅動器幾乎滿載時性能會下降 50%。