濮阳杆衣贸易有限公司

主頁 > 知識庫 > Linux系統(tǒng)中使用dd命令檢測硬盤性能的方法

Linux系統(tǒng)中使用dd命令檢測硬盤性能的方法

熱門標簽:拉薩銷售外呼系統(tǒng)軟件 電銷語音機器人哪個好 文山外呼營銷系統(tǒng) 江蘇小型外呼系統(tǒng)軟件 中山防封卡電銷卡辦理 百度地圖標注未成功 常熟外呼系統(tǒng) 電話機器人服務器部署 地圖上標注點位的圖標

dd命令的基本使用

dd:用指定大小的塊拷貝一個文件,并在拷貝的同時進行指定的轉換。

注意:指定數(shù)字的地方若以下列字符結尾,則乘以相應的數(shù)字:b=512;c=1;k=1024;w=2

參數(shù)注釋:

if=文件名:輸入文件名,缺省為標準輸入。即指定源文件。 if=input file >
of=文件名:輸出文件名,缺省為標準輸出。即指定目的文件。 of=output file >
ibs=bytes:一次讀入bytes個字節(jié),即指定一個塊大小為bytes個字節(jié)。
obs=bytes:一次輸出bytes個字節(jié),即指定一個塊大小為bytes個字節(jié)。
bs=bytes:同時設置讀入/輸出的塊大小為bytes個字節(jié)。
cbs=bytes:一次轉換bytes個字節(jié),即指定轉換緩沖區(qū)大小。
skip=blocks:從輸入文件開頭跳過blocks個塊后再開始復制。
seek=blocks:從輸出文件開頭跳過blocks個塊后再開始復制。
注意:通常只用當輸出文件是磁盤或磁帶時才有效,即備份到磁盤或磁帶時才有效。
count=blocks:僅拷貝blocks個塊,塊大小等于ibs指定的字節(jié)數(shù)。
conv=conversion:用指定的參數(shù)轉換文件。
ascii:轉換ebcdic為ascii
ebcdic:轉換ascii為ebcdic
ibm:轉換ascii為alternate ebcdic
block:把每一行轉換為長度為cbs,不足部分用空格填充
unblock:使每一行的長度都為cbs,不足部分用空格填充
lcase:把大寫字符轉換為小寫字符
ucase:把小寫字符轉換為大寫字符
swab:交換輸入的每對字節(jié)
noerror:出錯時不停止
notrunc:不截短輸出文件
sync:將每個輸入塊填充到ibs個字節(jié),不足部分用空(NUL)字符補齊。

使用 dd 命令進行硬盤 I/O 性能檢測
如何使用dd命令測試我的硬盤性能?如何在linux操作系統(tǒng)下檢測硬盤的讀寫速度?

你可以使用以下命令在一個Linux或類Unix操作系統(tǒng)上進行簡單的I/O性能測試。

dd命令 :它被用來在Linux和類Unix系統(tǒng)下對硬盤設備進行寫性能的檢測。
hparm命令:它用來在基于 Linux 的系統(tǒng)上獲取或設置硬盤參數(shù),包括測試讀性能以及緩存性能等。
在這篇指南中,你將會學到如何使用dd命令來測試硬盤性能。
使用dd命令來監(jiān)控硬盤的讀寫性能:
打開shell終端。
或者通過ssh登錄到遠程服務器。
使用dd命令來測量服務器的吞吐率(寫速度) dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
使用dd命令測量服務器延遲 dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync
理解dd命令的選項
在這個例子當中,我將使用搭載Ubuntu Linux 14.04 LTS系統(tǒng)的RAID-10(配有SAS SSD的Adaptec 5405Z)服務器陣列來運行?;菊Z法為:


復制代碼
代碼如下:
dd if=/dev/input.file of=/path/to/output.file bs=block-size count=number-of-blocks oflag=dsync
## GNU dd語法 ##
dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
##另外一種GNU dd的語法 ##
dd if=/dev/zero of=/tmp/testALT.img bs=1G count=1 conv=fdatasync

輸出樣例:

請各位注意在這個實驗中,我們寫入一個G的數(shù)據,可以發(fā)現(xiàn),服務器的吞吐率是135 MB/s,這其中

