Dd
使用 dd 命令僅讀取 1GB
我有一個 32 GB 的 USB 硬碟驅動器,我想知道從 USB 驅動器複製 1 GB 數據所需的時間。我嘗試使用
dd if=/dev/sdb1 of=/dev/null
輸出是這個
dd if=/dev/sdb1 of=/dev/null bs=1G 28+1 records in 28+1 records out 30751983616 bytes (31 GB) copied, 331.297 s, 92.8 MB/s
我使用的方法是正確的還是我做錯了。我不能使用其他工具,我只能使用 dd 命令。
您的命令不正確,您告訴
dd
讀取 1 GB 塊,但次數不受限制。要僅測量讀取 1 GB 所花費的時間,您需要告訴dd
只讀取一個塊:dd if=/dev/sdb1 of=/dev/null bs=1G count=1
請注意,如果先前已讀取設備,則緩衝將使該命令執行得更快。
首先,正如@jiliagre 所說,您正在測量整個分區(31 Gb)的傳輸時間,而不是 1 Gb。輸出的最後一行顯示了這一點:
30751983616 字節(31 GB)已複製,331.297 秒,92.8 MB/秒
其次,由於您正在寫入
/dev/null
數據並因此對數據進行黑洞化,因此它只會為您提供 USB 驅動器的讀取時間。實際 I/O 傳輸時間將受目標設備的寫入速度容量限制,並且很可能會更慢。
此外,這取決於您要複製的數據。1 Gb 小文件的複制速度比單個 1 Gb 文件慢,並且由於分配文件的大小而在設備中佔用更多空間。