1 概述

浪潮信息KOS是浪潮信息基于Linux Kernel、OpenAnolis等开源技术自主研发的一款服务器操作系统,支持x86、ARM等主流架构处理器,性能和稳定性居于行业领先地位,具备成熟的 CentOS 迁移和替换能力,可满足云计算、大数据、分布式存储、人工智能、边缘计算等应用场景需求。

vdbench是一个 I/O 工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能。它是一个免费的工具,容易使用,而且常常用于测试和基准测试。 可以使用vdbench测试磁盘和文件系统的读写性能。 注:此软件的带宽及字节结算单位均为1024进制。

2 安装准备

2.1 操作环境

操作系统版本:KOS 5.8 sp2u1(5.10.134-17.2.2.kos5.x86_64)

测试架构:x86_64,8核4G虚拟机

2.2 软件版本

Vdbench v50407

3工具安装

要安装vdbench,你可以按照以下步骤进行操作:

首先,确保你的系统是基于Linux的系统,比如Ubuntu、CentOS等。

打开终端,并使用以下命令安装必要的依赖项:

sudo yum install -y java Vdbench需要安装jdk

接下来,下载vdbench的部署包:

上传至服务器,直接unzip解压。

使用chmod -R 777 vdbench50407赋下权限

在vdbench目录下执行./vdbench -t进行测试

4 执行测试

4.1 常用参数说明

vdbench 的测试配置通过配置文件来完成,在配置文件中,您需要定义主机、存储设备、工作负载等信息。以下是一个基本的配置文件示例:

hd=host1

sd=sd1,lun=/dev/sda1

wd=wd1,sd=sd1,rdpct=70,wdsize=8k

rd=rd1,wd=wd1,iorate=1000,runlen=10m

HD (Host Define): 主机定义,用于指定运行测试的主机信息。在单机运行时,此参数可省略。若进行多主机联机测试,则需配置此项,包括主机标识、系统IP地址或主机名、vdbench执行文件存放路径等。

SD (Storage Define): 存储定义,用于描述被测试的存储设备信息,如存储名称、所在主机ID、原始磁盘或文件系统的名称等。此外,还可以设置对SD的最大并发I/O请求数量、读取命中百分比的大小等。

WD (Workload Define): 工作负载定义,它规定了测试的工作负载特性,如工作负载名称、使用的存储设备ID、读写比例、数据传输大小等。

RD (Run Define): 运行定义,用于设定测试运行的具体参数,如工作负载ID、I/O速率、测试时长、预热时间等。

FSD (File System Define): 文件系统定义,用于文件系统测试,包括文件系统定义的名称、文件写入的根目录、目录层级数、每层文件夹的子文件夹数、测试文件个数及大小等。

FWD (FileSystem Workload Define): 文件系统工作负载定义,描述了对文件系统的具体操作,如文件I/O执行方式、选择文件或目录的方式、数据传输大小、要执行的文件操作等。

4.2 测试场景

块设备测试: 通过配置SD参数,直接对块设备进行读写性能测试。可以设置不同的读写比例、I/O大小以及并发线程数,来模拟不同的工作负载情况。

例:块设备测试:

在1-5行中说明了测试使用的磁盘,sd为自定义名称,一般从sd1起命名,lun为测试时使用的卷的名称,openflag设置读写操作方式,一般为o_direct,即以无缓冲缓存的方式进行读写操作,threads规定了测试使用线程数;

第七行中规定了工作负载,wd为自定义工作负载名称,sd设置工作负载中使用到的存储设备,例中sd*则表示此工作负载使用了全部以sd开头的存储设备,seekpct为随机操作比例,为0则为顺序操作,rdpct为读操作比例,为0即为此工作负载全部为写操作,xfersize为操作数据的大小;

最后一行中设定了运行参数,rd为运行定义的名称,wd为使用到的工作负载名称,iorate为测试时的速率,max即为以最大的速率进行测试,elapsed为正式测试时长,interval为命令行打印输出的时间间隔,warmup为预测试的时长(预测试时间内的测试值不会计入最终测试结果中),elapsed、interval和warmup的单位均为s。

文件系统测试: 通过配置FSD和FWD参数,对文件系统进行性能测试。可以创建不同层级的目录结构,并在最后一层目录创建文件进行读写测试。同样可以设置不同的读写比例、文件大小等参数。

