您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Linux系統(tǒng)中怎么使用dd命令檢測(cè)硬盤性能”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
dd命令的基本使用
dd:用指定大小的塊拷貝一個(gè)文件,并在拷貝的同時(shí)進(jìn)行指定的轉(zhuǎn)換。
注意:指定數(shù)字的地方若以下列字符結(jié)尾,則乘以相應(yīng)的數(shù)字:b=512;c=1;k=1024;w=2
參數(shù)注釋:
if=文件名:輸入文件名,缺省為標(biāo)準(zhǔn)輸入。即指定源文件。< if=input file >
of=文件名:輸出文件名,缺省為標(biāo)準(zhǔn)輸出。即指定目的文件。< of=output file >
ibs=bytes:一次讀入bytes個(gè)字節(jié),即指定一個(gè)塊大小為bytes個(gè)字節(jié)。
obs=bytes:一次輸出bytes個(gè)字節(jié),即指定一個(gè)塊大小為bytes個(gè)字節(jié)。
bs=bytes:同時(shí)設(shè)置讀入/輸出的塊大小為bytes個(gè)字節(jié)。
cbs=bytes:一次轉(zhuǎn)換bytes個(gè)字節(jié),即指定轉(zhuǎn)換緩沖區(qū)大小。
skip=blocks:從輸入文件開頭跳過blocks個(gè)塊后再開始復(fù)制。
seek=blocks:從輸出文件開頭跳過blocks個(gè)塊后再開始復(fù)制。
注意:通常只用當(dāng)輸出文件是磁盤或磁帶時(shí)才有效,即備份到磁盤或磁帶時(shí)才有效。
count=blocks:僅拷貝blocks個(gè)塊,塊大小等于ibs指定的字節(jié)數(shù)。
conv=conversion:用指定的參數(shù)轉(zhuǎn)換文件。
ascii:轉(zhuǎn)換ebcdic為ascii
ebcdic:轉(zhuǎn)換ascii為ebcdic
ibm:轉(zhuǎn)換ascii為alternate ebcdic
block:把每一行轉(zhuǎn)換為長(zhǎng)度為cbs,不足部分用空格填充
unblock:使每一行的長(zhǎng)度都為cbs,不足部分用空格填充
lcase:把大寫字符轉(zhuǎn)換為小寫字符
ucase:把小寫字符轉(zhuǎn)換為大寫字符
swab:交換輸入的每對(duì)字節(jié)
noerror:出錯(cuò)時(shí)不停止
notrunc:不截短輸出文件
sync:將每個(gè)輸入塊填充到ibs個(gè)字節(jié),不足部分用空(NUL)字符補(bǔ)齊。
使用 dd 命令進(jìn)行硬盤 I/O 性能檢測(cè)
如何使用dd命令測(cè)試我的硬盤性能?如何在linux操作系統(tǒng)下檢測(cè)硬盤的讀寫速度?
你可以使用以下命令在一個(gè)Linux或類Unix操作系統(tǒng)上進(jìn)行簡(jiǎn)單的I/O性能測(cè)試。
dd命令 :它被用來在Linux和類Unix系統(tǒng)下對(duì)硬盤設(shè)備進(jìn)行寫性能的檢測(cè)。
hparm命令:它用來在基于 Linux 的系統(tǒng)上獲取或設(shè)置硬盤參數(shù),包括測(cè)試讀性能以及緩存性能等。
在這篇指南中,你將會(huì)學(xué)到如何使用dd命令來測(cè)試硬盤性能。
使用dd命令來監(jiān)控硬盤的讀寫性能:
打開shell終端。
或者通過ssh登錄到遠(yuǎn)程服務(wù)器。
使用dd命令來測(cè)量服務(wù)器的吞吐率(寫速度) dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
使用dd命令測(cè)量服務(wù)器延遲 dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync
理解dd命令的選項(xiàng)
在這個(gè)例子當(dāng)中,我將使用搭載Ubuntu Linux 14.04 LTS系統(tǒng)的RAID-10(配有SAS SSD的Adaptec 5405Z)服務(wù)器陣列來運(yùn)行?;菊Z(yǔ)法為:
代碼如下:
dd if=/dev/input.file of=/path/to/output.file bs=block-size count=number-of-blocks oflag=dsync
## GNU dd語(yǔ)法 ##
dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
##另外一種GNU dd的語(yǔ)法 ##
dd if=/dev/zero of=/tmp/testALT.img bs=1G count=1 conv=fdatasync
輸出樣例:
請(qǐng)各位注意在這個(gè)實(shí)驗(yàn)中,我們寫入一個(gè)G的數(shù)據(jù),可以發(fā)現(xiàn),服務(wù)器的吞吐率是135 MB/s,這其中
if=/dev/zero (if=/dev/input.file) :用來設(shè)置dd命令讀取的輸入文件名。
of=/tmp/test1.img (of=/path/to/output.file):dd命令將input.file寫入的輸出文件的名字。
bs=1G (bs=block-size) :設(shè)置dd命令讀取的塊的大小。例子中為1個(gè)G。
count=1 (count=number-of-blocks):dd命令讀取的塊的個(gè)數(shù)。
oflag=dsync (oflag=dsync) :使用同步I/O。不要省略這個(gè)選項(xiàng)。這個(gè)選項(xiàng)能夠幫助你去除caching的影響,以便呈現(xiàn)給你精準(zhǔn)的結(jié)果。
conv=fdatasyn: 這個(gè)選項(xiàng)和oflag=dsync含義一樣。
在下面這個(gè)例子中,一共寫了1000次,每次寫入512字節(jié)來獲得RAID10服務(wù)器的延遲時(shí)間:
代碼如下:
dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync
輸出樣例:
1000+0 records in
1000+0 records out
512000 bytes (512 kB) copied, 0.60362 s, 848 kB/s
請(qǐng)注意服務(wù)器的吞吐率以及延遲時(shí)間也取決于服務(wù)器/應(yīng)用的負(fù)載。所以我推薦你在一個(gè)剛剛重啟過并且處于峰值時(shí)間的服務(wù)器上來運(yùn)行測(cè)試,以便得到更加準(zhǔn)確的度量?,F(xiàn)在你可以在你的所有設(shè)備上互相比較這些測(cè)試結(jié)果了。
為什么服務(wù)器的吞吐率和延遲時(shí)間都這么差?
低的數(shù)值并不意味著你在使用差勁的硬件??赡苁怯布?RAID10的控制器緩存導(dǎo)致的。
使用hdparm命令來查看硬盤緩存的讀速度。
我建議你運(yùn)行下面的命令2-3次來對(duì)設(shè)備讀性能進(jìn)行檢測(cè),以作為參照和相互比較:
代碼如下:
### 有緩存的硬盤讀性能測(cè)試——/dev/sda ###
hdparm -t /dev/sda1
## 或者 ##
hdparm -t /dev/sda
然后運(yùn)行下面這個(gè)命令2-3次來對(duì)緩存的讀性能進(jìn)行對(duì)照性檢測(cè):
代碼如下:
## Cache讀基準(zhǔn)——/dev/sda ###
hdparm -T /dev/sda1
## 或者 ##
hdparm -T /dev/sda
或者干脆把兩個(gè)測(cè)試結(jié)合起來:
代碼如下:
hdparm -Tt /dev/sda
輸出樣例:
請(qǐng)?jiān)俅巫⒁?,由于文件文件操作的緩存屬性,你將總是?huì)看到很高的讀速度。
使用dd命令來測(cè)試讀取速度
為了獲得精確的讀測(cè)試數(shù)據(jù),首先在測(cè)試前運(yùn)行下列命令,來將緩存設(shè)置為無效:
代碼如下:
flush
echo 3 | sudo tee /proc/sys/vm/drop_caches
time time dd if=/path/to/bigfile of=/dev/null bs=8k
筆記本上的示例
運(yùn)行下列命令:
代碼如下:
### 帶有Cache的Debian系統(tǒng)筆記本吞吐率###
dd if=/dev/zero of=/tmp/laptop.bin bs=1G count=1 oflag=direct
###使cache失效###
hdparm -W0 /dev/sda
###沒有Cache的Debian系統(tǒng)筆記本吞吐率###
dd if=/dev/zero of=/tmp/laptop.bin bs=1G count=1 oflag=direct
蘋果OS X Unix(Macbook pro)的例子
GNU dd has many more options but OS X/BSD and Unix-like dd command need to run as follows to test real disk I/O and not memory add sync option as follows:
GNU dd命令有其他許多選項(xiàng),但是在 OS X/BSD 以及類Unix中, dd命令需要像下面那樣執(zhí)行來檢測(cè)去除掉內(nèi)存地址同步的硬盤真實(shí)I/O性能:
代碼如下:
## 運(yùn)行這個(gè)命令2-3次來獲得更好地結(jié)果 ###
time sh -c "dd if=/dev/zero of=/tmp/testfile bs=100k count=1k && sync"
輸出樣例:
1024+0 records in
1024+0 records out
104857600 bytes transferred in 0.165040 secs (635346520 bytes/sec)
real 0m0.241s
user 0m0.004s
sys 0m0.113s
本人Macbook Pro的寫速度是635346520字節(jié)(635.347MB/s)。
不喜歡用命令行?
你可以在Linux或基于Unix的系統(tǒng)上使用disk utility(gnome-disk-utility)這款工具來得到同樣的信息。下面的那個(gè)圖就是在我的Fedora Linux v22 VM上截取的。
圖形化方法
點(diǎn)擊“Activites”或者“Super”按鍵來在桌面和Activites視圖間切換。輸入“Disks”
在左邊的面板上選擇你的硬盤,點(diǎn)擊configure按鈕,然后點(diǎn)擊“Benchmark partition”:
最后,點(diǎn)擊“Start Benchmark...”按鈕(你可能需要輸入管理員用戶名和密碼):
如果你要問,我推薦使用哪種命令和方法?
我推薦在所有的類Unix系統(tǒng)上使用dd命令(time sh -c "dd if=/dev/zero of=/tmp/testfile bs=100k count=1k && sync)
如果你在使用GNU/Linux,使用dd命令 (dd if=/dev/zero of=/tmp/testALT.img bs=1G count=1 conv=fdatasync)
確保你每次使用時(shí),都調(diào)整了count以及bs參數(shù)以獲得更好的結(jié)果。
GUI方法只適合桌面系統(tǒng)為Gnome2或Gnome3的Linux/Unix筆記本用戶。
“Linux系統(tǒng)中怎么使用dd命令檢測(cè)硬盤性能”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。