大家好,又见面了,我是你们的朋友全栈君。
vdbench是一个I/O工作负载生成器,通常用于验证数据完整性和度量直接附加(或网络连接)存储性能。它可以运行在windows、linux环境,可用于测试文件系统或块设备基准性能。
解压缩jdk安装包至/opt目录
tar -zxvf jdk-8u251-linux-x64.tar.gz -C /opt/配置jdk环境变量
echo 'JAVA_HOME=/opt/jdk1.8.0_251' >> /root/.bashrc
echo 'PATH=$JAVA_HOME/bin:$PATH' >> /root/.bashrc
echo 'CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /root/.bashrc
source /root/.bashrc非必选项,如需要联机测试,则需要配置此项
示例使用三个客户端联机测试,使用客户端node241作为主节点
客户端主机名 | 客户端IP |
|---|---|
node241 | 66.66.66.241 |
node242 | 66.66.66.242 |
node243 | 66.66.66.243 |
将每个节点IP和主机名的映射关系写入到/etc/hosts配置文件内
echo '66.66.66.241 node241' >> /etc/hosts
echo '66.66.66.242 node242' >> /etc/hosts
echo '66.66.66.243 node243' >> /etc/hosts主节点生成公钥文件,并拷贝到其他从节点(配置主节点到从节点免秘钥登录)
ssh-keygen
ssh-copy-id node242
ssh-copy-id node243 解压缩vdbench安装包至/root/vdbench50406目录内,切换到vdbench解压缩目录执行对应参数文件即可
unzip vdbench50406.zip -d /root/vdbench504065570、5560访问)rsyslog,避免运行时出现其他日志文件打印信息
参数文件添加messagescan=no可以过滤掉多余的系统日志检查vdbench环境
./vdbench -t运行测试模型
注:-f后接测试参数文件名,-o后接导出测试结果路径
./vdbench -f {filename} -o {exportpath}建立rsh通信
注:此命令是用于windows系统多主机联机跑vdbench时使用,因为windows操作系统不支持ssh,因此,vdbench提供了rsh的通信方式。在目标主机上执行此工具后,vdbench将会启动一个java socket用于vdbench slave与master之间通信
./vdbench rshvdbench可用于文件系统及块设备基准性能测试,以下主要介绍文件系统及块存储的常用测试参数 vdbench所有测试参数都定义到一个参数文件内,在运行时按照顺序被读取执行相应操作,在参数文件定义时需要执行顺序进行定义
文件系统参数文件定义顺序为:HD、FSD、FWD、RD
非必选项,单机运行时不需要配置HD参数,一般只有在多主机联机测试时才需要配置
hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node241
hd=hd2,system=node242
hd=hd3,system=node243rsh、ssh或vdbench,默认值为rsh,多主机联机测试时,mater和slave主机间通信方式
当参数值为rsh时,需要配置master和slave主机rsh互信,考虑到rsh使用明文传输,安全级别不够,通常情况下不建议使用这种通信方式
当参数值为ssh时,需要配置master和slave主机ssh互信,通常Linux主机联机时使用此通信方式
当参数值为vdbench,需要在所有slave主机运行vdbench rsh启用vdbench本身的rsh守护进程,通常Window主机联机时使用此通信方式fsd=default,openflags=directio,depth=2,width=3,files=2,size=128k
fsd=fsd1,anchor=/mnt/client1
fsd=fsd2,anchor=/mnt/client2
fsd=fsd3,anchor=/mnt/client3fsd1、fsd2、fsd3…),可以指定default(将相同的参数作为所有fsd的默认值)o_direct或directio,以无缓冲缓存的方式进行读写操作/dir01;windows指定路径为E:\dir01;bottom或all,默认为bottom
–当参数值为bottom时,程序只在最后一层目录写入测试文件
–当参数值为all时,程序在每一层目录都写入测试文件yes或no,默认值为no,一般只有在多主机联机测试时指定
vdbench不允许不同的slave之间共享同一个目录结构下的所有文件,因为这样会带来很大的开销,但是它们允许共享同一个目录结构。加入设置了shared=yes,那么不同的slave可以平分一个目录下所有的文件来进行访问,相当于每个slave有各自等分的访问区域,因此不能测试多个客户的对同一个文件的读写
–当多主机联机测试时,写入的根目录anchor为同一个路径时,需要指定参数值为yeshd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node1
hd=hd2,system=node2
hd=hd3,system=node3
fsd=fsd1,anchor=/client/,depth=2,width=100,files=100,size=4k,shared=yes 计算公式如下:
最后一层生成文件夹个数=width^depth
测试文件个数=(width^depth)*files
fsd=fsd1,anchor=/dir1,depth=2,width=3,files=2,size=128k
以上述参数为例,生成目录结构及测试文件如下:
最后一层文件夹数=3^2=9 最后一层文件数=9*2=18
/dir1/
├── no_dismount.txt
├── vdb.1_1.dir
│ ├── vdb.2_1.dir
│ │ ├── vdb_f0001.file
│ │ └── vdb_f0002.file
│ ├── vdb.2_2.dir
│ │ ├── vdb_f0001.file
│ │ └── vdb_f0002.file
│ └── vdb.2_3.dir
│ ├── vdb_f0001.file
│ └── vdb_f0002.file
├── vdb.1_2.dir
│ ├── vdb.2_1.dir
│ │ ├── vdb_f0001.file
│ │ └── vdb_f0002.file
│ ├── vdb.2_2.dir
│ │ ├── vdb_f0001.file
│ │ └── vdb_f0002.file
│ └── vdb.2_3.dir
│ ├── vdb_f0001.file
│ └── vdb_f0002.file
├── vdb.1_3.dir
│ ├── vdb.2_1.dir
│ │ ├── vdb_f0001.file
│ │ └── vdb_f0002.file
│ ├── vdb.2_2.dir
│ │ ├── vdb_f0001.file
│ │ └── vdb_f0002.file
│ └── vdb.2_3.dir
│ ├── vdb_f0001.file
│ └── vdb_f0002.file
└── vdb_control.file
12 directories, 20 filesfwd=default,operation=read,xfersize=4k,fileio=sequential,fileselect=random,threads=2
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd2,host=hd2
fwd=fwd3,fsd=fsd3,host=hd3read或write,文件操作方式0~100,读操作占比百分比,一般混合读写时需要指定,当值为60时,则混合读写比为6:4可选值为random或sequential,标识文件 I/O 将执行的方式random或sequential,标识选择文件或目录的方式注:
1、默认情况下,预填数据工作负载定义为threads=8,xfersize=128k,即预填数据使用8线程,IO大小为128K
如需更改默认预填数据工作负载定义,则需要增加参数指定线程数和IO大小(fwd=format,threads=nn,xfersize=nn)
rd=rd1,fwd=(fwd1-fwd3),fwdrate=max,format=restart,elapsed=604800,interval=10no、yes、或restart,标识预处理目录和文件结构的方式30,测试运行持续时间(单位为秒)块设备参数文件定义顺序为:HD、SD、WD、RD
非必选项,单机运行时不需要配置HD参数,一般只有在多主机联机测试时才需要配置
hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node241
hd=hd2,system=node242
hd=hd3,system=node243rsh、ssh或vdbench,默认值为rsh,多主机联机测试时,mater和slave主机间通信方式
当参数值为rsh时,需要配置master和slave主机rsh互信,考虑到rsh使用明文传输,安全级别不够,通常情况下不建议使用这种通信方式
当参数值为ssh时,需要配置master和slave主机ssh互信,通常Linux主机联机时使用此通信方式
当参数值为vdbench,需要在所有slave主机运行vdbench rsh启用vdbench本身的rsh守护进程,通常Window主机联机时使用此通信方式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=sd6,hd=hd3,lun=/dev/sdb,openflags=o_direct,threads=6/dev/sdb;windows使用G盘,则指定路径为\\.\G:;o_direct或directio,以无缓冲缓存的方式进行读写操作wd=wd1,sd=sd*,seekpct=100,rdpct=100,xfersize=8k,skew=40
wd=wd2,sd=sd*,seekpct=100,rdpct=0,xfersize=8k,skew=10
wd=wd3,sd=sd*,seekpct=100,rdpct=100,xfersize=1024k,skew=40
wd=wd4,sd=sd*,seekpct=100,rdpct=0,xfersize=1024k,skew=100或100(也可使用sequential或random表示),默认值为100,随机寻道的百分比,设置为0时表示顺序,设置为100时表示随机。rd=rd1,wd=wd*,iorate=max,maxdata=400GB,warmup=30,elapse=604800,interval=5100、max,此工作负载的固定I/O速率
–当参数值为100时,以每秒100个I/Os的速度运行工作负载,当参数值设置为一个低于最大速率的值时,可以达到限制读写速度的效果
–当参数值为max时,以最大的I/O速率运行工作负载,一般测试读写最大性能时,该参数值均为maxinterval为5、elapsed为600时,测试性能为2~elapsed/interval(avg_2-120)时间间隔内的平均性能
–当interval为5、warmup为60、elapsed为600时,测试性能为1+(warmup/interval)~(warmup+elapsed)/interval(avg_13-132)时间间隔内的平均性能elapsed时间后测试结束;当同时指定elapsed和maxdata参数值时,以最快运行完的参数为准(即maxdata测试时间小于elapsed时,程序写完elapsed数据量后结束)
–当参数值为100以下时,表示读写数据量为总存储定义大小的倍数(如maxdata=2,2个存储定义(每个存储定义数据量为100G),则实际读写数据大小为400G)
–当参数值为100以上时,表示数据量为实际读写数据量(可以使用单位M、G、T等)30,测试运行持续时间(单位为秒)[root@node241 vdbench50406]# cat Single-RawDisk.html
sd=sd1,lun=/dev/sdb,openflag=o_direct
wd=wd1,sd=sd1,seekpct=0,rdpct=0,xfersize=1M
rd=rd1,wd=wd1,iorate=max,warmup=60,elapsed=600,interval=2
[root@node241 vdbench50406]#
[root@node241 vdbench50406]# ./vdbench -f Single-RawDisk.htmlE:\vdbench50406>more "Single FileSystem.txt"
fsd=fsd1,anchor=E:\Sigle-FileSystem,depth=2,width=3,files=10,size=200M
fwd=fwd1,fsd=fsd1,operation=write,xfersize=1M,fileio=sequential,fileselect=rando
m,threads=2
rd=rd1,fwd=fwd1,fwdrate=max,format=yes,elapsed=600,interval=5
E:\vdbench50406>
E:\vdbench50406>vdbench -f "Single FileSystem.txt"二、安装部署,配置多主机ssh互信
2、master主机运行测试参数文件即可
示例如下,三节点针对裸盘联机测试,1M顺序写,测试数据量为400G,预热时间30s,报告间隔5s[root@node241 vdbench50406]# cat Multi-RawDisk
hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node241
hd=hd2,system=node242
hd=hd3,system=node243
sd=sd1,hd=hd1,lun=/dev/sdb,openflag=o_direct
sd=sd2,hd=hd2,lun=/dev/sdb,openflag=o_direct
sd=sd3,hd=hd3,lun=/dev/sdb,openflag=o_direct
wd=wd1,sd=sd*,seekpct=0,rdpct=0,xfersize=1M
rd=rd1,wd=wd1,iorate=max,maxdata=100M,elapsed=64800,warmup=30,interval=5
[root@node241 vdbench50406]#
[root@node241 vdbench50406]# ./vdbench -f Multi-RawDiskE:\vdbench50406>vdbench rsh2、master主机运行测试参数文件即可 示例如下,三节点针对文件系统联机测试,1M顺序写,目录深度为2,每层目录数为3,每个目录文件数为10000,每个文件大小为200M,测试时间为600s,报告间隔1s
E:\vdbench50406>more "Multi FileSystem.txt"
hd=default,vdbench=E:\vdbench50406,user=Micah,shell=vdbench
hd=hd1,system=66.66.66.250
hd=hd2,system=66.66.66.252
fsd=fsd1,anchor=Z:\Sigle-FileSystem-01,depth=2,width=3,files=10000,size=200M
fsd=fsd2,anchor=Z:\Sigle-FileSystem-02,depth=2,width=3,files=10000,size=200M
fwd=default,operation=write,xfersize=1M,fileio=sequential,fileselect=random,threads=16
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd2,host=hd2
rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=600,interval=1
E:\vdbench50406>
E:\vdbench50406>vdbench -f "Multi FileSystem.txt"当vdbench运行完负载测试后,会在安装目录下生成
output文件夹,里边包含测试结果文件
parseflat参数解析结果 ./vdbench parseflat -i <flatfile.html> -o output.csv [-c col1 col2 ..] [-a] [-f col1 value1 col2 value2..]
-i input flatfile, e.g. output/flatfile.html
-o output CSV file name (default stdout)
-c which column to write to CSV. Columns are written in the order specified
-f filters: 'if (colX == valueX) ... ...' (Alphabetic compare)
-a include only the 'avg' data. Default: include only non-avg data.
-i是表示待分析的文件,这里写vdbench输出目录里的flatfile.html这个文件,写其它文件不能正常解析;
-o是解析后的输出文件,可以手动指定存放目录。文件格式为CSV,此文件的列由-c参数指定,列的顺序为-c参数的顺序
-a是表示csv文件中只记录测试过程中的avg值
示例如下:
.\vdbench.bat parseflat -i D:\vdbench50406\output\flatfile.html -c run rate MB/sec seekpct rdpct bytes/io threads resp -o d:\output.csv -a
vdbench parseflat arguments:
Argument 0: -i
Argument 1: D:\vdbench50406\output\flatfile.html
Argument 2: -c
Argument 3: run
Argument 4: rate
Argument 5: MB/sec
Argument 6: seekpct
Argument 7: rdpct
Argument 8: bytes/io
Argument 9: threads
Argument 10: resp
Argument 11: -o
Argument 12: D:\output.csv
Argument 13: -a
14:12:49.265 ParseFlat completed successfully.测试参数如下:
hd=default,vdbench=E:\vdbench50406,user=Micah,shell=vdbench
hd=hd1,system=66.66.66.250
hd=hd2,system=66.66.66.252
fsd=fsd1,anchor=Z:\Sigle-FileSystem-01,depth=2,width=3,files=10,size=4M
fsd=fsd2,anchor=Z:\Sigle-FileSystem-02,depth=2,width=3,files=10,size=4M
fwd=default,operation=write,xfersize=1M,fileio=sequential,fileselect=random,threads=2
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd2,host=hd2
rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=600,interval=5
测试结果如下:
18:47:03.001 Starting RD=format_for_rd1
六月 04, 2020 .Interval. .ReqstdOps... ...cpu%... read ....read..... ....write.... ..mb/sec... mb/sec .xfer.. ...mkdir.... ...rmdir.... ...create... ....open.... ...close.... ...delete...
rate resp total sys pct rate resp rate resp read write total size rate resp rate resp rate resp rate resp rate resp rate resp
18:48:40.218 avg_2-20 57.6 6.244 13.4 2.99 0.0 0.0 0.000 57.6 6.244 0.00 7.20 7.20 131072 0.2 104.49 0.2 41.526 1.8 7527.0 1.8 192.01 1.8 7134.3 1.8 21.984
18:48:42.000 Starting RD=rd1; elapsed=600; fwdrate=max. For loops: None
18:58:42.205 avg_2-120 6.2 1.063 13.0 2.80 0.0 0.0 0.000 6.2 1.063 0.00 6.24 6.24 1048576 0.0 0.000 0.0 0.000 0.0 0.000 1.6 47.864 1.6 2401.1 0.0 0.000 totals.html一般包括两个部分,第一部分为文件存储目录结构及数据填充的平均性能值,第二部分为执行测试过程中除第一个时间间隔外所有时间间隔平均性能值,主要看第二部分的内容
rd运行定义参数fwdrate控制
当fwdrate为max时,以最大I/O速率运行工作负载
当fwdrate为低于最大I/0速率的一个数值时,可以限制读写速度,以固定I/O速率运行工作负载msmsmsB
测试参数如下:
messagescan=no
hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node241
hd=hd2,system=node242
hd=hd3,system=node243
sd=sd1,hd=hd1,lun=/dev/sdb,openflag=o_direct
sd=sd2,hd=hd2,lun=/dev/sdb,openflag=o_direct
sd=sd3,hd=hd3,lun=/dev/sdb,openflag=o_direct
wd=wd1,sd=sd*,seekpct=0,rdpct=0,xfersize=1M
rd=rd1,wd=wd1,iorate=max,elapsed=600,warmup=30,interval=5
测试结果如下:
<a name="_1143839598"></a><i><b>19:02:15.001 Starting RD=rd1; I/O rate: Uncontrolled MAX; elapsed=600 warmup=30; For loops: None</b></i>
Jun 04, 2020 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
19:12:46.068 avg_7-126 82.74 82.74 1048576 0.00 289.158 0.000 289.158 2092.803 155.103 23.9 16.3 14.2rd运行定义参数iorate控制
当iorate为max时,以最大I/O速率运行工作负载
当iorate为低于最大I/0速率的一个数值时,可以限制读写速度,以固定I/O速率运行工作负载
B,可以通过wd工作负载定义参数xfersize控制
wd工作负载定义参数rdpct控制
当rdpct为0时,表示测试模型为写
当rdpct为100时,表示测试模型为读
ms
ms
ms
ms
ms
grep 'processor' /proc/cpuinfo | sort -u | wc -lsync;echo 3 > /proc/sys/vm/drophd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node21
hd=hd2,system=node22
hd=hd3,system=node23
hd=hd4,system=node24
hd=hd5,system=node25
hd=hd6,system=node26
fsd=fsd1,anchor=/client/test01,depth=2,width=100,files=100,size=4M,shared=yes
fwd=format,threads=24,xfersize=1m
fwd=default,xfersize=1m,fileio=sequential,fileselect=sequential,operation=write,threads=24
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd1,host=hd2
fwd=fwd3,fsd=fsd1,host=hd3
fwd=fwd4,fsd=fsd1,host=hd4
fwd=fwd5,fsd=fsd1,host=hd5
fwd=fwd6,fsd=fsd1,host=hd6
rd=rd1,fwd=fwd*,fwdrate=max,format=restart,elapsed=600,interval=1hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node21
hd=hd2,system=node22
hd=hd3,system=node23
hd=hd4,system=node24
hd=hd5,system=node25
hd=hd6,system=node26
fsd=fsd1,anchor=/client/test02,depth=2,width=100,files=100,size=4M,shared=yes
fwd=format,threads=24,xfersize=1m
fwd=default,xfersize=1m,fileio=sequential,fileselect=sequential,operation=read,threads=24
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd1,host=hd2
fwd=fwd3,fsd=fsd1,host=hd3
fwd=fwd4,fsd=fsd1,host=hd4
fwd=fwd5,fsd=fsd1,host=hd5
fwd=fwd6,fsd=fsd1,host=hd6
rd=rd1,fwd=fwd*,fwdrate=max,format=restart,elapsed=600,interval=1hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node21
hd=hd2,system=node22
hd=hd3,system=node23
hd=hd4,system=node24
hd=hd5,system=node25
hd=hd6,system=node26
fsd=fsd1,anchor=/client/test03,depth=2,width=100,files=100,size=8M,shared=yes
fwd=format,threads=24,xfersize=1m
fwd=default,xfersize=1m,fileio=random,fileselect=random,rdpct=60,threads=24
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd1,host=hd2
fwd=fwd3,fsd=fsd1,host=hd3
fwd=fwd4,fsd=fsd1,host=hd4
fwd=fwd5,fsd=fsd1,host=hd5
fwd=fwd6,fsd=fsd1,host=hd6
rd=rd1,fwd=fwd*,fwdrate=max,format=restart,elapsed=600,interval=1使用vdbench测试过程中,测试中断,报错信息如下:
19:37:41.155 19:37:44.813 error: 20
19:37:41.155 19:37:44.813 file_open(), open /trash/64M/vdb.1_47.dir/vdb.2_24.dir/vdb_f0002.file failed
19:37:41.155 19:37:44.814 error: 20
19:37:41.155 19:37:44.814 file_open(), open /trash/64M/vdb.1_47.dir/vdb.2_24.dir/vdb_f0003.file failed
19:37:41.156 19:37:44.814 Maximum native memory allocation: 1,048,576; Current allocation: 1,048,576
19:37:41.156 19:37:44.814 Maximum native memory allocation: 1,048,576; Current allocation: 1,048,576
19:37:41.156 19:37:44.814 error: 20
19:37:41.156 19:37:44.814
19:37:41.156 19:37:44.814 open failed for /trash/64M/vdb.1_47.dir/vdb.2_24.dir/vdb_f0002.file
19:37:41.156 19:37:44.814
19:37:41.158 java.lang.RuntimeException: open failed for /trash/64M/vdb.1_47.dir/vdb.2_24.dir/vdb_f0002.file默认vdbench限制了java内存使用量,测试期间java运行内存不足才导致测试异常中断。
增大vdbench运行脚本的java内存参数
[root@node40 ~]# cat vdbench50406/vdbench
if [ "$1" == "SlaveJvm" ]; then
$java -client -Xmx10240m -Xms128m -cp $cp Vdb.SlaveJvm $*
exit $?
else
$java -client -Xmx10240m -Xms64m -cp $cp Vdb.Vdbmain $*
exit $?
fi注:Xmx表示jvm最大内存分配池,Xms表示初始内存分配池 进程初始以Xms内存大小启动,当空余堆内存小于40%时,jvm会增大内存至Xmx;当空余堆内存大于70%时,jvm会减少内存至Xms;为避免每次GC后JVM重新分配内存,可以将Xmx和Xms设置为相同的参数值
arm服务器运行vdbench,出现共享库不匹配问题linux/aarch64.so does not exist,提示需要手动编译
[root@node163 vdbench50407]# ./vdbench -t
14:07:47.486 Created output directory '/root/vdbench50407/output'
14:07:47.737 input argument scanned: '-f/tmp/parmfile'
14:07:47.866 Starting slave: /root/vdbench50407/vdbench SlaveJvm -m localhost -n localhost-10-220209-14.07.47.444 -l localhost-0 -p 5570
14:07:47.890
14:07:47.890 File /root/vdbench50407/linux/aarch64.so does not exist.
14:07:47.891 This may be an OS that a shared library currently
14:07:47.891 is not available for. You may have to do your own compile.
14:07:47.891 t: java.lang.UnsatisfiedLinkError: Can't load library: /root/vdbench50407/linux/aarch64.so
14:07:47.892
14:07:47.892 Loading of shared library /root/vdbench50407/linux/aarch64.so failed.
14:07:47.892 There may be issues related to a cpu type not being
14:07:47.892 acceptable to Vdbench, e.g. MAC PPC vs. X86
14:07:47.893 Contact me at the Oracle Vdbench Forum for support.
14:07:47.893
14:07:48.395
14:07:48.396 Failure loading shared library
14:07:48.396
java.lang.RuntimeException: Failure loading shared library
at Vdb.common.failure(common.java:350)
at Vdb.common.get_shared_lib(common.java:1103)
at Vdb.Native.<clinit>(Native.java:31)
at Vdb.common.signal_caller(common.java:737)
at Vdb.ConnectSlaves.connectToSlaves(ConnectSlaves.java:98)
at Vdb.Vdbmain.masterRun(Vdbmain.java:814)
at Vdb.Vdbmain.main(Vdbmain.java:628)vdbench根目录动态库文件linux/linux64.so为基于x86编译的,需要基于aarch64重新编译linux/linux64.so动态库文件
[root@node163 vdbench50407]# ls linux/
config.sh linux32.so linux64.so sparc64.so
[root@node163 vdbench50407]# file linux/linux64.so
linux/linux64.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=34a31f32956f21153c372a95e73c02e84ddd29f8, not strippedmkdir vdbench50407-src
unzip vdbench50407.src.zip -d vdbench50407-src/
cd vdbench50407-src/src/
mkdir linux/usr/lib/jvm/路径下
– 删除全文-m32和-m64字符cd Jni/
sed -i 's#vdb=$mine/vdbench504#vdb=/root/vdbench50407-src/src#g' make.linux
sed -i 's#java=/net/sbm-240a.us.oracle.com/export/swat/swat_java/linux/jdk1.5.0_22/#java=/usr/lib/jvm/java-1.8.0-openjdk/#g' make.linux
sed -i 's/-m32//g' make.linux
sed -i 's/-m64//g' make.linux ./make.linux
执行成功后会在../linux目录下生成linux32.so和linux64.so文件,将linux64.so文件拷贝到vdbench测试工具根目录linux/aarch64.so下,重新运行vdbench测试[root@node163 Jni]# ./make.linux
target directory: /root/vdbench50407-src/src
Compiling 32 bit
Linking 32 bit
Compiling 64 bit
Linking 64 bit
[root@node163 Jni]# ll ../linux/
total 160
-rwxrwxrwx 1 root root 78656 Feb 9 14:54 linux32.so
-rwxrwxrwx 1 root root 78656 Feb 9 14:54 linux64.so
[root@node163 Jni]# cp ../linux/linux64.so /root/vdbench50407/linux/aarch64.sowindows系统下使用vdbench测试裸盘性能,脚本运行失败,提示Raw device 'sd=sd1,lun=\\.\G:' does not exist, or no permissions.
D:\vdbench50406>more raw-test.txt
sd=sd1,lun=\\.\G:
wd=wd1,sd=sd1,seekpct=0,rdpct=0,xfersize=1M
rd=rd1,wd=wd1,iorate=max,maxdata=100M,elapsed=64800,warmup=30,interval=5
D:\vdbench50406>vdbench.bat -f raw-test.txt
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'.
17:35:24.328 input argument scanned: '-fraw-test.txt'
17:35:24.375 Starting slave: D:\vdbench50406\vdbench SlaveJvm -m localhost -n localhost-10-220119-17.35.24.293 -l localhost-0 -p 5570
17:35:24.834 All slaves are now connected
17:35:25.263 Raw device 'sd=sd1,lun=\\.\G:' does not exist, or no permissions.
17:35:25.764
17:35:25.764 Please check above failures
17:35:25.765
java.lang.RuntimeException: Please check above failures
at Vdb.common.failure(common.java:335)
at Vdb.InfoFromHost.matchDataWithSds(InfoFromHost.java:674)
at Vdb.InfoFromHost.receiveInfoFromHost(InfoFromHost.java:485)
at Vdb.SlaveOnMaster.processSlave(SlaveOnMaster.java:151)
at Vdb.SlaveOnMaster.run(SlaveOnMaster.java:42)1、检查裸盘路径是否正确,如测试G盘裸盘性能,则测试参数指定为lun=\\.\G:
2、检查是否有执行权限,cmd窗口需要以管理员身份运行
Linux下运行vdbench失败,提示Minimum required Java version for Vdbench is 1.7.0; Vdbench terminated.
root@node65:/home/vdbench50406# ./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'.
*
*
*
* Minimum required Java version for Vdbench is 1.7.0;
* You are currently running 11.0.9.1
* Vdbench terminated.
*
*
*
CTRL-C requested. vdbench terminating查看官方相关说明,vdbench50407以前的版本,存在java检测功能(vdbench50407版本已移除),在不变更现有环境java版本的情况下,可升级版本至vdbench50407版本解决
// Removed as per 50407 because of java 1.10.x
//checkJavaVersion();
//....
private static void checkJavaVersion()
{
if (common.get_debug(common.USE_ANY_JAVA))
return;
if (!JVMCheck.isJREValid(System.getProperty("java.version"), 1, 7, 0))
{
System.out.print("*\n*\n*\n");
System.out.println("* Minimum required Java version for Vdbench is 1.7.0; \n" +
"* You are currently running " + System.getProperty("java.version") +
"\n* Vdbench terminated.");
System.out.println("*\n*\n*\n");
System.exit(-99);
}
} 版本发布说明:# Vdbench 50407 is now available
50407rc29
* The check to make sure you are running java 1.7 or higher has been removed.版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/213671.html原文链接:https://javaforall.cn