> Linux教程 > Linux学习 >

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/s

real 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/s

real 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/s

real 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硬盘的自动省电功能。




(责任编辑:IT)