人大金仓数据库KingbaseES vdbench介绍

290 阅读6分钟

金仓数据库KingbaseES vdbench介绍

关键字:

KingbaseES、vdbench、人大金仓

什么是vdbench?

Vdbench是一个I/O工作负载生成器,常用于验证数据完整性和度量直接附加(或者网络连接)存储性能,可以运行在Linux和Windows环境中,可用于测试文件系统或者块设备基准性能。

常用操作命令

  • 检查vdbench环境: ./vdbench -t
  • 运行测试模型: ./vdbench –f {filename} –o {exportpath},注:-f后面接测试参数文件名,-o后面接导出测试结果路径。

参数说明

Vdbench所有测试参数都定义在一个参数文件内,在运行时按照顺序被读取执行相应的操作,在参数定义是需要执行顺序进行定义。接下来主要介绍文件系统及块存储的常用测试参数。

  1. 文件系统

文件系统参数文件定义顺序为:HD、FSD、FWD、RD。

  1. 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。

  1. 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:每个测试文件大小。

  1. 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。

  1. 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:结果输出打印时间间隔(单位:秒)。

  1. 块设备

块设备参数文件定义顺序为:HD、SD、WD、RD

  1. HD(Host Define)

同上:文件系统的HD。

  1. 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请求数量。

  1. 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)

  1. 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:报告时间间隔(单位:秒)。