下面直接介紹幾種常見的dd命令,先看一下他的區別~
dd bs=64k count=4k if=/dev/zero of=test這四條dd命令區別在於記憶體中寫快取的處理方式。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
1.
dd bs=64k count=4k if=/dev/zero of=test沒有加任何引數,dd預設的方式不包括「同步(sync)」命令。也就是說,dd命令完成前並沒有讓系統真正把檔案寫到磁碟上。所以以上命令只是單純地把這128mb的資料讀到記憶體緩衝當中(寫快取[write cache])。所以你得到的將是乙個超級快的速度。因為其實dd給你的只是讀取速度,直到dd完成後系統才開始真正往磁碟上寫資料,但這個速度你是看不到了。所以如果這個速度很快,沒有什麼作用。
實際執行結果:
268435456 bytes (268 mb) copied, 1.3529 seconds, 198 mb/s2.
dd bs=64k count=4k if=/dev/zero of=test; sync和前面1中的完全一樣。分號隔開的只是先後兩個獨立的命令。當sync命令準備開始往磁碟上真正寫入資料的時候,前面dd命令已經把錯誤的「寫入速度」值顯示在螢幕上了。所以你還是得不到真正的寫入速度。
實際執行結果:
268435456 bytes (268 mb) copied, 0.522815 seconds, 513 mb/s3.
dd bs=64k count=4k if=/dev/zero of=test conv=fdatasync加入這個引數後,dd命令執行到最後會真正執行一次「同步(sync)」操作,所以這時候你得到的是讀取這128m資料到記憶體並寫入到磁碟上所需的時間,這樣算出來的時間才是比較符合實際使用結果的。
實際執行結果:
268435456 bytes (268 mb) copied, 2.8046 seconds, 95.7 mb/s4.
dd bs=64k count=4k if=/dev/zero of=test oflag=dsync加入這個引數後,dd在執行時每次都會進行同步寫入操作。也就是說,這條命令每次讀取64k後就要先把這64k寫入磁碟,然後再讀取下面這64k,一共重複128次。這可能是最慢的一種方式了,因為基本上沒有用到寫快取(write cache)。
實際執行結果:
268435456 bytes (268 mb) copied, 3.40069 seconds, 78.9 mb/s一般來說,第四種方法是最嚴格的,可以模擬資料庫的插入操作,所以很慢,也是用來測試vps硬碟效能標準的一條標桿,一般來說測試結果,如果超過10m,對正常建站就無影響。超過50m,就是非常給力狀態,看了這個vps硬碟效能非常的好,dd速度達到了78.9mb/s。
在這幾條命令中,bs=64k表示同時讀入/輸出的塊大小為64k個位元組,count=4k表示拷貝塊的個數為4000個,如果測試再嚴格一點,我們執行1g資料量的dd:
dd if=/dev/zero of=test bs=64k count=16k oflag=dsync表示每個塊大小為64k個位元組,測試16k個數量的塊,實際測試結果:
1073741824 bytes (1.1 gb) copied, 18.9098 seconds, 56.8 mb/s寫到這裡,我覺得利用dd命令測試硬碟應該很清楚了,通常我們測試用第四條命令即可,當然dd越快並不能代表伺服器的效能好壞,普通硬碟的伺服器執行dd命令結果在30m左右就不錯了,另外,執行dd命令測試硬碟io效能,對硬碟的損害很大,不建議多次或長時間嘗試!
dd測試硬碟盲點
1.dd if dev zero of test bs 64k count 16k 這個很不準確的,因為命令結束的時候資料還沒有真正寫到磁碟上去 2.dd if dev zero of test bs 64k count 16k conv fsync 這個還算準確,資料已經寫入磁碟 3.dd if ...
硬碟效能測試
i o 的概念,從字義來理解就是輸入輸出。作業系統從上層到底層,各個層次之間均存在 i o。比如,cpu 有 i o,記憶體有 i o,vmm 有 i o,底層磁碟上也有 i o,這是廣義上的 i o。通常來講,乙個上層的 i o 可能會產生針對磁碟的多個 i o,也就是說,上層的 i o 是稀疏的...
dd 工具 磁碟效能測試
使用示例 引數 說明if 輸入檔案 of輸出檔案 bs最佳是 4m 設定 ibs 度的位元組數 和 obs 寫的位元組數 count 塊數,bs count 總大小 conv fdatasync 系統決定何時寫入,data fsync 系統決定何時寫入,meta data flag 分為 iflag...