zoukankan      html  css  js  c++  java
  • benchmark在postgresql上的安装及使用

     BenchmarkSQL是一款经典的开源数据库测试工具,内嵌了TPCC测试脚本,可以对EnterpriseDB、PostgreSQL、MySQL、Oracle以及SQL Server等数据库直接进行测试。

    二、测试前提
    1. 安装JDK。因为BenchmarkSQL本身是使用Java语言编写的,所以如果在Linux系统下还没有安装JDK的话,我们首先需要对其进行安装;
    2. 安装PostgreSQL数据库系统。俗话说巧妇难为无米之炊,测试之前肯定需要有测试对象,本文是测试PG系统,故需安装有PG;
    3. 安装BenchmarkSQL
    可到http://sourceforge.net中搜索BenchmarkSQL即可下到,windows,linux版均有。我下载的是linux版的软件包BenchmarkSQL-2.3.3.zip,unzip解压后可以在README文件中看到该软件的使用说明,下面用中文具体介绍一下它的使用方法。

    三、测试步骤
    1. 启动待测试的数据库系统,这里即指启动PostgreSQL

    2. 在BenchmarkSQL-2.3.3/run目录下找到postgres.properties配置文件,修改该文件如下:
    driver=org.postgresql.Driver
    conn=jdbc:postgresql://localhost:5432/test        #链接数据库地址
    user=postgres      #链接数据库用户名
    password=password    #密码
    如果想测试其他数据库系统,则修改其他相应的配置文件即可,如oracle.properties等等。

    3. 创建TPC-C基础表(即上篇博文中介绍的TPC-C模拟场景中9张表)
    命令: runSQL.sh postgres.properties sqlTableCreates

    4. 向数据库中导入指定大小的数据(参考资料2中此步有个小问题,多写一个等号)
    命令:loadData.sh postgres.properties numWarehouses 10
    numWarehouse指的是仓库数(具体含义见上篇博文),默认为1,导入9张表的数据大小大概70多M,
    当 numWarehouse为10时,数据大小可以近似当作1GB数据。

    5. 为基础表创建必要的索引
    命令: runSQL.sh postgres.properties sqlIndexCreates

    6. 运行runBenchmark.sh借助GUI程序测试数据库
    命令:runBenchmark.sh postgres.properties
    注意:不要忘记设置图形界面的仓库数时要与第4步中设置的数量相符;此外,测试的结果报告除了显示在图形界面有显示以外,还在run/reports目录下有备份,随时可以查阅。

    四、BenchmarkSQL界面说明
    Control-Database:配置所要链接的数据库,默认会读取之前我们修改的配置文件,故此处不用动
    使用BenchmarkSQL测试PostgreSQL

     Control-Terminals:配置终端数,仓库数,是否显示Debug信息,指定测试时间以及每终端事务等(每终端事务执行方式目前我也没理解,望交流)
    使用BenchmarkSQL测试PostgreSQL


     Control-Weights:配置TPC-C测试中五中事务的比重(界面中只要配置4种),一般按默认比例测试即可
    使用BenchmarkSQL测试PostgreSQL


     Control-Controls:控制器设置,点击Create Terminals创建一个终端;点击Start Transaction开始基准测试,点击Stop Transaction停止基准测试
    使用BenchmarkSQL测试PostgreSQL

     Error:错误信息显示
    使用BenchmarkSQL测试PostgreSQL

     Terminals:各个终端日志查看
    使用BenchmarkSQL测试PostgreSQL

     注意:
    1. 测试完后在界面下方会显示简要的测试结果,包括平均tpmC值(每分钟执行的事务数),当前tpmC值,内存使用情况等等;出结果以后尽量记录下来,以为之后如果乱点界面按钮的话,测试结果将会被重写(感觉是一个bug);
    2.运行过程中如果想要修改终端数等参数,最好关闭GUI界面,重新运行runBenchmark.bat
     
    首先,在Linux下安装JDK。因为BenchmarkSQL本身是使用Java语言编写的,所以如果在Linux系统下还没有安装JDK的话,我们首先需要对其进行安装。
    1)下载Linux Platform JDK(如jdk-6u20-linux-i586.bin);
    2)键入命令./jdk-6u20-linux-i586.bin运行安装程序,这时会有一段Sun的协议,敲几次Enter键,当询问是否同意的时候敲Yes就可以了,之后程序会自行安装JDK并创建一个文件夹jdk1.6.0-20;
    3)将安装后的文件夹移动到一个指定的地方,如mv jdk1.6.0-20 /usr/local,当然这一步不是必须的;
    4)设置环境变量。环境变量的设置方法有多种如用export直接在shell下设置、修改文件.bashrc设置以及修改/etc/profile设置,我们这里直接使用最后一种方法,虽然第二种方法比较受推崇。我们在profile文件末尾直接添加如下内容:
    JAVA_HOME=/usr/local/jdk1.6.0-20
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export JAVA_HOME
    export PATH
    export CLASSPATH
           然后,在Linux下安装Eclipse。因为BenchmarkSQL就是Java Project,在使用时直接加载到Eclipse中是最简单的运行的方式,所以我们需要安装Linux版本的Eclipse。
    1)下载Eclipse for Linux(如eclipse-java-galileo-SR2-Linux-gtk.tar.gz);
    2)解压得到eclipse目录。
    3)为了让每一个账号都可以使用Eclipse,我们需要写一个脚本eclipse.sh,其内容如下:
    Eclipse安装目录/eclipse -vm JDK安装目录/bin/java -data ~/workspace
    这里-vm参数用于指定使用哪一个jvm来执行Eclipse,-data参数用于指定Eclipse要将项目存储在哪一个目录下,在此为用户根目录下的workspace目录。
    4)将eclipse.sh加上权限755,以便可以执行。
    chmod 755 eclipse.sh
    5)启动Eclipse。
    ./eclipse.sh
           最后,我们使用BenchmarkSQL对PostgreSQL进行测试(这里默认PostgreSQL已经安装,安装方法可参考本人之见的博客)。
    1)下载BenchmarkSQL-2.3.2;
    2)在Eclipse中创建一个Java Project并选择从已有工程创建,如下图所示;
    Linux下使用BenchmarkSQL测试PostgreSQL 

    3)修改postgres.properties文件,即设置正确的数据库名和密码,如下图所示;
    Linux下使用BenchmarkSQL测试PostgreSQL
    4)运行BenchmarkSQL进行测试。我们首先进入到BenchmarkSQL-2.3.2/run的目录下,然后运行如下命令:
    ./runSQL.sh postgres.properties sqlTableCreates
    此命令用于创建我们进行TPCC测试所需的数据库表
    ./loadData.sh postgres.properties numWarehouses=10
    此命令用于加载我们进行TPCC测试所需的数据
    ./runSQL.sh postgres.properties sqlIndexCreates
    此命令用于创建我们进行TPCC测试所需的索引
    ./runBenchmark.sh postgres.properties
    开始TPCC测试,这时会跳出一个对话框,用户可以根据自己的测试需要设定相关的warehouse数目和terminal数目,然后进行测试。

    参考资料:
    1.http://blog.sina.com.cn/s/blog_4485748101019wsh.html
    2.http://blog.sina.com.cn/s/blog_48c95a190100j35g.html
    3.http://www.docin.com/p-242425868.html
     
  • 相关阅读:
    我要好offer之 二叉树大总结
    我要好offer之 字符串相关大总结
    楼层扔鸡蛋问题[转]
    Linux System Programming 学习笔记(十一) 时间
    Linux System Programming 学习笔记(十) 信号
    Linux System Programming 学习笔记(九) 内存管理
    Linux System Programming 学习笔记(八) 文件和目录管理
    Linux System Programming 学习笔记(七) 线程
    Linux System Programming 学习笔记(六) 进程调度
    APUE 学习笔记(十一) 网络IPC:套接字
  • 原文地址:https://www.cnblogs.com/klb561/p/10850743.html
Copyright © 2011-2022 走看看