怎么使用DD命令測(cè)試Linux磁盤的性能?
發(fā)表時(shí)間:2023-08-09 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]Linux系統(tǒng)下DD命令是常用的命令之一,同時(shí)DD命令的使用范圍也比較廣泛。除了已知的可以用DD命令來(lái)復(fù)制文件外,還可以用DD命令來(lái)測(cè)試磁盤的性能。那么如何使用DD命令測(cè)試Linux磁盤的性能?下面...
Linux系統(tǒng)下DD命令是常用的命令之一,同時(shí)DD命令的使用范圍也比較廣泛。除了已知的可以用DD命令來(lái)復(fù)制文件外,還可以用DD命令來(lái)測(cè)試磁盤的性能。那么如何使用DD命令測(cè)試Linux磁盤的性能?

下面直接介紹幾種常見的DD命令,先看一下他的區(qū)別:
dd bs=64k count=4k if=/dev/zero of=test
dd bs=64k count=4k if=/dev/zero of=test; sync
dd bs=64k count=4k if=/dev/zero of=test conv=fdatasync
dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
這四條DD命令區(qū)別在于內(nèi)存中寫緩存的處理方式:
1.dd bs=64k count=4k if=/dev/zero of=test
沒(méi)有加任何參數(shù),dd默認(rèn)的方式不包括“同步(sync)”命令。也就是說(shuō),dd命令完成前并沒(méi)有讓系統(tǒng)真正把文件寫到磁盤上。所以以上命令只是單純地把這128MB的數(shù)據(jù)讀到內(nèi)存緩沖當(dāng)中(寫緩存[write cache])。所以你得到的將是一個(gè)超級(jí)快的速度。因?yàn)槠鋵?shí)dd給你的只是讀取速度,直到dd完成后系統(tǒng)才開始真正往磁盤上寫數(shù)據(jù),但這個(gè)速度你是看不到了。所以如果這個(gè)速度很快,沒(méi)有什么作用。
實(shí)際運(yùn)行結(jié)果:
268435456 bytes (268 MB) copied, 1.3529 seconds, 198 MB/s
2.dd bs=64k count=4k if=/dev/zero of=test; sync
和前面1中的完全一樣。分號(hào)隔開的只是先后兩個(gè)獨(dú)立的命令。當(dāng)sync命令準(zhǔn)備開始往磁盤上真正寫入數(shù)據(jù)的時(shí)候,前面dd命令已經(jīng)把錯(cuò)誤的“寫入速度”值顯示在屏幕上了。所以你還是得不到真正的寫入速度。
實(shí)際運(yùn)行結(jié)果:
268435456 bytes (268 MB) copied, 0.522815 seconds, 513 MB/s
3.dd bs=64k count=4k if=/dev/zero of=test conv=fdatasync
加入這個(gè)參數(shù)后,dd命令執(zhí)行到最后會(huì)真正執(zhí)行一次“同步(sync)”操作,所以這時(shí)候你得到的是讀取這128M數(shù)據(jù)到內(nèi)存并寫入到磁盤上所需的時(shí)間,這樣算出來(lái)的時(shí)間才是比較符合實(shí)際使用結(jié)果的。
實(shí)際運(yùn)行結(jié)果:
268435456 bytes (268 MB) copied, 2.8046 seconds, 95.7 MB/s
4.dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
加入這個(gè)參數(shù)后,dd在執(zhí)行時(shí)每次都會(huì)進(jìn)行同步寫入操作。也就是說(shuō),這條命令每次讀取64k后就要先把這64k寫入磁盤,然后再讀取下面這64k,一共重復(fù)128次。這可能是最慢的一種方式了,因?yàn)榛旧蠜](méi)有用到寫緩存(write cache)。
實(shí)際運(yùn)行結(jié)果:
268435456 bytes (268 MB) copied, 3.40069 seconds, 78.9 MB/s
一般來(lái)說(shuō),第四種方法是最嚴(yán)格的,可以模擬數(shù)據(jù)庫(kù)的插入操作,所以很慢,也是用來(lái)測(cè)試vps硬盤性能標(biāo)準(zhǔn)的一條標(biāo)桿,一般來(lái)說(shuō)測(cè)試結(jié)果,如果超過(guò)10M,對(duì)正常建站就無(wú)影響。超過(guò)50M,就是非常給力狀態(tài),看了這個(gè)vps硬盤性能非常的好,DD速度達(dá)到了78.9MB/s。
在這幾條命令中,bs=64k表示同時(shí)讀入/輸出的塊大小為64k個(gè)字節(jié),count=4k表示拷貝塊的個(gè)數(shù)為4000個(gè),如果測(cè)試再嚴(yán)格一點(diǎn),我們運(yùn)行1G數(shù)據(jù)量的DD:
dd if=/dev/zero of=test bs=64k count=16k oflag=dsync
表示每個(gè)塊大小為64k個(gè)字節(jié),測(cè)試16k個(gè)數(shù)量的塊,實(shí)際測(cè)試結(jié)果:
1073741824 bytes (1.1 GB) copied, 18.9098 seconds, 56.8 MB/s
以上就是使用DD命令測(cè)試Linux磁盤的性能的方法了,其實(shí)這個(gè)方法的原理還是使用DD命令的復(fù)制功能,通過(guò)文件轉(zhuǎn)移的速度來(lái)測(cè)試磁盤的讀寫頻率。
Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng)