云服务器作为新生事物到进入平常家经历了很短的时间,时长飞速发展,带来的就是惨烈的价格竞争,这样用户就很难避免被套路,有没有办法让你火眼金睛?下面就介绍一个测试方法,让你明白你捡到的是真便宜,还是捡到了套路。
这个工具就是FIO,FIO工具既然对云服务器进行存储的性能测试,当然在物理服务器或者PC也可以使用该工具进行存储性能进行测试。
FIO是用来测试系统IO性能的工具,它的强大之处在于提供了一套测试框架,能够支持多线程多进程的IO性能测试,用户只需进行参数的配置,便能够方便地定制不同的IO行为(顺序读写,随机读写等),并对其性能进行监测。该软件的作者Jens Axboe是linux内核IO部分的Maintainer。而GFIO则是FIO的图形监测工具,它提供了图形界面的参数配置,和性能监测图像。下面就开始进行测试了。
第一步,安装FIO软件
以新睿云平台自带的操作系统CentOS为例:
在shell的命令行界面中输入:yum install fio 进行Fio的安装。
也可已编译安装:
wget http://brick.kernel.dk/snaps/fio-2.0.7.tar.gz
yum install libaio-devel
make
make install
第二部:使用FIO进行测试:
测试项目1:随机读
在CentOS命令行界面键入如下指令:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=32G -numjobs=32 -runtime=10 -group_reporting -name=mytest
下面为列举的ioengine类型,可以根据您的了解进行选择:
参数说明:
filename=/dev/sdb 测试文件名称,通常选择需要测试的盘的data目录。 只能是分区,不能是目录,会破坏数据。
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
iodepth 1 队列深度,只有使用libaio时才有意义,这是一个可以影响IOPS的参数,通常情况下为1。
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
ioengine=psync io引擎使用pync方式
bs=512 单次io的块文件大小为512b
bsrange=512-2048 同上,提定数据块的大小范围
size=32G 本次的测试文件大小为32g,以每次512b的io进行测试,此大小不能超过filename的大小,否则会报错。
numjobs=128 本次的测试线程为128
runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息。
参数说明:
lockmem=1g 表示使用1g内存进行测试。
zero_buffers 表示用0初始化系统buffer。
nrfiles=8 表示每个进程生成文件的数量。
read 顺序读
write 顺序写
rw,readwrite 顺序混合读写
randwrite 随机写
randread 随机读
randrw 随机混合读写
测试项目2:顺序读
fio -filename=/dev/sdb -direct=1 -iodepth 32 -thread -rw=read -ioengine=psync -bs=512 -size=32G -numjobs=128 -runtime=10 -group_reporting -name=mytest
测试项目3:随机写
fio -filename=/dev/sdb -direct=1 -iodepth 32 -thread -rw=randwrite -ioengine=psync -bs=512 -size=32G -numjobs=128 -runtime=10 -group_reporting -name=mytest
测试项目4:顺序写:
fio -filename=/dev/sdb -direct=1 -iodepth 32 -thread -rw=write -ioengine=psync -bs=512 -size=32G -numjobs=128 -runtime=10 -group_reporting -name=mytest
测试项目5:混合随机读写:
fio -filename=/dev/sdb -direct=1 -iodepth 32 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=512 -size=32G -numjobs=128 -runtime=10 -group_reporting -name=mytest -ioscheduler=noop
以下为新睿云主机的测试结果:
测试的IOPS居然可以达到:210122 量级,性能超高,比头部云服务器厂家的性能要高很多。