磁盘IO性能:测试磁盘IO速度方法
一、hdparm
测试磁盘读取速度:
| Bash |
|---|
| hdparm -Tt /dev/sda1
/dev/sda1:
Timing cached reads: 23136 MB in 2.00 seconds = 11580.41 MB/sec
Timing buffered disk reads: 196 MB in 1.91 seconds = 102.76 MB/sec
|
2秒读取了23146M的缓存,约合11580.41MB/sec。
1.91秒读取的196M的磁盘(物理读),读取速度约102.76MB/sec。
二、dd
1. 2个特殊设备说明
/dev/null 伪设备,回收站,写该文件不会产生IO。
/dev/zero 伪设备,会产生空字符流,对它不会产生IO。
命令详解:
time 用于计时
dd 用于复制,从if读出,写到of。
if=/dev/zero 不产生IO,因此可以用来测试纯写速度;
of=/dev/null 不产生IO,可以用来测试纯读速度。
bs 是每次读或写的大小,即一个块的大小
count 是读写块的数量,相乘就是读写数据量大小。
数据量越大越准确,多次测试取平均值
2. 测试磁盘IO的读速度
| Bash |
|---|
| time dd if=/dev/sda1 of=/dev/null bs=8k
25097+1 records in
25097+1 records out
205599744 bytes (206 MB) copied, 1.89498 seconds, 108 MB/s
real 0m1.899s
user 0m0.005s
sys 0m0.205s
|
磁盘的读取速度约为108MB/s。
3. 测试磁盘IO的写速度
| Bash |
|---|
| time dd if=/dev/zero of=test.sdf bs=8k count=300000
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 1.65826 seconds, 1.5 GB/s
real 0m1.672s
user 0m0.023s
sys 0m1.637s
|
磁盘的写入速度约为1.5GB/s。
4. 测试磁盘IO同时读和写的速度
| Bash |
|---|
| time dd if=/dev/sda1 of=test.sdf bs=8k
25097+1 records in
25097+1 records out
205599744 bytes (206 MB) copied, 0.178311 seconds, 1.2 GB/s
real 0m0.179s
user 0m0.006s
sys 0m0.174s
|
磁盘的同时读合写速度约为1.2GB/s