日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

dd命令测试linux磁盘io情况,【LINUX】正确的使用dd进行磁盘读写速度测试

發布時間:2025/3/19 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dd命令测试linux磁盘io情况,【LINUX】正确的使用dd进行磁盘读写速度测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

測試方式:使用dd指令,對磁盤進行連續寫入,不使用內存緩沖區,每次寫入8k的數據,總共寫入20萬次,產生1.6G大小的文件。

測試指令:dd if=/dev/zero of=/data01/test.dbf bs=8k count=200000 conv=fdatasync

----------------------------------------------

正確的使用dd進行磁盤讀寫速度測試

dd是Linux/UNIX 下的一個非常有用的命令,作用是用指定大小的塊拷貝一個文件,并在拷貝的同時進行指定的轉換,所以可以用來測試硬盤的順序讀寫能力。可以寫文件,可以寫裸設備。

dd語法

---------------------------------------------------------

功能說明:讀取,轉換并輸出數據。

語  法:dd [bs=][cbs=][conv=][count=][ibs=][if=][obs=][of=][seek=][skip=][--help][--version]

補充說明:dd可從標準輸入或文件讀取數據,依指定的格式來轉換數據,再輸出到文件,設備或標準輸出。

參  數:

bs=?? 將ibs( 輸入)與obs(輸出)設成指定的字節數。

cbs=?? 轉換時,每次只轉換指定的字節數。

conv=?? 指定文件轉換的方式。

count=?? 僅讀取指定的區塊數。

ibs=?? 每次讀取的字節數。

if=?? 從文件讀取。

obs=?? 每次輸出的字節數。

of=?? 輸出到文件。

seek=?? 一開始輸出時,跳過指定的區塊數。

skip=?? 一開始讀取時,跳過指定的區塊數。

--help?? 幫助。

--version?? 顯示版本信息。

dd常用參數詳解

---------------------------------------------------------

if=xxx? 從xxx讀取,如if=/dev/zero,該設備無窮盡地提供0,(不產生讀磁盤IO)

of=xxx? 向xxx寫出,可以寫文件,可以寫裸設備。如of=/dev/null,"黑洞",它等價于一個只寫文件. 所有寫入它的內容都會永遠丟失. (不產生寫磁盤IO)

bs=8k? 每次讀或寫的大小,即一個塊的大小。

count=xxx? 讀寫塊的總數量。

避免操作系統“寫緩存”干擾測試成績,使用sync、fsync、fdatasync

---------------------------------------------------------

關于sync、fsync、fdatasync請參考:http://elf8848.iteye.com/blog/2088986

dd bs=8k count=4k if=/dev/zero of=test.log conv=fsync

dd bs=8k count=4k if=/dev/zero of=test.log conv=fdatasync

dd bs=8k count=4k if=/dev/zero of=test.log oflag=dsync

dd bs=8k count=4k if=/dev/zero of=test.log? 默認“寫緩存”啟作用

dd bs=8k count=4k if=/dev/zero of=test.log conv=sync?? “寫緩存”啟作用

dd bs=8k count=4k if=/dev/zero of=test.log; sync?? “寫緩存”啟作用

dd bs=8k count=4k if=/dev/zero of=test.log conv=fsync

加入這個參數后,dd命令執行到最后會真正執行一次“同步(sync)”操作,,這樣算出來的時間才是比較符合實際使用結果的。conv=fsync表示把文件的“數據”和“metadata”都寫入磁盤(metadata包括size、訪問時間st_atime & st_mtime等等),因為文件的數據和metadata通常存在硬盤的不同地方,因此fsync至少需要兩次IO寫操作,fsync 與fdatasync相差不大。(重要,最有參考價值)

dd bs=8k count=4k if=/dev/zero of=test.log conv=fdatasync

加入這個參數后,dd命令執行到最后會真正執行一次“同步(sync)”操作,,這樣算出來的時間才是比較符合實際使用結果的。conv=fdatasync表示只把文件的“數據”寫入磁盤,fsync 與fdatasync相差不大。(重要,最有參考價值)

dd bs=8k count=4k if=/dev/zero of=test.log oflag=dsync

加入這個參數后,每次讀取8k后就要先把這8k寫入磁盤,然后再讀取下面一個8k,一共重復4K次。這是最慢的一種方式了。

dd bs=8k count=4k if=/dev/zero of=test

沒加關于操作系統“寫緩存”的參數,默認“寫緩存”啟作用。dd先把數據寫的操作系統“寫緩存”,就完成了寫操作。通常稱為update的系統守護進程會周期性地(一般每隔30秒)調用sync函數,把“寫緩存”中的數據刷入磁盤。因為“寫緩存”起作用,你會測試出一個超級快的性能。

如:163840000 bytes (164 MB) copied, 0.742906 seconds, 221 MB/s

dd bs=8k count=4k if=/dev/zero of=test conv=sync

conv=sync參數明確“寫緩存”啟作用,默認值就是conv=sync

dd bs=8k count=4k if=/dev/zero of=test; sync

與第1個完全一樣,分號隔開的只是先后兩個獨立的命令。當sync命令準備開始往磁盤上真正寫入數據的時候,前面dd命令已經把錯誤的“寫入速度”值顯示在屏幕上了。所以你還是得不到真正的寫入速度。

裸設備測試

----------------------

1、裸設備到文件系統

dd if=/dev/rsd1b of=/backup/df1.dbf bs=8k skip=8 count=3841

2、文件系統到裸設備

dd if=/backup/df1.dbf of=/dev/rsd2b bs=8k seek=8

更多關于裸設備,請參考:http://czmmiao.iteye.com/blog/1748748

轉載自:http://elf8848.iteye.com/blog/2089055

總結

以上是生活随笔為你收集整理的dd命令测试linux磁盘io情况,【LINUX】正确的使用dd进行磁盘读写速度测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。