if=/dev/zero (if=/dev/input.file) :用來設置dd命令讀取的輸入文件名。
of=/tmp/test1.img (of=/path/to/output.file):dd命令將input.file寫入的輸出文件的名字。
bs=1G (bs=block-size) :設置dd命令讀取的塊的大小。例子中為1個G。
count=1 (count=number-of-blocks):dd命令讀取的塊的個數(shù)。
oflag=dsync (oflag=dsync) :使用同步I/O。不要省略這個選項。這個選項能夠幫助你去除caching的影響,以便呈現(xiàn)給你精準的結果。
conv=fdatasyn: 這個選項和oflag=dsync含義一樣。
在下面這個例子中,一共寫了1000次,每次寫入512字節(jié)來獲得RAID10服務器的延遲時間:


復制代碼
代碼如下:
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
請注意服務器的吞吐率以及延遲時間也取決于服務器/應用的負載。所以我推薦你在一個剛剛重啟過并且處于峰值時間的服務器上來運行測試,以便得到更加準確的度量?,F(xiàn)在你可以在你的所有設備上互相比較這些測試結果了。

為什么服務器的吞吐率和延遲時間都這么差?
低的數(shù)值并不意味著你在使用差勁的硬件??赡苁怯布?RAID10的控制器緩存導致的。

使用hdparm命令來查看硬盤緩存的讀速度。

我建議你運行下面的命令2-3次來對設備讀性能進行檢測,以作為參照和相互比較:


復制代碼
代碼如下:
### 有緩存的硬盤讀性能測試——/dev/sda ###
hdparm -t /dev/sda1
## 或者 ##
hdparm -t /dev/sda

然后運行下面這個命令2-3次來對緩存的讀性能進行對照性檢測:


復制代碼
代碼如下:
## Cache讀基準——/dev/sda ###
hdparm -T /dev/sda1
## 或者 ##
hdparm -T /dev/sda

或者干脆把兩個測試結合起來:


復制代碼
代碼如下:
hdparm -Tt /dev/sda

輸出樣例:

請再次注意,由于文件文件操作的緩存屬性,你將總是會看到很高的讀速度。

使用dd命令來測試讀取速度
為了獲得精確的讀測試數(shù)據,首先在測試前運行下列命令,來將緩存設置為無效:


復制代碼
代碼如下:
flush
echo 3 | sudo tee /proc/sys/vm/drop_caches
time time dd if=/path/to/bigfile of=/dev/null bs=8k

筆記本上的示例
運行下列命令:


復制代碼
代碼如下:
### 帶有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命令有其他許多選項,但是在 OS X/BSD 以及類Unix中, dd命令需要像下面那樣執(zhí)行來檢測去除掉內存地址同步的硬盤真實I/O性能:


復制代碼
代碼如下:
## 運行這個命令2-3次來獲得更好地結果 ###
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)這款工具來得到同樣的信息。下面的那個圖就是在我的Fedora Linux v22 VM上截取的。

圖形化方法
點擊“Activites”或者“Super”按鍵來在桌面和Activites視圖間切換。輸入“Disks”

在左邊的面板上選擇你的硬盤,點擊configure按鈕,然后點擊“Benchmark partition”:

最后,點擊“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)
確保你每次使用時,都調整了count以及bs參數(shù)以獲得更好的結果。
GUI方法只適合桌面系統(tǒng)為Gnome2或Gnome3的Linux/Unix筆記本用戶。

標簽:淮安 石家莊 法律問答 湖南 和田 馬鞍山 開封 和田

巨人網絡通訊聲明:本文標題《Linux系統(tǒng)中使用dd命令檢測硬盤性能的方法》,本文關鍵詞  Linux,系統(tǒng),中,使用,命令,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux系統(tǒng)中使用dd命令檢測硬盤性能的方法》相關的同類信息!
  • 本頁收集關于Linux系統(tǒng)中使用dd命令檢測硬盤性能的方法的相關信息資訊供網民參考!
  • 推薦文章
    潼关县| 溆浦县| 东台市| 广安市| 雷州市| 吉安县| 卓资县| 白沙| 哈密市| 东源县| 定南县| 江西省| 新津县| 沙河市| 平远县| 清徐县| 双峰县| 黄平县| 千阳县| 高清| 嫩江县| 黄山市| 南靖县| 孟津县| 安远县| 宁化县| 金坛市| 略阳县| 双峰县| 淮南市| 财经| 乌恰县| 江门市| 南安市| 师宗县| 奉贤区| 凌云县| 大连市| 黄浦区| 安岳县| 天峻县|