达梦数据库sysbench测试

目录

概述

安装

将文件放到指定目录并解压

检查软件安装情况

配置达梦数据库

执行配置文件

编译

测试说明

 测试

参数说明

读写测试

准备数据

开始测试

测试完成

清除数据

纯读测试

创建数据

开始测试

测试完成

清除数据

 纯写测试

准备数据

开始测试

测试完成

清除数据

指标解析 


概述

Sysbench 是一个开源且模块化的多线程性能测试工具,广泛用于硬件环境和数据库的性能评估。为了支持达梦数据库(DM)的测试,通常需要通过源码编译的方式来适配。测试时,Sysbench 会运行 Lua 脚本,并且每次测试都需要严格按照 prepare(数据准备)、run(运行测试)、cleanup(数据清理)这三个步骤进行操作,以确保测试的完整性和准确性,避免因步骤缺失而导致错误。

Sysbench 自带的 OLTP 测试脚本模拟了对单表的查询、更新、删除和插入操作,并以主键作为过滤条件。测试表以 `sbtest` 为前缀,后接数字加以区分。虽然表结构相对简单,事务操作也不复杂,但这些测试脚本能够有效模拟数据库在高并发场景下的性能表现。常见的测试场景中,单表数据量通常以十万级别为主,因此测试压力主要集中在 CPU 性能上。尽管表结构简单,但建议不要随意修改测试脚本中的列类型或场景,以免影响测试结果的准确性和可比性。

安装

在该社区地址下下载对应的安装包:

https://eco.dameng.com/community/question/616ca08f52818c4e3d94d52f415dba7c

将文件放到指定目录并解压

unzip sysbench-master-dm.zip -d /opt/sysbench-master
cd /opt/sysbench-master/
unzip sysbench-master-dpi-20200604-src.zip

检查软件安装情况

rpm -qa|grep gcc
yum -y install gcc
yum -y install automake libtool

执行./autogen.sh脚本来生成对应的configure配置文件。如此步骤出错,说明该系统缺少基本的编译工具,解决检查并解决环境问题。

./autogen.sh

配置达梦数据库

 检查环境变量

echo $DM_HOME

如果没有的话需要自行配置达梦数据库的路径:

export DM_HOME=/home/dmdba/dmdbms

再次检查出现环境变量即可

执行配置文件

默认是以编译的方式支持测试MySQL和DM数据库。在编译的过程中需要MySQL的动态库和头文件,此时会进行检查。命令如下:

./configure --without-mysql --with-dm

出现达梦数据库支持yes即表示支持达梦数据库测试

编译

进入到一开始解压的主目录文件执行make命令即可开始编译

在编译成功后,在src目录下生成可执行文件sysbench,测试方便将sysbench拷贝到src/lua目录下,然后进入src/lua目录运行sysbench。这里我重新命名为newsysbench

mv sysbench ./lua/newsysbench

测试说明

sysbench的数据库测试脚本在src/lua目录下,都是以oltp为前缀。其中oltp_common.lua脚本是最基础的测试脚本,定义了表结构,事务的基本操作。剩余oltp脚本都是引用oltp_common脚本,将其中query进行组合,实现各种测试场景。最常使用的3个脚本如下:

脚本名称

说明

oltp_read_write.lua

读写混合性能测试,包含查询,更新,删除,插入操作。

oltp_read_only.lua

读性能测试,包含查询操作。

oltp_write_only.lua

包含更新,删除,插入操作。

 测试

进入lua目录

参数说明

参数

说明

--db-driver=dm

表示使用dm驱动

--dm-db=localhost:5236

表示dm的连接信息

--dm-user=SYSDBA

表示dm的登录用户名

--dm-password=SYSDBA

表示dm的登录密码

--table-size=2500

表示每个测试表填充数据量为 2500

--tables=25

表示25张表

--threads=64

表示发起64个并发连接

--report-interval=10

表示每10秒输出一次测试进度报告

--time=180

表示最大执行时长为180

--auto-inc=0

自增主键,默认为0即可

读写测试

准备数据

./ newsysbench oltp_read_write.lua --tables=25 --table-size=2500 --db-driver=dm --dm-db=localhost:5236 --dm-user=SYSDBA --dm-password=SYSDBA --auto-inc=0 --threads=64 --time=180 --report-interval=10 prepare

开始测试

./ newsysbench oltp_read_write.lua --tables=25 --table-size=2500 --db-driver=dm --dm-db=localhost:5236 --dm-user=SYSDBA --dm-password=SYSDBA --auto-inc=0 --threads=64 --time=180 --report-interval=10 run

测试完成

清除数据

./ newsysbench oltp_read_write.lua --tables=25 --table-size=2500 --db-driver=dm --dm-db=localhost:5236 --dm-user=SYSDBA --dm-password=SYSDBA --auto-inc=0 --threads=64 --time=180 --report-interval=10 cleanup

纯读测试

创建数据

./newsysbench --db-driver=dm --dm-db=localhost:5236 --dm-user=SYSDBA --dm-password=SYSDBA --table_size=250 --tables=25 --events=0 --time=120 oltp_read_only prepare --auto-inc=0

开始测试

./newsysbench --db-driver=dm --dm-db=localhost:5236 --dm-user=SYSDBA --dm-password=SYSDBA --table_size=250 --tables=25 --events=0 --time=120 oltp_read_only run --auto-inc=0 --threads=32 --percentile=95 --range-selects=0 --skip-trx=1 --report-interval=1

测试完成

清除数据

./newsysbench --db-driver=dm --dm-db=localhost:5236 --dm-user=SYSDBA --dm-password=SYSDBA --table_size=250 --tables=25 --events=0 --time=120 oltp_read_only cleanup --auto-inc=0 --threads=32 --percentile=95 --range-selects=0 --skip-trx=1 --report-interval=1

 纯写测试

准备数据

./newsysbench --db-driver=dm --dm-db=localhost:5236 --dm-user=SYSDBA --dm-password=SYSDBA --table_size=250 --tables=25 --events=0 --time=120 oltp_write_only prepare --auto-inc=0

开始测试

./newsysbench --db-driver=dm --dm-db=localhost:5236 --dm-user=SYSDBA --dm-password=SYSDBA --table_size=250 --tables=25 --events=0 --time=120 oltp_write_only run --auto-inc=0 --threads=32 --percentile=95 --range-selects=0 --skip-trx=1 --report-interval=1

测试完成

清除数据

./newsysbench --db-driver=dm --dm-db=localhost:5236 --dm-user=SYSDBA --dm-password=SYSDBA --table_size=250 --tables=25 --events=0 --time=120 oltp_write_only cleanup --auto-inc=0 --threads=32 --percentile=95 --range-selects=0 --skip-trx=1 --report-interval=1

指标解析 

我们一般关注的指标主要有:

response time avg:平均响应时间(后面的95%的大小可以通过–percentile=98的方式去更改)。

transactions:精确的说是这一项后面的TPS,但如果使用了–skip-trx=on,这项事务数为0,需要用total number of events去除以总时间,得到tps(其实还可以分为读tps和写tps)。

queries:用它除以总时间,得到吞吐量QPS。

达梦社区地址:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值