數據存儲產業服務平臺

應用:linux下測試磁盤的讀寫IO速度

有時候我們在做維護的時候,總會遇到類似于IO特別高,但不能判定是IO瓶頸還是軟件參數設置不當導致熱盤的問題.這時候通常希望能知道磁盤的讀寫速度,來進行下一步的決策。

下面是兩種測試方法:

(1)使用hdparm命令

這是一個是用來獲取ATA/IDE硬盤的參數的命令,是由早期Linux IDE驅動的開發和維護人員 Mark Lord開發編寫的( hdparm has been written by Mark Lord , the primary developer and maintainer of the (E)IDE driver for Linux, with suggestions from many netfolk).該命令應該也是僅用于Linux系統,對于UNIX系統,ATA/IDE硬盤用的可能比較少,一般大型的系統都是使用磁盤陣列的.

使用方法很簡單

# hdparm -Tt /dev/sda

/dev/sda:

Timing cached reads: 6676 MB in 2.00 seconds = 3340.18 MB/sec

Timing buffered disk reads: 218 MB in 3.11 seconds = 70.11 MB/sec

可以看到,2秒鐘讀取了6676MB的緩存,約合3340.18 MB/sec;

在3.11秒中讀取了218MB磁盤(物理讀),讀取速度約合70.11 MB/sec

(2)使用dd命令

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

另外由于這是一個免費軟件,基本上×NIX系統上都有安裝,對于Oracle裸設備的復制遷移,dd工具一般都是首選.

在使用前首先了解兩個特殊設備

/dev/null 偽設備,回收站.寫該文件不會產生IO

/dev/zero 偽設備,會產生空字符流,對它不會產生IO

測試方法:

a.測試磁盤的IO寫速度

# time dd if=/dev/zero of=/test.dbf bs=8k count=300000

300000+0 records in

300000+0 records out

10.59s real 0.43s user 9.40s system

# du -sm /test.dbf

2347 /test.dbf

可以看到,在10.59秒的時間里,生成2347M的一個文件,IO寫的速度約為221.6MB/sec;

當然這個速度可以多測試幾遍取一個平均值,符合概率統計.

b.測試磁盤的IO讀速度

# df -m

Filesystem 1M-blocks Used Available Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

19214 9545 8693 53% /

/dev/sda1 99 13 82 14% /boot

none 506 0 506 0% /dev/shm

# time dd if=/dev/mapper/VolGroup00-LogVol00 of=/dev/null bs=8k

2498560+0 records in

2498560+0 records out

247.99s real 1.92s user 48.64s system

上面的試驗在247.99秒的時間里讀取了19214MB的文件,計算下來平均速度為77.48MB/sec

c.測試IO同時讀和寫的速度

# time dd if=/dev/sda1 of=test.dbf bs=8k

13048+1 records in

13048+1 records out

3.73s real 0.04s user 2.39s system

# du -sm test.dbf

103 test.dbf

上面測試的數據量比較小,僅作為參考.

相比兩種方法:

前者是linux上專業的測試IDE/ATA磁盤的工具,但是使用范圍有局限性;(此試驗僅僅使用了測試磁盤IO的參數,對于其他參數及解釋參考man手冊)

后者可以通用,但不夠專業,也沒有考慮到緩存和物理讀的區分,測試的數據也是僅作參考,不能算是權威。

未經允許不得轉載:存儲在線-存儲專業媒體 » 應用:linux下測試磁盤的讀寫IO速度
精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走