benchmark在postgresql上的安装及使用
Posted klb561
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:配置所要链接的数据库,默认会读取之前我们修改的配置文件,故此处不用动
Control-Terminals:配置终端数,仓库数,是否显示Debug信息,指定测试时间以及每终端事务等(每终端事务执行方式目前我也没理解,望交流)
Control-Weights:配置TPC-C测试中五中事务的比重(界面中只要配置4种),一般按默认比例测试即可
Control-Controls:控制器设置,点击Create Terminals创建一个终端;点击Start Transaction开始基准测试,点击Stop Transaction停止基准测试
Error:错误信息显示
Terminals:各个终端日志查看
注意:
1. 测试完后在界面下方会显示简要的测试结果,包括平均tpmC值(每分钟执行的事务数),当前tpmC值,内存使用情况等等;出结果以后尽量记录下来,以为之后如果乱点界面按钮的话,测试结果将会被重写(感觉是一个bug);
参考资料:
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
二、测试前提
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:配置所要链接的数据库,默认会读取之前我们修改的配置文件,故此处不用动
Control-Terminals:配置终端数,仓库数,是否显示Debug信息,指定测试时间以及每终端事务等(每终端事务执行方式目前我也没理解,望交流)
Control-Weights:配置TPC-C测试中五中事务的比重(界面中只要配置4种),一般按默认比例测试即可
Control-Controls:控制器设置,点击Create Terminals创建一个终端;点击Start Transaction开始基准测试,点击Stop Transaction停止基准测试
Error:错误信息显示
Terminals:各个终端日志查看
注意:
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并选择从已有工程创建,如下图所示;
3)修改postgres.properties文件,即设置正确的数据库名和密码,如下图所示;
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)下载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并选择从已有工程创建,如下图所示;
3)修改postgres.properties文件,即设置正确的数据库名和密码,如下图所示;
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
以上是关于benchmark在postgresql上的安装及使用的主要内容,如果未能解决你的问题,请参考以下文章
对SQL serverOracleMySQL和PostgreSQL进行OLTP性能测试(Benchmark)
对SQL serverOracleMySQL和PostgreSQL进行OLTP性能测试(Benchmark)
对SQL serverOracleMySQL和PostgreSQL进行OLTP性能测试(Benchmark)
windows环境压力测试工具Apache ab安装及使用(apache benchmark)