• 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
     
  • 相关阅读:
    2020软件工程作业02
    2020软件工程作业01
    为什么需要平衡二叉树?
    手机号码和邮箱等联系地址,为什么不明文显示?
    请把重要的事看轻 ——2017年终总结
    万事皆空:随缘而定
    微服务:微服务架构模式译文说明
    Mysql 查询—按位运算
    解决:spring security 登录页停留时间过长 跳转至 403页面
    excel模板解析—桥接模式:分离解析模板和业务校验
  • 原文地址:https://www.cnblogs.com/klb561/p/10850743.html
Copyright © 2020-2023  润新知