【Linux】Linux測試磁盤 IO 性能

1.美圖

在這裏插入圖片描述

2 hdparm 命令

hdparm 命令提供了一個命令行的接口用於讀取和設置IDE或SCSI硬盤參數,注意該命令只能測試磁盤的讀取速率。

例如,測試 sda 磁盤的讀取速率:

[[email protected] var ]$ hdparm -Tt /dev/polex_pv/varvol

/dev/polex_pv/varvol:
 Timing cached reads:   15588 MB in  2.00 seconds = 7803.05 MB/sec
 Timing buffered disk reads: 1128 MB in  3.01 seconds = 374.90 MB/sec

從測試結果看出,帶有緩存的讀取速率爲:7803.05MB/s ,磁盤的實際讀取速率爲:374.90 MB/s 。

3. dd 命令

Linux dd 命令用於讀取、轉換並輸出數據。dd 可從標準輸入或文件中讀取數據,根據指定的格式來轉換數據,再輸出到文件、設備或標準輸出。

我們可以利用 dd 命令的複製功能,測試某個磁盤的 IO 性能,須要注意的是 dd 命令只能大致測出磁盤的 IO 性能,不是非常準確。

測試寫性能命令:

[[email protected] var ]$ time dd if=/dev/zero of=test.file bs=1G count=2 oflag=direct
2+0 records in
2+0 records out
2147483648 bytes (2.1 GB) copied, 13.5487 s, 159 MB/s

real    0m13.556s
user    0m0.000s
sys    0m0.888s 

可以看到,該分區磁盤寫入速率爲 159M/s,其中:

/dev/zero 僞設備,會產生空字符流,對它不會產生 IO 。
if 參數用來指定 dd 命令讀取的文件。
of 參數用來指定 dd 命令寫入的文件。
bs 參數代表每次寫入的塊的大小。
count 參數用來指定寫入的塊的個數。
offlag=direc 參數測試 IO 時必須指定,代表直接寫如磁盤,不使用 cache 。

測試讀性能命令:

[[email protected] var ]$ dd if=test.file of=/dev/null  iflag=direct
4194304+0 records in
4194304+0 records out
2147483648 bytes (2.1 GB) copied, 4.87976 s, 440 MB/s

可以看到,該分區的讀取速率爲 440MB/s

4. fio 命令

fio 命令是專門測試 iops 的命令,比 dd 命令準確,fio 命令的參數很多,這裏舉幾個例子供大家參考:

順序讀:

fio -filename=/var/test.file -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r

隨機寫:

fio -filename=/var/test.file -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_randw

順序寫:

fio -filename=/var/test.file -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_w

混合隨機讀寫:

fio -filename=/var/test.file -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r_w -ioscheduler=noop

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