Databases Test 2(DBT2)是由Open Source Development Lab开发的用于测试数据库性能的测试工具,虽然没有完全实现TPCC但是基本上也是模拟了OLTP的应用场景的,测试结果包括每秒处理的事务数、cpu使用率、IO以及内存的使用情况,现在主要是由Mark Wong在进行开发和维护。这个测试工具在SourceForge上可以下载到,但已经不是最新版本了,如果想使用最新版本的话需要直接到这个项目的源码库中去获取最新的代码,最新的版本现在支持的最常用的数据库就是Postgresql和MysqL。这里主要记录一下本人在使用这个工具时遇到的一些问题以及解决方法。
首先说一下测试环境,本人使用的操作系统平台是Fedora 12,测试数据库为Postgresql 8.0.22版本。(如果各位看客想基于Fedora进行系统开发和测试的话,推荐使用DVD版的安装镜像,因为DVD版本自身集成了许多东西,减少了自己安装如gcc等工具的麻烦;至于PG为什么使用8.0.22版本则完全是为了本人自身需要,不过后来发现使用这个版本会给BDT2带来使用上的麻烦)
按照Mark Wong本人对于DBT2的教程我们可以知道,如果希望测试结果能够以如下链接http://osdldbt.sourceforge.net/dbt2/pgsql/report/的形式呈现的话,那么最好安装一些必须的工具之后再进行测试。下面所说的就是Mark Wong在波特兰大学做Tutorial时对于使用DBT2所做的介绍。
一、构建Test Kit的前提条件。1)安装Postgresql;2)PG的可执行文件要在路径中;3)安装cmake;4)有一个C的编译器。
二、推荐安装的工具。1)Test::Parser这个Perl模块用来计算测试结果;2)sysstat,procps和iopp,这些工具用来收集系统的统计数据;3)readprofile,用来对Linux内核进行分析;4)oprofile,对Linux内核进行其他分析以及用户空间分析,调用graphs,源代码和assembly annotations。
三、分析工具。1)gnuplot,用于做图表;2)Test::Presenter,这个Perl模块用来生成图表。
在看完了以上要求之后我们来看一下在Fedora上如何进行实现吧。首先当然是安装Postgresql了,这步很简单,过程如下(本人将其安装到/home/frankey/pgsql这个文件目录下):
./configure -prefix=/home/fankey/pgsql
make
make install
在安装了数据库之后我们在Fedora上安装需要的工具,过程如下:
yum install cmake
yum install sysstate
yum install procps
yum install oprofile
yum install gnuplot
以上工具在Fedora 12上安装时都没有任何问题
yum install iopp
报错:No package iopp available,无需任何处理
这是因为iopp是Mark Wong自己开发的工具,通过yum根本无法找到,所以我们需要独立安装它。首先通过
git clone git://git.postgresql.org/git/iopp.git 获得iopp的源代码,然后转到iopp这个文件夹的目录下进行编译安装
cd iopp
cmake CMakeLists.txt
make
make install DESTDIR=/home/frankey/ioppinstall(这里将iopp安装到/home/frankey/ioppinstall目录下)
这样我们就完成了iopp的安装,然后是两个Perl模块Test::Parser和Test::Presenter的安装,关于Perl模块的安装本人已经在之前的博客中有过了讲解,看客们可以去翻来看看。
现在准备工作做的差不多了,可以安装DBT2了。上面已经提到了,安装DBT2的前提是要保证PG的可执行文件路径要在PATH中,所以我们运行下面这语句:
export PATH="..:...:/home/frankey/pgsql/bin" ,即把PG的可执行文件路径添加到PATH这个环境变量中。
然后我们通过git来获取最新版本的DBT2源码
git clone git://git.postgresql.org/git/dbt2.git 进入到dbt2目录下,执行以下命令
cmake --DDBMS=pgsql CMakeLists.txt (--DDBMS选项用来指定测试的目标数据库)
make
make install DESTDIR=/home/frankey/dbt2install
之后我们要构建C存储函数
cd storedproc/pgsql/c
make
make install
此时DBT2就安装完了,下面进行一次简单的测试吧
export PATH="...:...:/home/fankey/dbt2install/bin" (将dbt2的可执行文件路径添加到PATH路径中)
export LD_LIBRARY_PATH="/home/fankey/pgsql/lib" (将PG的共享库添加到环境变量中)
export DBNAME="dbt2"
export PGDATA="/home/fankey/data"
export DBT2TSDIR="/home/frankey/tablespace"
以上都是设置一些路径信息,下面构建测试用的数据库:
./dbt2-pgsql-build-db -d /tmp/datafile -g -w 1
针对本人使用的Postgresql 8.0.22,这一步会出现错误pg_config:invalid argument:--sharedir,这是因为PG从8.1版本后才开始支持pg_config的sharedir选项,所以建议看客们在使用时如无特殊需求使用8.0版本以上的PG就好了。
然后是运行测试:
dbt2-run-workload -a pgsql -d 120 -w 1 -o /tmp/test (运行一个2分钟的测试)
以上就是关于DBT2的简单使用方法,不是很完善,但是希望对看客们有些用处
!!!
原文链接:https://www.f2er.com/postgresql/196570.html./configure -prefix=/home/fankey/pgsql
make
make install
yum install cmake
yum install sysstate
yum install procps
yum install oprofile
yum install gnuplot
以上工具在Fedora 12上安装时都没有任何问题
yum install iopp
报错:No package iopp available,无需任何处理
这是因为iopp是Mark Wong自己开发的工具,通过yum根本无法找到,所以我们需要独立安装它。首先通过
git clone git://git.postgresql.org/git/iopp.git 获得iopp的源代码,然后转到iopp这个文件夹的目录下进行编译安装
cd iopp
cmake CMakeLists.txt
make
make install DESTDIR=/home/frankey/ioppinstall(这里将iopp安装到/home/frankey/ioppinstall目录下)
这样我们就完成了iopp的安装,然后是两个Perl模块Test::Parser和Test::Presenter的安装,关于Perl模块的安装本人已经在之前的博客中有过了讲解,看客们可以去翻来看看。
export PATH="..:...:/home/frankey/pgsql/bin" ,即把PG的可执行文件路径添加到PATH这个环境变量中。
然后我们通过git来获取最新版本的DBT2源码
git clone git://git.postgresql.org/git/dbt2.git 进入到dbt2目录下,执行以下命令
cmake --DDBMS=pgsql CMakeLists.txt (--DDBMS选项用来指定测试的目标数据库)
make
make install DESTDIR=/home/frankey/dbt2install
之后我们要构建C存储函数
cd storedproc/pgsql/c
make
make install
此时DBT2就安装完了,下面进行一次简单的测试吧
export PATH="...:...:/home/fankey/dbt2install/bin" (将dbt2的可执行文件路径添加到PATH路径中)
export LD_LIBRARY_PATH="/home/fankey/pgsql/lib" (将PG的共享库添加到环境变量中)
export DBNAME="dbt2"
export PGDATA="/home/fankey/data"
export DBT2TSDIR="/home/frankey/tablespace"
以上都是设置一些路径信息,下面构建测试用的数据库:
./dbt2-pgsql-build-db -d /tmp/datafile -g -w 1
针对本人使用的Postgresql 8.0.22,这一步会出现错误pg_config:invalid argument:--sharedir,这是因为PG从8.1版本后才开始支持pg_config的sharedir选项,所以建议看客们在使用时如无特殊需求使用8.0版本以上的PG就好了。
然后是运行测试:
dbt2-run-workload -a pgsql -d 120 -w 1 -o /tmp/test (运行一个2分钟的测试)