linux下測試磁碟的讀寫IO速度 簡易方法

2022-06-17 04:06:08 字數 2839 閱讀 3252

這是乙個是用來獲取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硬碟用的可能比較少,一般大型的系統都是使用磁碟陣列的.

使用方法很簡單

[root@my1-222 ~]# hdparm -tt /dev/sda3

/dev/sda3:

timing cached reads:   13034 mb in  2.00 seconds = 6527.09 mb/sec

timing buffered disk reads: 194 mb in  5.60 seconds =  34.64 mb/sec

[root@my1-222 ~]#

可以看到,2秒鐘讀取了13034mb的快取,約合6527.09 mb/sec;

在3.11秒中讀取了194mb磁碟(物理讀),讀取速度約合4.64 mb/sec

這不是乙個專業的測試工具,不過如果對於測試結果的要求不是很苛刻的話,平時可以使用來對磁碟的讀寫速度作乙個簡單的評估.另外由於這是乙個免費軟體,基本上×nix系統上都有安裝。

首先了解兩個特殊裝置

/dev/null 偽裝置,**站.寫該檔案不會產生io

/dev/zero 偽裝置,會產生空字元流,對它不會產生io

測試方法:

a.測試磁碟的io寫速度

time dd if=/dev/zero of=test.dbf bs=8k count=300000   # 如果要測試實際速度 還要在末尾加上 oflag=direct測到的才是真實的io速度

b.測試磁碟的io讀速度

dd if=test.dbf bs=8k count=300000 of=/dev/null

#表示 每次寫入/讀取8k的資料,執行300000次

dd命令可以通用,但不夠專業,也沒有考慮到快取和物理讀的區分,測試的資料也是僅作參考,不能算是權威。

[root@my1-222 ~]# time dd if=/dev/zero of=test.dbf bs=8k count=300000

300000+0 records in

300000+0 records out

2457600000 bytes (2.5 gb) copied, 2.50417 s, 981 mb/s

real 0m2.537s

user 0m0.023s

sys 0m2.070s

[root@my1-222 ~]# time dd if=/dev/zero of=test.dbf bs=8k count=300000 oflag=direct

300000+0 records in

300000+0 records out

2457600000 bytes (2.5 gb) copied, 25.4357 s, 96.6 mb/s

real 0m25.550s

user 0m0.010s

sys 0m13.655s

[root@my1-222 ~]#

[root@my1-222 ~]# dd if=test.dbf bs=8k count=300000 of=/dev/null

300000+0 records in

300000+0 records out

2457600000 bytes (2.5 gb) copied, 1.94773 s, 1.3 gb/s

[root@my1-222 ~]#

dd命令解釋

dd if= of= bs= skip= seek= conv=

一定不要搞混 source 和 target,不然資料會丟失。所以 dd 平時用著順手就叫它 dd,但是不小心把資料弄沒了就該哭著叫它 data destroyer 了。

一般它的常用引數有:

bs=n,block size,每次讀取 n bytes 寫入,可與 count 聯用;

ibs=n,一次讀入 bytes 個位元組 (default is 512);

obs=n,一次性寫 n bytes 個位元組 (default is 512);

bs 可以同時設定上邊兩個引數;

cbs=n,一次轉換 n 個 bytes,即轉換緩衝區大小。;

count=n, bs 操作的次數,僅拷貝 n 個塊,如 ***: bs=1m count=4430;

skip=n,指 if 後面的原檔案跳過 n bytes 再開始讀取;

seek=n,指 of 後面的目標檔案跳過 n bytes 再開始寫入;   

測試io同時讀和寫的速度

[root@my1-222 ~]# time dd if=/dev/sda1 of=test.dbf bs=8k count=300000

25600+0 records in

25600+0 records out

209715200 bytes (210 mb) copied, 2.23626 s, 93.8 mb/s

real 0m2.394s

user 0m0.002s

sys 0m0.352s

[root@my1-222 ~]#

(同時測試讀寫速度時生成乙個大小200m的 test.dbf檔案)

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

linux下測試磁碟的讀寫IO速度

有時候我們在做維護的時候,總會遇到類似於io特別高,但不能判定是io瓶頸還是軟體引數設定不當導致熱盤的問題.這時候通常希望能知道磁碟的讀寫速度,來進行下一步的決策.下面是兩種測試方法 1 使用hdparm命令 這是乙個是用來獲取ata ide硬碟的引數的命令,是由早期linux ide驅動的開發和維...

linux磁碟讀寫測試

time dd 測磁碟讀寫速度 1 先熟悉兩個特殊的裝置及一些相關引數 1 time有計時作用,dd用於複製,從if讀出,寫到of 2 if dev zero 產生字元 不產生io,因此可以用來測試純寫速度 3 同理of dev null 站 無底洞 不產生io,可以用來測試純讀速度 4 將 tmp...

Linux磁碟I O讀寫速度檢測

1 讀寫測試 讀取速度可以使用命令 hdparm t 裝置名 dev sda1 讀取速度可以使用命令也可以使用 time dd if dev sda of dev null bs 1m count 3 iflag direct 寫入速度使用命令 time dd if dev zero of dev ...