亚洲国产第一_开心网五月色综合亚洲_日本一级特黄特色大片免费观看_久久久久久久久久免观看

Hello! 歡迎來到小浪云!


Linux dd命令中dsync與fdatasync的區(qū)別


avatar
小浪云 2024-06-28 207


Linux系統(tǒng)中經(jīng)常會使用dd命令來測試硬盤的寫入速度,命令會涉及到兩個參數(shù):dsync與fdatasync,本文介紹一下其區(qū)別。

dd if=/dev/zero of=/tmp/1Gbytes bs=4k count=256000 oflag=dsync

 

dd if=/dev/zero of=/tmp/1Gbytes bs=4k count=256000 conv=fdatasync

相信上述兩個在Linux系統(tǒng)上使用dd測試磁盤INPUT性能的命令各位都看過,甚至使用過。

兩個都是往硬盤中寫入1 Gbytes的數(shù)據(jù),只是第一個的速度慢的要命。

使用dsync,dd會從/dev/zero中,每次讀取4Kbytes數(shù)據(jù),然后直接寫入到硬盤當(dāng)中,重復(fù)此步驟,直到共讀取并且寫入了1 Gbytes的數(shù)據(jù)。

使用fdatasync,dd會從/dev/zero中一次性讀取1 Gbytes的數(shù)據(jù),寫入到磁盤的緩存中,然后再從磁盤緩存中讀取,一次性寫入到硬盤當(dāng)中。

/dev/在內(nèi)存當(dāng)中,和緩存一樣,讀取速度都非??欤虼藘煞N方式最終的讀取速度對最終的寫入速度無任何影響。

換種說法,就是此處不管有沒有的硬盤緩存,對IO都不產(chǎn)生任何影響。

那也就是說,兩種方式的主要差異就在于多步與一步。

為什么寫入速度會有如此大的差異?

看完這個比喻,你就會明白了:

現(xiàn)在有兩輛一模一樣的車,最高行駛速度為20 M/s,加速度為5 M/s^2,分別為甲車,乙車,他們都要走直線的,1000 M的路程。

甲車每次只能走四米,達(dá)到四米就得剎車,乙車可以一次性走完一千米。

相信大家也清楚,甲車還沒加速到最高速度,就得剎車,走完這一千米需要不少時間。

而乙車,可以一直加速到其所能達(dá)到的最大速率,走完這一千米,花的時間明顯比甲少。

因此可以推斷,使用dsync,以1 Gbytes為blocksize,次數(shù)為一的方式往硬盤中寫入1 Gbytes的數(shù)據(jù),結(jié)果將不會與dd if=/dev/zero of=/tmp/1Gbytes bs=4k count=256000 conv=fdatasync有太大的差距。

相關(guān)閱讀