使用附件脚本进行测试:
1. 下载安装fio
a. Centos 7.x:
yum install epel-release
yum install -y fio
a. Centos 6.x:
yum install libibverbs.x86_64
wget http://mirror.ghettoforge.org/distributions/gf/el/6/plus/x86_64//fio-2.1.11-1.gf.el6.x86_64.rpm
rpm -iv fio-2.1.10-1.el6.rf.x86_64.rpm
2. 以管理员身份登录虚拟机, 切换成root.
3. 执行命令: fio --name=/mnt/p20/randwrite --ioengine=libaio --iodepth=128 --rw=randwrite --bs=64k --direct=1 --size=25G --numjobs=1 --runtime=30 --group_reporting
4. 命令说明: --bs 读写的block大小, 不同block大小, 对磁盘的IOPS有一定的影响; -rw, 读写的类型,详细类型参考 man fio; –size, 测试读写数据量, 根据实际的磁盘空间, 选用合适大小的读写数据量, 已保障磁盘有足够的读写时间.
5. 同时在另外个命令终端, 执行命令: iostat -x 1
6. 命令说明: iostat统计磁盘读写性能, 每秒统计一次. 对于iops的指标, 参考 r/s 和 w/s列.
以下查看测试命令,DS虚拟机操作示例请参考:
[root@DS13IOTEST ~]# uname -a
Linux DS13IOTEST 2.6.32-431.29.2.el6.x86_64 #1 SMP Tue Sep 9 21:36:05 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@DS13IOTEST ~]# fio --version
fio-2.1.10
[root@DS13IOTEST ~]# modinfo hv_vmbus
filename: /lib/modules/2.6.32-431.29.2.el6.x86_64/weak-updates/microsoft-hyper-v/hv_vmbus.ko
version: 4.1.2
license: GPL
srcversion: 82B9AE7A2B6BFE26B1AC6A4
alias: acpi*:VMBus:*
alias: acpi*:VMBUS:*
depends:
vermagic: 2.6.32-431.el6.x86_64 SMP mod_unload modversions
[root@DS13IOTEST ~]# mount -O barrier=0 /dev/sdc1 /datadrive512G
[root@DS13IOTEST ~]# df -T
[root@DS13IOTEST ~]# ./fio.sh /datadrive512G >p20_fio_report
对临时盘进行测试:
[root@DS13IOTEST ~]# ./fio.sh /mnt/resource > temdisk_fio_report
[root@DS13IOTEST ~]# cat temdisk_fio_report | grep iops
不使用脚本,命令直接测试:
测试环境:
· Centos 6.5虚拟机【未更新LIS】
· 对该虚拟机添加一块10GB数据磁盘,无读写缓存
测试结果:
1. 测试命令:[root@iopstest01 ~]# fio -directory=/mnt/test01 -name=tempfile.dat -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=16 -time_based -runtime=100 -group_reporting
测试结果基本符合官方文档中,对于不同大小数据磁盘IOPS的指标数据
2. 在fio命令中,如果使用-filename参数,应该使用设备名,因为-filename参数是要指定某个要测试的裸设备
当我们使用[root@iopstest01 ~]# fio -filename=/dev/sdc1 -direct=1 -iodepth=1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=5G -numjobs=10 -runtime=120 -group_reporting -name=tempfile.dat
测试结果的IOPS值,和使用-directory参数基本保持一致
3. 备注:为了您的数据安全。根据我们之前处理工单的经验,对于已有文件系统的分区,建议您使用fio命令的时候,使用参数-directory而不是-filename,因为-filename会破坏系统分区,导致被测试磁盘上面的文件系统损坏,这样即使将该磁盘挂载到其它VM上,也无法通过fsck进行修复。
这个情况并不是仅仅在Azure上面存在,在任何环境下都会发生【我们对本地hyper-v及vmvare虚拟环境,对相应虚拟机执行此操作都会遇到文件系统损坏的情况】,请您周知。
关于上面提到的第2点和第3点,在网上也找到了类似的文章,供您参考:【http://blog.csdn.net/commsea/article/details/11797011 】
原文地址:http://blog.51cto.com/286722/2056384