vdbench和fio测试磁盘性能的对比总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vdbench和fio测试磁盘性能的对比总结相关的知识,希望对你有一定的参考价值。

一、安装

1、安装vdbench,首先安装java:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

                              其次下载vdbench安装包并进行安装:http://pan.baidu.com/s/1b7XooY;                     

#mv vdbench50406 /var/www/html/ 
#unzip vdbench50406.zip -d vdbench504

                         启动基准测试之前,使用默认的参数检查安装是否成功完成:

                         # ./vdbench -t

[[email protected] vdbench504]# ./vdbench -t


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Vdbench distribution: vdbench50406 Wed July 20 15:49:52 MDT 2016
For documentation, see vdbench.pdf.

16:47:50.883 input argument scanned: -f/tmp/parmfile
16:47:50.939 Starting slave: /var/www/html/vdbench504/vdbench SlaveJvm -m localhost -n localhost-10-171116-16.47.50.757 -l localhost-0 -p 5570
16:48:01.006 Waiting for slave connection: localhost-0
16:48:01.508 All slaves are now connected
16:48:03.002 Starting RD=rd1; I/O rate: 100; elapsed=5; For loops: None

Nov 16, 2017  interval        i/o   MB/sec   bytes   read     resp     read    write     resp     resp queue  cpu%  cpu%
                             rate  1024**2     i/o    pct     time     resp     resp      max   stddev depth sys+u   sys
16:48:04.051         1      86.00     0.08    1024  54.65    0.012    0.009    0.015    0.064    0.010   0.0  12.6   2.1
16:48:05.047         2      93.00     0.09    1024  50.54    0.016    0.012    0.020    0.064    0.012   0.0   5.1   1.0
16:48:06.047         3      94.00     0.09    1024  50.00    0.010    0.007    0.013    0.043    0.006   0.0   2.0   0.0
16:48:07.046         4      88.00     0.09    1024  50.00    0.012    0.008    0.017    0.043    0.009   0.0   2.5   0.5
16:48:08.051         5      99.00     0.10    1024  57.58    0.009    0.007    0.013    0.026    0.005   0.0   2.0   0.5
16:48:08.076   avg_2-5      92.00     0.09    1024  52.61    0.012    0.008    0.016    0.064    0.009   0.0   6.6   1.1
16:48:08.749 Vdbench execution completed successfully. Output directory: /var/www/html/vdbench504/output

             目前为止,安装完成。

介绍一下参数意义:对于一个虚拟块设备,配置以下参数

HD:主机定义

如果您希望展示当前主机,则设置 hd= localhost。如果希望指定一个远程主机,hd= label。

system= IP 地址或网络名称

clients= 用于模拟服务器的正在运行的客户端数量。

 

SD:存储定义

sd= 标识存储的名称。

host= 存储所在的主机的 ID。

lun= 原始磁盘、磁带或文件系统的名称。vdbench 也可为您创建一个磁盘。

threads= 对 SD 的最大并发 I/O 请求数量。默认为 8。

hitarea= 调整读取命中百分比的大小。默认为 1m

openflags= 用于打开一个 lun 或一个文件的 flag_list

 

WD:工作负载定义

wd= 标识工作负载的名称

sd= 要使用的存储定义的 ID

host= 要运行此工作负载的主机的 ID。默认设置为 localhost

rdpct= 读取请求占请求总数的百分比。

rhpct= 读取命中百分比。默认设置为 0。

whpct= 写入命中百分比。默认设置为 0。

xfersize= 要传输的数据大小。默认设置为 4k。

seekpct= 随机寻道的百分比。可为随机值

openflags= 用于打开一个 lun 或一个文件的 flag_list

iorate= 此工作负载的固定 I/O 速率

 

RD:运行定义

rd= 标识运行的名称。

wd= 用于此运行的工作负载的 ID。

iorate= (#,#,...) 一个或多个 I/O 速率

curve:性能曲线(待定义)。

max:不受控制的工作负载。

elapsed= time:以秒为单位的运行持续时间。默认设置为 30。

warmup= time:加热期,最终会被忽略

distribution= I/O 请求的分布:指数、统一或确定性。

pause= 在下一次运行之前休眠的时间,以秒为单位。

openflags= 用于打开一个 lun 或一个文件的 flag_list。

 

对于一个文件系统,配置以下参数:

HD:主机定义。与虚拟块设备相同

 

FSD:文件系统定义

fsd= 标识文件系统定义的名称

anchor= 将在其中创建目录结构的目录

width= 要在定位符下创建的目录数

depth= 要在定位符下创建的级别数

files= 要在最低级别创建的文件数

sizes= (size,size,...) 将创建的文件大小

distribution= bottom(如果希望仅在最低级别创建文件)和 all(如果希望在所有目录中创建文件)

openflags= 用于打开一个文件系统 (Solaris) 的 flag_list

 

FWD:文件系统工作负载定义

fwd= 标识文件系统工作负载定义的名称

fsd= 要使用的文件系统定义的 ID

host= 要用于此工作负载的主机的 ID。

fileio= random 或 sequential,表示文件 I/O 将执行的方式。

fileselect= random 或 sequential,标识选择文件或目录的方式。

xfersizes= 数据传输(读取和写入操作)处理的数据大小。

operation= mkdir、rmdir、create、delete、open、close、read、write、getattr 和 setattr。选择要执行的单个文件操作。

rdpct= (仅)读取和写入操作的百分比。

threads= 此工作负载的并发线程数量。每个线程需要至少 1 个文件。

 

RD:运行定义

fwd= 要使用的文件系统工作负载定义的 ID。

fwdrate= 每秒执行的文件系统操作数量。

format= yes / no / only / restart / clean / directories。在开始运行之前要执行的操作。

operations= 覆盖 fwd 操作。选项相同。

 

1)测试块设备的性能(随机写)

编辑测试脚本文件test1(测试本机一块磁盘)

hd=default,vdbench=/var/www/html/vdbench504,user=root,shell=ssh
sd=sd1,lun=/dev/vdc,openflags=o_direct,threads=1
wd=wd1,sd=sd1,xfersize=16k,readpct=0,seekpct=100
rd=rd1,wd=wd1,iorate=max,elapsed=120,maxdata=5500g,interval=1,warmup=30

测试本机两块磁盘(后面类推)

hd=default,vdbench=/var/www/html/vdbench504,user=root,shell=ssh
sd=sd1,lun=/dev/vdc,openflags=o_direct,threads=1
sd=sd2,lun=/dev/vdb,openflags=o_direct,threads=1
wd=wd1,sd=sd*,xfersize=16k,readpct=0,seekpct=100
rd=rd1,wd=wd1,iorate=max,elapsed=120,maxdata=5500g,interval=1,warmup=30

2、fio的安装

    直接下载安装软件,拷贝到虚机即可,通过自己写脚本或者执行命令去测试

二、两者的区别与共同之处

1、vdbench中的threads相当于fio的threads和depth

2、vdbench测试结果中的I/O相当于fio的iops;vdbench中的MB/sec相当于fio的BW带宽;vdbench的rest time相当于fio的时延

3、vdbench测试的是整个集群或者整个虚机或者所有磁盘的总性能,而fio需要写脚本去测试多个磁盘或者多台虚机

                              

以上是关于vdbench和fio测试磁盘性能的对比总结的主要内容,如果未能解决你的问题,请参考以下文章

vdbench - 性能压力测试工具

iometer - 性能压力测试工具

iometer - 性能压力测试工具

iometer - 性能压力测试工具

FIO – IO压力测试工具

磁盘性能测试工具之fio