Linux測試硬盤讀性能的常用工具-hdparm和dd倆搭檔


                Linux測試硬盤讀性能的常用工具-hdparm和dd倆搭檔

                                           作者:尹正傑

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

 

 

一.hparm        # 它用來在基於 Linux的系統上獲取或設置硬盤參數,包括測試讀性能以及緩存性能等。

1>.安裝hdparm工具

[root@node105 ~]# yum -y install hdparm

2>.查看幫助信息

[root@node105 ~]# hdparm -h

-a<快取分區> 設定讀取文件時,預先存入塊區的分區數,若不加上<快取分區>選項,則顯示目前的設定。

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

3>.顯示硬盤的相關信息(可以使用 “fdisk -l” 來查看磁盤信息 )

[root@kafka118 ~]# hdparm /dev/sda            

4>.評估硬盤的讀取效率

[root@kafka118 ~]# hdparm -t /dev/sda

5>.測試硬盤緩存的讀取速度

[root@kafka118 ~]# hdparm -T /dev/sda

6>.直接測試硬盤的讀性能

[root@kafka118 ~]# hdparm -tT --direct /dev/sda

 7>.查看DMA情況

[root@kafka118 ~]# hdparm -cdt /dev/sda 

 

二.dd           # 使用time命令和dd命令可以簡單測試硬盤的寫速率

  這不是一個專業的測試工具,不過如果對於測試結果的要求不是很苛刻的話,平時可以使用來對磁盤的讀寫速度作一個簡單的評估.

1>.准備測試環境 

[root@flume115 ~]# cat /etc/redhat-release           #操作系統是CentOS 7.5
CentOS Linux release 7.5.1804 (Core) 
[root@flume115 ~]# 
[root@flume115 ~]# 
[root@flume115 ~]# uname -r                #內核是3.10.0-862.el7.x86_64
3.10.0-862.el7.x86_64
[root@flume115 ~]# 
[root@flume115 ~]# 
[root@flume115 ~]# uname -m                #查看操作系統的架構
x86_64
[root@flume115 ~]# 
[root@flume115 ~]# 
[root@flume115 ~]# free -h                #查看內存,相比大家也看出來了,我的測試環境是32G內存
              total        used        free      shared  buff/cache   available
Mem:            31G        489M         29G         20M        1.3G         30G
Swap:           15G          0B         15G
[root@flume115 ~]# 
[root@flume115 ~]# yum -y install iotop sysstat    #安裝必要的監控IO的工具,即iotop和iostat

2>.測試寫入50G數據,數據量越大,測試值應該更精確(測試過程中,需要關注兩點,磁盤的讀寫速度和IO使用率,我們分別使用iopp和iostat工具來觀察。)

[root@flume115 ~]# time -p bash -c "(dd if=/dev/zero of=/home/yinzhengjie/dd.log  bs=1M count=50000)" 

3>.執行上述命令后,使用iotop觀察占用的I/O情況

[root@flume115 ~]# iotop -o

4>.執行上述命令后,使用iostat觀察占用的I/O情況

[root@flume115 ~]# iostat -x 1

 4>.驗證測試結果

[root@flume115 ~]# time -p bash -c "(dd if=/dev/zero of=/home/yinzhengjie/dd.log  bs=1M count=50000)"     
50000+0 records in
50000+0 records out
52428800000 bytes (52 GB) copied, 243.346 s, 215 MB/s
real 244.49
user 0.05
sys 34.66
[root@flume115 ~]# 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM