1 下载BenchmarkSQL

自行去官网下载 ,此处不贴下载链接;

略 : 自行去官网下载 ,个人实验用的是5.0版本

上传到到DM服务器并解压缩

[dmdba@centos benchmarksql-5.0]$ pwd
/dm/benchmarksql-5.0
[dmdba@centos benchmarksql-5.0]$ ls
build.xml  doc  HOW-TO-RUN.txt  lib  README.md  run  src
[dmdba@centos benchmarksql-5.0]$

2 创建测试用户

SQL> create tablespace cndba datafile '/dm/dmdbms/data/dave/cndba01.dbf' size 200;
executed successfully
used time: 29.584(ms). Execute id is 2139.
SQL> create user cndba identified by cndba0551 default tablespace cndba;
executed successfully
used time: 7.071(ms). Execute id is 2140.
SQL> grant resource,dba to cndba;
executed successfully
used time: 3.974(ms). Execute id is 2141.
SQL>

3 复制对应版本的jdbc驱动到benchmarksql


#复制jdbc驱动:
[dmdba@centos jdbc]$ pwd
/dm/dmdbms/drivers/jdbc
[dmdba@centos jdbc]$ ls
dialect                        DmDictionary.jar    DmJdbcDriver17.jar  Hibernate Dialect&JDBC.txt
dm8-oracle-jdbc16-wrapper.jar  DmJdbcDriver16.jar  DmJdbcDriver18.jar  version.txt
[dmdba@centos jdbc]$ [dmdba@centos jdbc]$ cp DmJdbcDriver18.jar /dm/benchmarksql-5.0/lib/dameng/
[dmdba@centos jdbc]$ ll /dm/benchmarksql-5.0/lib/dameng/
total 600
-rwxr-xr-x. 1 dmdba dinstall 611987 Sep 26 08:39 DmJdbcDriver18.jar
[dmdba@centos jdbc]$

4 修改benchmarksql 参数

[root@dm8 run]# pwd
/dm/benchmarksql-5.0/run
[root@dm8 run]# ls
dmsql.buf1569457832999202.buf  log4j.properties  props.pg               runLoader.sh  sql.oracle
funcs.sh                       misc              runBenchmark.sh        runSQL.sh     sql.postgres
generateGraphs.sh              props.fb          runDatabaseBuild.sh    sql.common
generateReport.sh              props.ora         runDatabaseDestroy.sh  sql.firebird
[root@dm8 run]# 修改的props.dm 脚本如下
[dmdba@centos run]$ cat props.dm
db=dm
driver=dm.jdbc.driver.DmDriver
conn=jdbc:dm://192.xxxxxxxx:5236
user=dmdba
password=dmdba
warehouses=4
loadWorkers=4
terminals=32
//To run specified transactions per terminal- runMins must equal zero
runTxnsPerTerminal=0
//To run for specified minutes- runTxnsPerTerminal must equal zero
runMins=15
//Number of total transactions per minute
limitTxnsPerMin=0
//Set to true to run in 4.x compatible mode. Set to false to use the
//entire configured database evenly.
terminalWarehouseFixed=true
//The following five values must add up to 100
//The default percentages of 45, 43, 4, 4 & 4 match the TPC-C spec
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
// Directory name to create for collecting detailed result data.
// Comment this out to suppress.
resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
osCollectorScript=./misc/os_collector_linux.py
osCollectorInterval=1
//osCollectorSSHAddr=user@dbhost
osCollectorDevices=net_enp62s0f0 blk_sda
[dmdba@centos run]$

5 创建模式并初始化数据

[dmdba@centos run]$ ./runDatabaseBuild.sh props.dm
# ------------------------------------------------------------
# Loading SQL file ./sql.common/tableCreates.sql
# ------------------------------------------------------------
dm.jdbc.driver.DmDriver
create table bmsql_config (
cfg_name    varchar(30) primary key,
cfg_value   varchar(50)
);
create table bmsql_warehouse (
w_id        integer   not null,
w_ytd       decimal(12,2),
w_tax       decimal(4,4),
w_name      varchar(10),
w_street_1  varchar(20),
w_street_2  varchar(20),
w_city      varchar(20),
w_state     char(2),
w_zip       char(9)
);
create table bmsql_district (
d_w_id       integer       not null,
d_id         integer       not null,
d_ytd        decimal(12,2),
d_tax        decimal(4,4),
d_next_o_id  integer,
d_name       varchar(10),
d_street_1   varchar(20),
d_street_2   varchar(20),
d_city       varchar(20),
d_state      char(2),
d_zip        char(9)
);
create table bmsql_customer (
c_w_id         integer        not null,
c_d_id         integer        not null,
c_id           integer        not null,
c_discount     decimal(4,4),
c_credit       char(2),
c_last         varchar(16),
c_first        varchar(16),
c_credit_lim   decimal(12,2),
c_balance      decimal(12,2),
c_ytd_payment  decimal(12,2),
c_payment_cnt  integer,
c_delivery_cnt integer,
c_street_1     varchar(20),
c_street_2     varchar(20),
c_city         varchar(20),
c_state        char(2),
c_zip          char(9),
c_phone        char(16),
c_since        timestamp,
c_middle       char(2),
c_data         varchar(500)
);
create sequence bmsql_hist_id_seq;
create table bmsql_history (
hist_id  integer,
h_c_id   integer,
h_c_d_id integer,
h_c_w_id integer,
h_d_id   integer,
h_w_id   integer,
h_date   timestamp,
h_amount decimal(6,2),
h_data   varchar(24)
);
create table bmsql_new_order (
no_w_id  integer   not null,
no_d_id  integer   not null,
no_o_id  integer   not null
);
create table bmsql_oorder (
o_w_id       integer      not null,
o_d_id       integer      not null,
o_id         integer      not null,
o_c_id       integer,
o_carrier_id integer,
o_ol_cnt     integer,
o_all_local  integer,
o_entry_d    timestamp
);
create table bmsql_order_line (
ol_w_id         integer   not null,
ol_d_id         integer   not null,
ol_o_id         integer   not null,
ol_number       integer   not null,
ol_i_id         integer   not null,
ol_delivery_d   timestamp,
ol_amount       decimal(6,2),
ol_supply_w_id  integer,
ol_quantity     integer,
ol_dist_info    char(24)
);
create table bmsql_item (
i_id     integer      not null,
i_name   varchar(24),
i_price  decimal(5,2),
i_data   varchar(50),
i_im_id  integer
);
create table bmsql_stock (
s_w_id       integer       not null,
s_i_id       integer       not null,
s_quantity   integer,
s_ytd        integer,
s_order_cnt  integer,
s_remote_cnt integer,
s_data       varchar(50),
s_dist_01    char(24),
s_dist_02    char(24),
s_dist_03    char(24),
s_dist_04    char(24),
s_dist_05    char(24),
s_dist_06    char(24),
s_dist_07    char(24),
s_dist_08    char(24),
s_dist_09    char(24),
s_dist_10    char(24)
);
Starting BenchmarkSQL LoadDatadriver=dm.jdbc.driver.DmDriver
conn=jdbc:dm://192.168.xxxxxxx:5236
user=cndba
password=***********
warehouses=4
loadWorkers=4
fileLocation (not defined)
csvNullValue (not defined - using default 'NULL')Worker 000: Loading ITEM
Worker 001: Loading Warehouse      1
Worker 002: Loading Warehouse      2
Worker 003: Loading Warehouse      3
Worker 000: Loading ITEM done
Worker 000: Loading Warehouse      4
Worker 001: Loading Warehouse      1 done
Worker 002: Loading Warehouse      2 done
Worker 003: Loading Warehouse      3 done
Worker 000: Loading Warehouse      4 done
# ------------------------------------------------------------
# Loading SQL file ./sql.common/indexCreates.sql
# ------------------------------------------------------------
dm.jdbc.driver.DmDriver
alter table bmsql_warehouse add constraint bmsql_warehouse_pkey
primary key (w_id);
alter table bmsql_district add constraint bmsql_district_pkey
primary key (d_w_id, d_id);
alter table bmsql_customer add constraint bmsql_customer_pkey
primary key (c_w_id, c_d_id, c_id);
create index bmsql_customer_idx1
on  bmsql_customer (c_w_id, c_d_id, c_last, c_first);
alter table bmsql_oorder add constraint bmsql_oorder_pkey
primary key (o_w_id, o_d_id, o_id);
create unique index bmsql_oorder_idx1
on  bmsql_oorder (o_w_id, o_d_id, o_carrier_id, o_id);
alter table bmsql_new_order add constraint bmsql_new_order_pkey
primary key (no_w_id, no_d_id, no_o_id);
alter table bmsql_order_line add constraint bmsql_order_line_pkey
primary key (ol_w_id, ol_d_id, ol_o_id, ol_number);
alter table bmsql_stock add constraint bmsql_stock_pkey
primary key (s_w_id, s_i_id);
alter table bmsql_item add constraint bmsql_item_pkey
primary key (i_id);
# ------------------------------------------------------------
# Loading SQL file ./sql.common/foreignKeys.sql
# ------------------------------------------------------------
dm.jdbc.driver.DmDriver
alter table bmsql_district add constraint d_warehouse_fkey
foreign key (d_w_id)
references bmsql_warehouse (w_id);
alter table bmsql_customer add constraint c_district_fkey
foreign key (c_w_id, c_d_id)
references bmsql_district (d_w_id, d_id);
alter table bmsql_history add constraint h_customer_fkey
foreign key (h_c_w_id, h_c_d_id, h_c_id)
references bmsql_customer (c_w_id, c_d_id, c_id);
alter table bmsql_history add constraint h_district_fkey
foreign key (h_w_id, h_d_id)
references bmsql_district (d_w_id, d_id);
alter table bmsql_new_order add constraint no_order_fkey
foreign key (no_w_id, no_d_id, no_o_id)
references bmsql_oorder (o_w_id, o_d_id, o_id);
alter table bmsql_oorder add constraint o_customer_fkey
foreign key (o_w_id, o_d_id, o_c_id)
references bmsql_customer (c_w_id, c_d_id, c_id);
alter table bmsql_order_line add constraint ol_order_fkey
foreign key (ol_w_id, ol_d_id, ol_o_id)
references bmsql_oorder (o_w_id, o_d_id, o_id);
alter table bmsql_order_line add constraint ol_stock_fkey
foreign key (ol_supply_w_id, ol_i_id)
references bmsql_stock (s_w_id, s_i_id);
alter table bmsql_stock add constraint s_warehouse_fkey
foreign key (s_w_id)
references bmsql_warehouse (w_id);
alter table bmsql_stock add constraint s_item_fkey
foreign key (s_i_id)
references bmsql_item (i_id);
# ------------------------------------------------------------
# Loading SQL file ./sql.common/buildFinish.sql
# ------------------------------------------------------------
dm.jdbc.driver.DmDriver
-- ----
-- Extra commands to run after the tables are created, loaded,
-- indexes built and extra's created.
-- ----
[dmdba@centos run]$

6 执行benchmark 压测

[dmdba@centos run]$ ./runBenchmark.sh props.dm
13:36:09,861 [main] INFO   jTPCC : Term-00,
13:36:09,867 [main] INFO   jTPCC : Term-00, +-------------------------------------------------------------+
13:36:09,867 [main] INFO   jTPCC : Term-00,      BenchmarkSQL v5.0
13:36:09,867 [main] INFO   jTPCC : Term-00, +-------------------------------------------------------------+
13:36:09,868 [main] INFO   jTPCC : Term-00,  (c) 2003, Raul Barbosa
13:36:09,868 [main] INFO   jTPCC : Term-00,  (c) 2004-2016, Denis Lussier
13:36:09,872 [main] INFO   jTPCC : Term-00,  (c) 2016, Jan Wieck
13:36:09,873 [main] INFO   jTPCC : Term-00, +-------------------------------------------------------------+
13:36:09,873 [main] INFO   jTPCC : Term-00,
13:36:09,873 [main] INFO   jTPCC : Term-00, db=dm
13:36:09,873 [main] INFO   jTPCC : Term-00, driver=dm.jdbc.driver.DmDriver
13:36:09,874 [main] INFO   jTPCC : Term-00, conn=jdbc:dm://192.xxxxxxx:5236
13:36:09,874 [main] INFO   jTPCC : Term-00, user=cndba
13:36:09,874 [main] INFO   jTPCC : Term-00,
13:36:09,874 [main] INFO   jTPCC : Term-00, warehouses=4
13:36:09,874 [main] INFO   jTPCC : Term-00, terminals=32
13:36:09,878 [main] INFO   jTPCC : Term-00, runMins=15
13:36:09,878 [main] INFO   jTPCC : Term-00, limitTxnsPerMin=0
13:36:09,878 [main] INFO   jTPCC : Term-00, terminalWarehouseFixed=true
13:36:09,879 [main] INFO   jTPCC : Term-00,
13:36:09,879 [main] INFO   jTPCC : Term-00, newOrderWeight=45
13:36:09,879 [main] INFO   jTPCC : Term-00, paymentWeight=43
13:36:09,879 [main] INFO   jTPCC : Term-00, orderStatusWeight=4
13:36:09,879 [main] INFO   jTPCC : Term-00, deliveryWeight=4
13:36:09,880 [main] INFO   jTPCC : Term-00, stockLevelWeight=4
13:36:09,880 [main] INFO   jTPCC : Term-00,
13:36:09,880 [main] INFO   jTPCC : Term-00, resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
13:36:09,880 [main] INFO   jTPCC : Term-00, osCollectorScript=./misc/os_collector_linux.py
13:36:09,880 [main] INFO   jTPCC : Term-00,
13:36:09,913 [main] INFO   jTPCC : Term-00, copied props.dm to my_result_2021-03-26_133609/run.properties
13:36:09,914 [main] INFO   jTPCC : Term-00, created my_result_2019-09-26_133609/data/runInfo.csv for runID 12
13:36:09,914 [main] INFO   jTPCC : Term-00, writing per transaction results to my_result_2019-09-26_133609/data/result.csv
13:36:09,917 [main] INFO   jTPCC : Term-00, osCollectorScript=./misc/os_collector_linux.py
13:36:09,917 [main] INFO   jTPCC : Term-00, osCollectorInterval=1
13:36:09,917 [main] INFO   jTPCC : Term-00, osCollectorSSHAddr=null
13:36:09,917 [main] INFO   jTPCC : Term-00, osCollectorDevices=net_enp62s0f0 blk_sda
13:36:10,062 [main] INFO   jTPCC : Term-00,
Traceback (most recent call last):File "<stdin>", line 299, in <module>File "<stdin>", line 90, in mainFile "<stdin>", line 269, in initNetDevice
IOError: [Errno 2] No such file or directory: '/sys/class/net/enp62s0f0/statistics/rx_packets'
13:36:10,201 [Thread-0] ERROR  OSCollector$CollectData : OSCollector, unexpected EOF while reading from external helper process
13:36:10,544 [main] INFO   jTPCC : Term-00, C value for C_LAST during load: 155
13:36:10,545 [main] INFO   jTPCC : Term-00, C value for C_LAST this run:    230
13:36:10,545 [main] INFO   jTPCC : Term-00,                                      13:36:35,478 [Thread-16] ERROR  jTPCCTData : Unexpected SQLException in NEW_ORDER Usage: 176MB / 287MB
13:36:35,480 [Thread-16] ERROR  jTPCCTData : Deadlock
dm.jdbc.driver.DMException: Deadlockat dm.jdbc.driver.DBError.throwException(Unknown Source)at dm.jdbc.c.b.n.Q(Unknown Source)at dm.jdbc.c.b.n.N(Unknown Source)at dm.jdbc.c.b.n.M(Unknown Source)at dm.jdbc.c.a.a(Unknown Source)at dm.jdbc.c.a.a(Unknown Source)at dm.jdbc.driver.DmdbPreparedStatement.executeInner(Unknown Source)at dm.jdbc.driver.DmdbPreparedStatement.do_executeQuery(Unknown Source)at dm.jdbc.driver.DmdbPreparedStatement.executeQuery(Unknown Source)at jTPCCTData.executeNewOrder(jTPCCTData.java:474)at jTPCCTData.execute(jTPCCTData.java:89)at jTPCCTerminal.executeTransactions(jTPCCTerminal.java:262)at jTPCCTerminal.run(jTPCCTerminal.java:89)at java.lang.Thread.run(Thread.java:748)
……
Term-00, Runnin13:51:11,538 [Thread-3] INFO   jTPCC : Term-00, : 2540328    Memory Usage: 31MB / 47MB                     13:51:11,538 [Thread-3] INFO   jTPCC : Term-00,
13:51:11,538 [Thread-3] INFO   jTPCC : Term-00, Measured tpmC (NewOrders) = 11490.51
13:51:11,539 [Thread-3] INFO   jTPCC : Term-00, Measured tpmTOTAL = 25588.58
13:51:11,539 [Thread-3] INFO   jTPCC : Term-00, Session Start     = 2021-03-26 13:36:11
13:51:11,539 [Thread-3] INFO   jTPCC : Term-00, Session End       = 2021-03-26 13:51:11
13:51:11,540 [Thread-3] INFO   jTPCC : Term-00, Transaction Count = 383882
[dmdba@centos run]$

7 修改benchmark 参数

在测试过程中,如果对性能不满意,可以对props.dm 中的配置参数进行修改。

修改完成之后需要重新reduild benchmark 然后再进行测试。

[dmdba@centos run]$ ./runDatabaseDestroy.sh props.dm
[dmdba@centos run]$ ./runDatabaseBuild.sh props.dm

8 查看测试报告

默认生成的数据在run 目录下,以日期命名:

[dmdba@centos run]$ pwd
/dm/benchmarksql-5.0/run
[dmdba@centos run]$ ll my_result_2021-02-26_xxxxx/
total 4
drwxr-xr-x. 2 dmdba dinstall 107 Sep 26 13:36 data
-rwxr-xr-x. 1 dmdba dinstall 999 Sep 26 13:36 run.properties
[dmdba@centos run]$

BenchmarkSQL测试工具 对 DM 达梦单机数据库进行tpcc测试相关推荐

  1. 达梦单机数据库安装(for linux)

    安装前准备和检查 1.1检查磁盘调度算法 --检查sda磁盘的调度算法 [root@~]# cat /sys/block/vdc/queue/scheduler --永久修改,修改内核引导参数,加入e ...

  2. 达梦数据库的TPCC测试记录

    达梦数据库的TPCC测试记录 测试环境 本文主要目的是介绍使用 benchmarksql工具进行 TPCC 测试的步骤 使用工具版本:benchmarksql-4.1.1 服务器:华为泰山v1 CPU ...

  3. 达梦dm8可视化工具_DM8(达梦8)数据库安装和使用

    达梦8(DM8)数据库入门及使用 to 达梦大学 刘秀君原创,抄袭必究 目录 1     介绍 武汉达梦数据库有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,专业从事数据库 ...

  4. 达梦DM8数据库异机数据迁移测试

    达梦 DM8 数据库异机数据迁移测试 一.源库备份 源库DMOA,主机名:dm3   目标库 DMOA 主机名:db 在DMTEST模式里创建了T_EMP01.T_EMP02.T_EMP03.T_TE ...

  5. oracle数据库计数器,DM 达梦数据库 表的 行计数器(COUNTER)属性

    1 表行计数器 说明 默认情况下,DM 达梦数据库count() 是秒回结果的,不受表中实际行数的影响,执行select count() 都能立即返回正确的结果.因为达梦数据库的count(*)操作不 ...

  6. DM达梦数据库的使用以及数据迁移工具的使用

    1.找不到DM数据库的相关软件 我们打开虚拟机的终端,在根目录下输入命令: ./manager ------->是打开达梦数据库的管理工具 ./dts --------------->是打 ...

  7. 浅谈DM达梦数据库安全管理之用户身份验证与权限管理

            数据库安全管理是指采取各种安全措施对数据库及其相关文件和数据进行保护.DM达梦数据库提供了包括用户标识与鉴别.自主与强制访问控制.通信与存储 加密.审计等丰富的安全功能.达梦数据库 的 ...

  8. DM达梦数据库体系结构

    1 DM逻辑结构概述 1.1 数据库和实例 在DM7之前版本的DM数据库中,"数据库"和"实例"这两个术语经常可以互相替换,意义也很相近.在DM7以及之后版本的 ...

  9. ORACLE迁移到DM/达梦 Mysql迁移到DM/达梦 SQLSERVER迁移到DM/达梦 超级有用参考文档!!!

    ORACLE迁移到DM/达梦 Mysql迁移到DM/达梦 SQLSERVER迁移到DM/达梦 超级有用参考文档!!! 在达梦的论坛上,有专门的手记写了这三种数据库迁移到达梦!!超级好用!!!!!!!! ...

