dd 的 direct 和 fsync 選項有什麼不同?

dd 的 direct 和 fsync 選項有什麼不同?

我想將影像複製到 USB 隨身碟。由於我想獲得“真實”速度,並且不想在複製圖像後等待設備同步很長時間,因此我想知道為此使用哪些選項。

答案1

閱讀透過原始碼表明您也應該詢問該nocache選項。該direct選項應該可以滿足您的需求,但這也取決於dd您正在使用的版本。在 Ubuntu 11.04 系統上進行大型複製時,我發現使用同步 I/O 資料的選項甚至更慢(=更接近現實?)dsync,這可能會失去現代磁碟控制器為我們提供的聚合優勢。要「確切地」知道發生了什麼,您必須深入研究正在運行的特定內核的源代碼,但即便如此,您仍受驅動器上的接口板的支配,該板的作用是自己的緩衝。

答案2

fsync 選項將在複製結束時刷新資料。 dsync 選項將在每個區塊之後刷新資料。 direct 選項將具有與 dsync 類似的結果,但不會以資料污染檔案系統快取。這有利於快取系統的其餘部分,並節省一些 CPU 開銷。

dsync 或 direct 都會帶來較低的吞吐量,但這可以透過使用較大的區塊大小(例如 1MB 或更大)來抵消。

相關內容