轉自:https://www.cnblogs.com/hjqjk/p/5773099.html
運維工作,經常要測試服務器硬件性能,以此來判斷是否存在性能瓶頸。
下面介紹在linux上測試磁盤IO速度的工具:
1、hdparm
CentOS中,安裝的兩種方法:
1) yum安裝。
# yum install hdparm
2)源碼包編譯安裝
# wget http://ncu.dl.sourceforge.net/project/hdparm/hdparm/hdparm-9.48.tar.gz # tar zxvf hdparm-9.48.tar.gz # cd hdparm-9.48 # make && make install
hdparm僅用於Linux系統。現在主要用來測試SSD固態硬盤讀取速度。
# hdparm -Tt /dev/sdb
/dev/sdb:
Timing cached reads: 17682 MB in 2.00 seconds = 8855.82 MB/sec
Timing buffered disk reads: 604 MB in 3.01 seconds = 200.98 MB/sec
解釋:
2秒鍾讀取了17682 MB的緩存,讀取速度約合8855.82 MB/sec;
在3.01秒中讀取了604 MB磁盤數據(物理讀),讀取速度約合200.98 MB/sec
/dev/sdb為SSD固態硬盤。
在我的服務器上,是這樣安裝的:拆掉光驅位,通過[SATA 22P母 轉 SLIMLINE SATA 13P公]轉接頭連接光驅位的線路,直接連接主板,而不走陣列卡。因為通過陣列卡連接SSD固態硬盤,會影響SSD的性能。
而受限於SATA2接口的讀取速度,如果SSD的讀取速度在 200MB/sec 以上,則是正常的,說明SSD已經正常工作了。
固態硬盤,在SATA 2.0接口上平均讀取速度在225MB/S,平均寫入速度在71MB/S。在SATA 3.0接口上,平均讀取速度驟然提升至311MB/S。
在隨機文件存取測試中,采用SATA 3.0接口的成績依然要好於采用SATA 2.0接口的成績。尤其在寫入4KB文件方面,SATA 2.0接口平均速度在50MB/S,而采用SATA 3.0后提升至70MB/S。
2、dd
dd 命令並不是一個專業的測試磁盤工具,它沒考慮到緩存和物理讀的區分,測試的結果僅作參考,不算權威。但是它通用於所有的Linux系統中。
兩個特殊設備:(不產生IO,就能單獨測試寫速度和讀速度)
/dev/null 偽設備,回收站.寫該文件不會產生IO
/dev/zero 偽設備,會產生空字符流,對它不會產生IO
(1)測試磁盤純寫速度
# time dd if=/dev/zero of=/data/test.dbf bs=8k count=300000 oflag=direct # 加上 oflag=direct,測到的才是真實的磁盤IO速度
解釋:從/dev/zero設備中讀入數據,寫出到/data/test.dbf文件中。bs=8k,每次寫的大小,即一個塊的大小。count=300000,一共寫30000塊。
(2)測試磁盤純讀速度
# time dd if=/data/test.dbf of=/dev/null bs=8k count=300000
解釋:從/data/test.dbf文件中讀入數據,寫出到/dev/null 設備中。bs=8k,每次讀的大小,即一個塊的大小。count=300000,一共讀30000塊。
(3)測試磁盤讀寫速度
# time dd if=/data/test_r.dbf of=/data/test_w.dbf bs=8k count=300000
備注:要想測試准確,測試的數據量最好大於系統內存(避免內存干擾),最好測試5次以上取平均值。
3、sysbench
https://www.ustack.com/blog/how-benchmark-ebs/#Linux