文件存储测试与块存储测试的区别在于,块存储测试会直接写入或读取数据,不管挂载磁盘的状态,但文件存储测试在测试前会预先写入测试所需要的文件,即下方陈述的fsd中的文件及目录,所有文件及目录按照设定写入完毕后,才会进行正式测试,所以,一般来说,文件测试耗时会比块存储测试长很多。

例:文件系统测试:

在第一行中说明了测试使用的文件目录,fsd为自定义文件系统名称,anchor为测试文件目录,depth为测试时目录的深度,width为测试时每个文件夹的子文件夹个数,files为单文件夹中文件的个数,size为文件大小,以上例为例,测试时测试目录创建10个目录,在此10个目录中各再创建10个子目录,共110个目录,每个最底层目录中存放2000个文件,共20w个文件,每个文件大小为4MiB; 第二行中规定了文件工作负载,fwd为自定义文件工作负载名称,fsd设置工作负载中使用到的文件系统,operation为操作类型,可选设read或write,xfersize为数据传输数据大小,fileio为文件操作方式,可选设random和sequential,threads为测试使用线程数;

最后一行中设定了运行参数,rd为运行定义的名称,fwd为使用到的文件工作负载名称,fwdrate为测试时的速率elapsed为正式测试时长,interval为命令行打印输出的时间间隔,elapsed和interval的单位均为s,format为预处理文件目录的方式,no为不删除已有文件直接进行测试,yes为无论是否已有文件目录,均删除后重新写入,restart为若已有文件目录,则直接运行测试,若无则新写入文件目录。

4.3 测试

配置好配置文件,如测试文件为/test/test.conf

执行./vdbench -f /test/test.conf -o output/test –jn

-o参数为指定测试结果输出目录,-jn参数为进行测试数据校验。

去结果文件夹下查看结果文件totals.html

例如:

5 注意事项

测试环境

确保测试环境与生产环境相似,包括硬件配置、网络条件等,以获得具有代表性的测试结果。

避免在测试期间其他应用程序对存储系统的干扰,以确保测试结果的准确性。

数据安全

在进行测试时,特别是涉及写操作的测试,确保不会对生产数据造成影响。对测试设备进行备份,以防测试过程中出现问题导致数据丢失。

6 结果分析

6.1 结果文件说明

测试结束后,可在output文件夹或测试执行时指定的输出文件夹中查看测试结果,以下为output文件夹中各个文件包括的内容:

errorlog.html:文件中显示测试时出现的一些错误信息,包括io错误信息和数据无效信息等;

histogram.html:一种包含报告柱状图的响应时间的文件,此报告只在文件测试后有数据内容;

logfile.html:包含Java 代码写入控制台窗口的每行信息的副本,logfile.html 主要用于调试用途;

parmfile.html:包含测试运行配置参数信息;

summary.html:记录全部数据信息,显示每个报告间隔内总体性能情况及工作负载情况,以及除预测试时间外的所有间隔的加权平均值;

totals.html:记录全部数据计算之后的平均值,一般测试结果从该文件取值,除预测试时间外所有间隔的加权平均值。

6.2 参数说明

块设备输出参数说明:

关注项:

文件系统测试输出:

关注项:

6.3 结果分析

我们来看俩个块设备测试与文件系统测试的结果图,进而对结果进行分析说明:

块设备测试结果:

图中的测试输出中,第一个红框中,是当前测试项的 信息;中间红框中,是测试结果,最后一行是平均值;最下面的红框,提示测试结束,和测试结果的存放路径。我们可以与其他系统版本对比I/O速率来进行性能优劣的比较。

文件系统测试结果:

这是文件系统测试Vdbench实时打印的第一部分信息。其中最上面红框中,为当前测试项的相关信息;中间红框中,是准备测试文件的过程的实时性能;最下面红框中,是一些杂项统计信息。

这是文件系统测试输出结果的第二部分。其中,

第二个框中,为各性能统计项的测试结果,其中ReqstOps的值,近似为IOPS;

第三个红框中,是计算出的平均值、标准偏差和最大值;

第四个红框中,是一些杂项统计信息。

我们取其中ReqstOps的值,近似为IOPS,与其他系统版本进行对比,由此来判断文件系统的性能优劣。

Logo

更多推荐