linux 磁盘读写性能测试
1. 测试读取速度
haparm -Tt /dev/xxx
1.1 获取硬盘设备名称:
fdisk -l
Disk /dev/xvdf: 365.0 GB, 365041287168 bytes
255 heads, 63 sectors/track, 44380 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
1.2 测试硬盘读取速度
hdparm -tT /dev/xvdf
/dev/xvdf:
Timing buffered disk reads: 962 MB in 3.00 seconds = 320.56 MB/sec
1.3 硬盘读取速度测试结果
1.3.1 台式物理机
spec: 7200转硬盘
hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 7650 MB in 2.00 seconds = 3829.28 MB/sec
Timing buffered disk reads: 296 MB in 3.02 seconds = 98.05 MB/sec
1.3.2 VmWare虚拟机
host spec: 7200转硬盘
hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 11396 MB in 2.00 seconds = 5704.37 MB/sec
Timing buffered disk reads: 648 MB in 3.09 seconds = 209.45 MB/sec
1.3.3 amazon EC2上虚拟机
Instance type: m1.large
hdparm -tT /dev/xvdf
/dev/xvdf:
Timing cached reads: 5830 MB in 1.99 seconds = 2923.38 MB/sec
Timing buffered disk reads: 950 MB in 3.00 seconds = 316.61 MB/sec
2. 测试写速度
2.1 测试方法
使用time命令和dd命令可以简单测试硬盘的写速率
2.2. 硬盘读取速度测试结果
2.2.1 台式物理机
spec: 7200转硬盘
time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 9.78201 s, 105 MB/sreal 0m9.806s
user 0m0.236s
sys 0m3.120s
1.3.2 VmWare虚拟机
host spec: 7200转硬盘
time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 13.533 s, 75.7 MB/sreal 0m13.605s
user 0m0.113s
sys 0m3.077s
1.3.3 amazon EC2上虚拟机
Instance type: m1.large
time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 22.6497 s, 45.2 MB/sreal 0m23.785s
user 0m0.504s
sys 0m5.888s
3. 总结
物理机 | VmWare虚拟机 | Amazon虚拟机 | |
读速度 | 105 | 209.45 | 316.61 |
写速度 | 105 | 75.7 | 45.2 |
4. 附录
hdparm -h
-a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
-A<0或1> 启动或关闭读取文件时的快取功能。
-c<I/O模式> 设定IDE32位I/O模式。
-C 检测IDE硬盘的电源管理模式。
-d<0或1> 设定磁盘的DMA模式。
-f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。
-g 显示硬盘的磁轨,磁头,磁区等参数。
-h 显示帮助。
-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
-I 直接读取硬盘所提供的硬件规格信息。
-k<0或1> 重设硬盘时,保留-dmu参数的设定。
-K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。
-m<磁区数> 设定硬盘多重分区存取的分区数。
-n<0或1> 忽略硬盘写入时所发生的错误。
-p<PIO模式> 设定硬盘的PIO模式。
-P<磁区数> 设定硬盘内部快取的分区数。
-q 在执行后续的参数时,不在屏幕上显示任何信息。
-r<0或1> 设定硬盘的读写模式。
-S<时间> 设定硬盘进入省电模式前的等待时间。
-t 评估硬盘的读取效率。 -T 评估硬盘快取的读取效率。
-u<0或1> 在硬盘存取时,允许其他中断要求同时执行。 -v 显示硬盘的相关设定。
-W<0或1> 设定硬盘的写入快取。 -X<传输模式> 设定硬盘的传输模式。
-y 使IDE硬盘进入省电模式。 -Y 使IDE硬盘进入睡眠模式。
-Z 关闭某些Seagate硬盘的自动省电功能。