ASBench数据库压测工具
ASBench一款可以同时对Oracle、PostgreSQL、MySQL做性能对比测试的数据库压测工具
目前能灵活编写SQL或测试脚本对不同的数据库进行压测对比的工具比较少,而此压测软件就是可以编写包含压测SQL的lua脚本,完成对Oracle、MySQL、PostgreSQL的压测,从而对比这些数据库在不同SQL下的性能差异。
安装和测试
在gitee的软件项目的release(https://gitee.com/csudata/asbench/releases/0.1)中找到asbench的发行版本 asbench.X.Y.tar.xz(其中X.Y是版本号)解压开,有目录asbenchXX,下面有一些文件:
- asbench_mysql
- asbench_ora
- asbench_ora11
- asbench_ora19
- asbench_pg
- bench_ora.sh
- bench_pg.sh
- lua
- tnsnames.ora
测试Oracle
如果主机上没有安装Oracle客户端程序,需要到在gitee的软件项目的release(https://gitee.com/csudata/asbench/releases/0.1)中下载:
- oracle-instant11.2.tar
- oracle-instant12.2.tar
- oracle-instant19.9.tar
根据不同的oracle版本下载不同的客户端版本,下载下来后,使用rpm命令安装即可:
rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
注意如果我们测试Oracle 11.2,需要把连接文件asbench_ora指向asbench_ora11。
修改bench_ora.sh中的内容:
Oracle的环境变量:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:$LD_LIBRARY_PATH export PATH=/usr/lib/oracle/11.2/client64/bin:$PATH
测试相关的内容:
- --test=lua/select.lua: 是指定测试项,select.lua是一个按主键随机查询的测试
- --oracle-db=oradb: 自定Oracle的连接服务名,这里的oradb需要在tnsnames.ora中的一个名称
- --oracle-user=sysbench: 测试使用的数据库用户名称
- --oracle-password=sysbench: 测试使用的数据库用户的密码
在tnsnames.ora中配置数据库的连接。
做好上面的配置后,就可以先初始化数据:
./bench_ora prepare
测试:
./bench_ora run
可以自己建一些测试的lua文件,如从lua/select.lua拷贝成一些新的文件:my_select.lua,修改其中的SQL,然后修改bench_ora中的lua/select.lua成lua/my_select.lua,然后运行./bench_ora run就可以开始测试了。