金仓数据库KingbaseES vdbench介绍
关键字:
KingbaseES、vdbench、人大金仓
什么是vdbench?
Vdbench是一个I/O工作负载生成器,常用于验证数据完整性和度量直接附加(或者网络连接)存储性能,可以运行在Linux和Windows环境中,可用于测试文件系统或者块设备基准性能。
常用操作命令
- 检查vdbench环境: ./vdbench -t
- 运行测试模型: ./vdbench –f {filename} –o {exportpath},注:-f后面接测试参数文件名,-o后面接导出测试结果路径。
参数说明
Vdbench所有测试参数都定义在一个参数文件内,在运行时按照顺序被读取执行相应的操作,在参数定义是需要执行顺序进行定义。接下来主要介绍文件系统及块存储的常用测试参数。
- 文件系统
文件系统参数文件定义顺序为:HD、FSD、FWD、RD。
- HD(Host Define)
非必选项,单机运行时不需要配置HD参数,一般只有在多主机联机测试时才需要配置。
hd=default, vdbench=/root/vdbench50406, user=root, shell=ssh
hd=hd1, system=node1
hd= hd2, system=node2
hd:标识主机定义的名称,多主机运行时,可以使用hd1、hd2…区分。
system:主机IP地址或者主机名。
vdbench:vdbench执行文件存放路径,当多主机存放路径不同时,可在hd定义时单独指定。
user:slave和master通信使用用户。
shell:可选值为rsh、ssh或者vdbench。
- FSD(File System Define)
fsd=default, openflags=directio, depth=2, width=3, files=2, size=128k
fsd=fsd1, anchor=/mnt/client1
fsd=fsd2, anchor=/mnt/client2
fsd:标识文件系统定义的名称,多文件系统时(fsd1,fsd2…) ,可以指定default。
openflags:通过设置为o_direct或者directio,以无缓冲缓存的方式进行读写操作。
anchor:文件写入目录。
depth:创建目录层级数(即,目录深度)。
width:每层文件夹的子文件夹数。
file:测试文件个数(vdbench测试过程中会生成多层级目录结构,实际只有最后一层目录会生成测试文件)。
size:每个测试文件大小。
- FWD(FileSystem Workload Define)
fwd=default, operation=read, xfersize=4k, fileio=sequential, fileselect=random, threads=2
fwd=fwd1, fsd=fsd1, host=hd1
fwd=fwd2, fsd=fsd2, host=hd2
fwd:标识文件系统工作负载定义的名称,多文件系统工作负载定义时,可以使用fwd1、fwd2…区分。
fsd:标识此工作负载使用文件存储定义的名称。
host:标识此工作负载使用主机。
operation:文件操作方式,可选值为read和write。
rdpct:读操作占比百分比,一般混合读写时需要指定,当值为60时,则混合读写比为6:4,可选值为0-100。
fileio:标识文件I/O将执行的方式,可选值为random或者sequential。
fileselect:标识选择文件或目录的方式,可选值为random或sequential。
xfersizes:数据传输(读取和写入操作)处理的数据大小(单次IO大小),默认为128k。
threads:此工作负载的并发线程数量,默认为8。
- RD(Run Define)
rd=rd1, fwd=(fwd1-fwd3), fwdrate=max, format=restart, elapsed=604800, interval=10
rd:标识文件系统运行定义的名称。
fwd:标识文件系统工作负载定义的名称。
fwdrate:每秒执行的文件系统操作数量。设置为max,表示不做任何限制,按照最大强度自适应。
format:可选值为no、yes或restart,标识预处理目录和文件结构的方式。no,默认参数值,不执行format预处理操作,如测试目录不存在文件时,vdbench会由于无可用文件读写而异常退出;yes,表示删除测试目录已有文件结构,并重新创建新的文件结构;restart,表示只创建未生成的目录或文件,并且最大未达到实际大小的文件。
elapsed:测试运行持续时间(单位:秒),默认值为30。
interval:结果输出打印时间间隔(单位:秒)。
- 块设备
块设备参数文件定义顺序为:HD、SD、WD、RD
- HD(Host Define)
同上:文件系统的HD。
- SD(Storage Define)
sd=sd1, hd=hd1, lun=/dev/sdb, openflags=o_direct, threads=6
sd=sd3, hd=hd2, lun=/dev/sdb, openflags=o_direct, threads=6
sd:标识存储定义的名称。
hd:标识主机定义的名称。
lun:写入块设备,Linux使用sdb盘,则指定路径为/dev/sdb。
openflags:通过设置为o_direct或者directio,以无缓冲缓存的方式进行读写操作。
threads:对SD的最大并发I/O请求数量。
- WD(Workload Define)
wd=wd1, sd=sd*, seekpct=100, rdpct=100, xfersize=8k,skew=40
wd=wd2, sd=sd*, seekpct=100, rdpct=0, xfersize=8k,skew=60
wd:标识工作负载定义的名称。
sd:标识存储定义的名称。
seekpct:可选值为0或者100(sequential或者random),默认值为100,随机寻道的百分比,设置为0时表示顺序,设置为100时表示随机。
rdpct:读取请求占总请求总数的百分比,设置为0时表示写,设置为100时表示读。
xfersize:要传输的数据大小。默认设置为4k。
skew:非必选项,一般在多个工作负载时需要指定,表示该工作负载占总工作量百分比。(skew总和为100)
- RD(Run Define)
rd=rd1, wd=wd1*, iorate=max, maxdata=400GB, warmup=30, elapsed=604800, interval=5
rd:标识运行定义的名称。
wd:标识工作负载定义的名称。
iorate:此工作负载的固定I/O速率,常用值为100、max。当为100时,以每秒100个I/Os的速度运行工作负载,当参数值设置为一个低于最大速率的值时,可以达到限制读写速度的效果;当为max时,以最大的I/O速率运行工作负载,一般测试读写最大性能时,该参数值均为max。
warmup:预热时间(单位:秒),默认情况下vdbench会将第一个时间间隔输出数据排除在外,程序在预热时间内的测试不纳入最终测试结果中(即:预热结束后,才开始正式测试)。
maxdata:读写数据大小。
elapsed:测试运行持续时间(单位:秒),默认值为30。
interval:报告时间间隔(单位:秒)。