Linux使用dd命令測試硬盤讀寫速度

>Linux服務器裝好系統之後,想要知道硬盤的讀寫是否能滿足服務的需要,如果不滿足硬盤的IO就是服務的一個瓶頸。所以我們需要測試硬盤的讀寫速度,測試的方法很多,下面是使用Linux 自帶的dd命令測試硬盤的讀寫速度。
 
time有計時作用,dd用於複製,從if讀出,寫到of。if=/dev/zero不產生IO,因此可以用來測試純寫速度。同理of=/dev/null不產生IO,可以用來測試純讀速度。bs是每次讀或寫的大小,即一個塊的大小,count是讀寫塊的數量。
 
測/data目錄所在磁盤的純寫速度:
 
[root@nagios ~]# time dd if=/dev/zero of=/var/test bs=8k count=1000000
 1000000+0 records in
 1000000+0 records out
 8192000000 bytes (8.2 GB) copied, 52.5749 seconds, 156 MB/s
 
real    0m55.841s
 user    0m0.507s
 sys    0m15.706s
 
##紅色部分是因爲使用了time命令才顯示的,因此需要time命令來計算複製的時間。
 
測/data目錄所在磁盤的純讀速度:
 
[root@nagios ~]# time dd if=/var/test of=/dev/null bs=8k count=1000000
 1000000+0 records in
 1000000+0 records out
 8192000000 bytes (8.2 GB) copied, 49.0088 seconds, 167 MB/s
 
real    0m49.025s
 user    0m0.559s
 sys    0m6.383s
 
測讀寫速度:
 
[root@nagios ~]# time dd if=/var/test of=/tmp/test bs=8k count=1000000
 125000+0 records in
 125000+0 records out
 8192000000 bytes (8.2 GB) copied, 129.239 seconds, 63.4 MB/s
 
real    2m9.251s
 user    0m0.114s
 sys    0m21.494s
 
看來這個測試結果還不錯,嘿嘿 

備註:理論上測試複製量越大測試結果越準確。
 
正常測試的時候可能不止測試一邊,可能會需要很多遍求取平均值,這個測試結果在普通的重定向是沒有效果的 之後 google 了一下 用下面的方式重定向到一個文件
 
dd if=/dev/zero of=/var/test bs=8k count=1000000  2>> info
 
這樣測試的結果就到info文件裏面了

hdparm 測試硬盤讀寫速度

安裝:yum install hdparm

語  法:hdparm [-CfghiIqtTvyYZ][-a <快取分區>][-A <01>][-c <I/O模式>][-d <01>][-k <01>][-K <01>][-m <分區數>][-n <01>][-p <PIO模式>][-P <分區數>][-r <01>][-S <時間>][-u <01>][-W <01>][-X <傳輸模式>][設備]

補充說明:hdparm可檢測,顯示與設定IDE或SCSI硬盤的參數。

參  數:
  -a<快取分區>   設定讀取文件時,預先存入塊區的分區數,若不加上<快取分區>選項,則顯示目前的設定。
  -A<01>   啓動或關閉讀取文件時的快取功能。
  -c<I/O模式>   設定IDE32位I/O模式。
  -C   檢測IDE硬盤的電源管理模式。
  -d<01>   設定磁盤的DMA模式。
  -f   將內存緩衝區的數據寫入硬盤,並清楚緩衝區。
  -g   顯示硬盤的磁軌,磁頭,磁區等參數。
  -h   顯示幫助。
  -i   顯示硬盤的硬件規格信息,這些信息是在開機時由硬盤本身所提供。
  -I   直接讀取硬盤所提供的硬件規格信息。
  -k<01>   重設硬盤時,保留-dmu參數的設定。
  -K<01>   重設硬盤時,保留-APSWXZ參數的設定。
  -m<磁區數>   設定硬盤多重分區存取的分區數。
  -n<01>   忽略硬盤寫入時所發生的錯誤。
  -p<PIO模式>   設定硬盤的PIO模式。
  -P<磁區數>   設定硬盤內部快取的分區數。
  -q   在執行後續的參數時,不在屏幕上顯示任何信息。
  -r<01>   設定硬盤的讀寫模式。
  -S<時間>   設定硬盤進入省電模式前的等待時間。
  -t   評估硬盤的讀取效率。
  -T  評估硬盤快取的讀取效率。
  -u<01>   在硬盤存取時,允許其他中斷要求同時執行。
  -v   顯示硬盤的相關設定。
  -W<01>   設定硬盤的寫入快取。
  -X<傳輸模式>   設定硬盤的傳輸模式。
  -y   使IDE硬盤進入省電模式。
  -Y   使IDE硬盤進入睡眠模式。
  -Z   關閉某些Seagate硬盤的自動省電功能。

測試硬盤的讀取速度:

普通磁盤測試:

# hdparm -t /dev/sda
/dev/sda:
 Timing buffered disk reads:  316 MB in  3.02 seconds = 104.71 MB/sec

# hdparm -T /dev/sda
/dev/sda:
 Timing cached reads:   19328 MB in  1.99 seconds = 9691.24 MB/sec

RAID0測試(兩塊盤):

# hdparm -t /dev/sdb
/dev/sdb:
 Timing buffered disk reads:  622 MB in  3.01 seconds = 206.89 MB/sec

# hdparm -T /dev/sdb1
/dev/sdb1:
 Timing cached reads:   19632 MB in  1.99 seconds = 9844.20 MB/sec

RAID0測試(三塊盤):

# hdparm -t /dev/sdb
/dev/sdb:
 Timing buffered disk reads:  846 MB in  3.00 seconds = 281.54 MB/sec


# hdparm -T /dev/sdb
/dev/sdb:
 Timing cached reads:   18412 MB in  1.99 seconds = 9229.67 MB/sec

RAID0測試(四塊盤)

/dev/sdb:
 Timing cached reads:   19608 MB in  1.99 seconds = 9832.76 MB/sec

 Timing buffered disk reads:  860 MB in  3.00 seconds = 286.35 MB/sec

另外ARID卡測試速度後,每次會警告:

HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device

參考測試速度方法:time cp -a data2 data2


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章