vdbench FAQ

vdbench FAQ

Oracle维护的一个磁盘IO性能工具,用于产生磁盘IO 负载测试磁盘性能和数据完整性。

目前官方不再开发该工具。

官方维护三个版本:

  • 5.04.07
  • 5.04.06
  • 5.04.05

主流使用的5.04.06和5.04.07

使用前准备

下载解压即可使用。

一般不需要编译,如果运行环境存在,可以直接运行。

二进制包下载地址:https://www.oracle.com/downloads/server-storage/vdbench-downloads.html

源码下载地址: https://www.oracle.com/downloads/server-storage/vdbench-source-downloads.html

测试运行环境:

#给脚本赋予运行权限
]# chmod +x vdbench
#执行测试
]# ./vdbench -t

常见问题

/bin/csh: bad interpreter: No such file or directory

问题
vdbench50405]# ./vdbench -t
-bash: ./vdbench: /bin/csh: bad interpreter: No such file or directory
原因

vdbench 5.04.05的vdbench脚本是c shell script文件。

解决办法

方法1: 安装csh

# Debian衍生版
]# sudo apt install csh
# Rhel衍生版
]# sudo yum -y install tcsh

方法2: 使用版本 5.04.06或 5.04.07

5.04.06和 5.04.07使用bash script。

vdbench50406]# file vdbench
vdbench: Bourne-Again shell script, ASCII text executable

vdbench50407]# file vdbench
vdbench: Bourne-Again shell script, ASCII text executable

open failed for xxx

问题

使用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设置为相同的参数值

Minimum required Java version for Vdbench is 1.7.0(或1.5.0)

问题

vdbench 5.04.05和vdbench 5.04.06出现java版本检测不合法;

5.04.05:

vdbench50405]# ./vdbench -t


Vdbench distribution: vdbench504
For documentation, see 'vdbench.pdf'.

*
*
*
* Minimum required Java version for Vdbench is 1.5.0;
* You are currently running 11.0.15
* Vdbench terminated.
*
*
*

CTRL-C requested. vdbench terminating

5.04.06:

vdbench50406]# ./vdbench -t


Vdbench distribution: vdbench504
For documentation, see 'vdbench.pdf'.

*
*
*
* Minimum required Java version for Vdbench is 1.7.0;
* You are currently running 11.0.15
* Vdbench terminated.
*
*
*

CTRL-C requested. vdbench terminating

而vdbench 5.04.07可以正常使用。

查看vdbench 5.04.07源码,其已经移除java版本检测checkJavaVersion();

移除原因为:从java 1.10.x开始,java命名规则的改变;详细请参考版本发布说明。

  // 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" +bash
                       "* You are currently running " + System.getProperty("java.version") +
                       "\n* Vdbench terminated.");
    System.out.println("*\n*\n*\n");

    System.exit(-99);
  }
}

版本发布说明oracle vdbench 50407rc29

50407rc29

The check to make sure you are running java 1.7 or higher has been removed.
原因

vdbench 5.04.05和vdbench 5.04.06中有java版本检测

解决办法

方法1:使用vdbench 5.04.07

方法2:在vdbench 5.04.05和vdbench 5.04.06移除于java版本检测,再打包vdbench.jar

以vdbench 5.04.06为例,

下载vdbench 5.04.06源码包,解压到linux系统

]# unzip vdbench50406.src.zip
]# ll
drwxr-xr-x 8 root root     87 Apr 27  2020 src
-rw-r--r-- 1 root root 848041 Jul 20 09:20 vdbench50406.src.zip
]# cd src/
src]# ll
drwxr-xr-x 2 root root 4096 Apr 27  2020 Jni
drwxr-xr-x 2 root root 4096 Apr 27  2020 User
drwxr-xr-x 2 root root 4096 Apr 27  2020 Utils
drwxr-xr-x 2 root root 8192 Apr 27  2020 Vdb
drwxr-xr-x 2 root root 4096 Apr 27  2020 VdbComp

src]# cd Vdb/

// 找到第245行的checkJavaVersion函数,并注释掉
Vdb]# vim Vdbmain.java
...
// Removed checkJavaVersion  because of java 1.10.x
// checkJavaVersion();
...
Vdb]# cd ..

//将所有的java文件编译为class文件
src]#javac */*.java

//删除源码包的java文件
src]# rm -rf */*.java

// 删除Jni目录
src]#rm -rf Jni

//打包为jar文件
src]# jar cvfM vdbench.jar  *

//查看生成的jar文件
src]# ll vdbench.jar 
-rw-r--r-- 1 root root 961748 Jul 20 09:47 vdbench.jar

将生成vdbench.jar替换vdbench 5.04.06二进制包中的vdbench.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值