帮助中心
  • 云主机
  • 数据盘
  • 弹性IP
  • 快照
  • 云防火墙

以下介绍Linux环境下常用的fio磁盘性能测试方法:(比格云CentOS6为例)

1、fio简介

fio是一个非常灵活的I/O测试工具,支持多线程或进程模拟等I/O操作来进行压力测试。

官网:http://freecode.com/projects/fio

2、fio的安装

CentOS下可直接通过yum install fio 进行安装,ubuntu直接apt-get install fio。

3、fio用法

blob.png

常用命令行参数及说明(详细参数请参考man fio) 

blob.png

4、IO性能测试指标

顺序读写(吞吐量,常用单位为MB/s):文件在硬盘上存储位置是连续的,吞吐量高,适用于大文件拷贝。

4K随机读写(IOPS,常用单位为次):在硬盘上随机位置读写数据,每次4KB,适用于OS、软件运行以及数据库等IO密集度较高的应用。

5、IO性能测试方法

这里使用上文介绍的fio来进行测试,指定数据块大小分别为“4K、512K”,iodepth队列深度为128的条件下,随机申请一台比格云Linux云主机,对其数据盘进行IO性能测试。

#比格云主机配置:

blob.png

测试命令如下:

(注:这里均以数据盘裸设备(/dev/vdc1)进行测试,测试值更为准确和稳定,但裸设备测试会造成数据盘文件系统损坏,请谨慎操作并注意备份数据,同时注释/etc/fstab 文件中/dev/vdc1挂载点,防止由于数据盘文件系统损坏无法挂载导致OS无法重启动,也可以使用文件进行测试,即指定-filename=/data/test,如以文件进行测试,会受文件系统的影响,测试结果会有偏差和抖动,请知悉。)

#测试随机读IOPS:

#fio -direct=1 -iodepth=128 -filename=/dev/vdc1 -rw=randread -ioengine=libaio -bs=4k -size=10G -numjobs=64 -runtime=1000 -group_reporting -name=randread.iops -output=randread.iops

#测试随机写IOPS:

#fio -direct=1 -iodepth=128 -filename=/dev/vdc1 -rw=randwrite -ioengine=libaio -bs=4k -size=10G -numjobs=64 -runtime=1000 -group_reporting -name=randwrite.iops -output=randwrite.iops

#测试顺序写吞吐量:

#fio -direct=1 -iodepth=128 -filename=/dev/vdc1 -rw=write -ioengine=libaio -bs=512k -size=10G -numjobs=64 -runtime=1000 -group_reporting -name= write.throughput -output=write.throughput 

#测试顺序读吞吐量:

fio -direct=1 -iodepth=128 -filename=/dev/vdc1 -rw=read -ioengine=libaio -bs=512k -size=10G -numjobs=64 -runtime=1000 -group_reporting -name= read.throughput -output=read.throughput 

 

这里测试的随机读IOPS为131194, 随机写IOPS为79128,如下表所示:

blob.png 

这里测试的顺序读吞吐量为6.2GB/s, 顺序写吞吐量为2.2GB/s,如下表所示:

blob.png


下一篇