最新文章

  1. svn的使用(转载)
  2. 【SSL】Tomcat8.5 SSL/HTTPS 安装证书 单向认证
  3. 全面系统地总结Linux的基本操作(下)
  4. 微软悬赏25万美元捉拿Conficker蠕虫作者
  5. linux下imp导入oracle数据库,Oracle数据库Linux下的导入IMP
  6. 常量表达式(constexpr)
  7. c语言贪吃蛇程序设计报告蚂蚁文库,贪吃蛇游戏C程序设计报告
  8. 【mind+ Maixduino用户库】NES 游戏扩展库
  9. 信息安全 —— 密码学
  10. android der 编码,关于android:使用现有DER / PEM密钥的Javascript中的RSA加密
  11. 智慧电网运维-覆冰在线监测装置
  12. linux 中的.so和.a文件
  13. Windows上解除宽带限速(网速明显提升)
  14. 服务器文件被篡改evopro后缀,SQLServer数据库服务器mdf文件中了勒索病毒,扩展名被篡改为.fuk25933...
  15. word插入公式,如何输入事例四条件(或者更多)
  16. 加密与安全(个人笔记)
  17. 服务器不显示串口,关于串口服务器的配置问题
  18. 创建物料凭证 BAPI_GOODSMVT_CREATE
  19. my android tools1.2.9,myandroidtools
  20. 268.Android基础之ContentProvider(AS)

热门文章

  1. TOF测距功能的原理及使用方法
  2. Golang 入门 : Go语言的设计哲学
  3. c语言谭浩强第五版---全书笔记+习题(一)
  4. .net开发安卓入门 - Service (服务)
  5. DBCP 数据库连接池的实现
  6. 电脑专业录音录音有什么,怎么录系统声音
  7. 计算机组成原理浮点数表示
  8. 数据库 SQL Server 获取时间整点
  9. C#国密SM4 CBC加密解密
  10. MR虚拟直播是什么?