openGauss学习笔记-270 openGauss性能调优-TPCC性能调优测试指导-测试TPCC性能

openGauss学习笔记-270 openGauss性能调优-TPCC性能调优测试指导-测试TPCC性能270.1 下载TPCC标准测试工具270.2 替换openGauss适配的jar包270.3 进行编译270.4 创建benchmarkSQL配置文件270.5 TPCC导入数据前准备270.6 导入数据270.7 备份数据270.8 对数据进行分盘270.9 运行TPCC程序270.10 验证数据测试过程正确性270.11 进行重新测试

openGauss学习笔记-270 openGauss性能调优-TPCC性能调优测试指导-测试TPCC性能

本章节主要介绍openGauss数据库内核基于鲲鹏服务器和openEuler操作系统,为了达到最佳TPMC性能所依赖的关键系统级调优。

270.1 下载TPCC标准测试工具

下载TPCC标准测试工具BenchmarkSQL5.0

270.2 替换openGauss适配的jar包

将目录lib/postgresql下面的*.jar 替换为openGauss适配的jar包。

$ pwd 
/your path/benchmarksql-5.0/lib/postgres 
$ ls 
postgresql.jar #openGauss jdbc驱动。 
postgresql-9.3-1102.jdbc41.jar.bak    # 自带jar备份。

openGauss适配的JDBC版本包获取路径为openGauss-x.x.x-JDBC .tar.gz

270.3 进行编译

进入benchmarksql-5.0根目录,输入ant命令进行编译。

$ cd /your path/benchmarksql-5.0/ 
$ ant

编译成功后会生成build和dist两个目录。

270.4 创建benchmarkSQL配置文件

创建benchmarkSQL配置文件,使用benchmarkSQL前需要配置数据库相关的信息,包括数据库账号、密码、端口、数据库名称。

$ cd /your path/benchmarksql-5.0/run 
$ cp props.pg props.opengauss.1000w 
$ vim props.opengauss.1000w

从props.pg拷贝一份配置文件并按如下修改,斜体处请根据真实情况进行修改。

db=postgres 
driver=org.postgresql.Driver 
// 修改连接字符串, 包含IP、端口号、数据库,其中8.92.4.238为数据库服务端的千兆网卡IP。
conn=jdbc:postgresql://8.92.4.238:21579/tpcc1000?prepareThreshold=1&batchMode=on&fetchsize=10 
// 设置数据库登录用户和密码。
user=bot 
password=Gaussdba@Mpp 

warehouses=1000 
loadWorkers=200 

// 设置最大并发数量, 跟服务端最大work数对应。 
terminals=812 
//要为每个终端运行指定事务--runMins必须等于零
runTxnsPerTerminal=0 
//要运行指定的分钟 - runTxnsPerTerminal必须等于零
runMins=5 
//每分钟总事务数
limitTxnsPerMin=0 


//在4.x兼容模式下运行时,设置为True。
//设置为false以均匀使用整个配置的数据库。
terminalWarehouseFixed=false 

//以下五个值相加之和为100。
//45、43、4、4和4的默认百分比与TPC-C规范匹配。
newOrderWeight=45 
paymentWeight=43 
orderStatusWeight=4 
deliveryWeight=4 
stockLevelWeight=4 

//创建文件夹以收集详细结果数据。
//通过注释取消此内容。
resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS 
osCollectorScript=./misc/os_collector_linux.py 
osCollectorInterval=1 
//收集OS负载信息。
osCollectorSSHAddr=osuer@10.44.133.78    
osCollectorDevices=net_enp3s0 blk_nvme0n1 blk_nvme1n1 blk_nvme2n1 blk_nvme3n1

270.5 TPCC导入数据前准备

使用如下文件替换benchmarkSQL中的文件,路径为benchmarksql-5.0/run/sql.common/。该文件主要增加了两个表空间和一些附加数据属性。

CREATE TABLESPACE example2 relative location 'tablespace2';
CREATE TABLESPACE example3 relative location 'tablespace3';

create table bmsql_config (
 cfg_name    varchar(30),
 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)
) WITH (FILLFACTOR=80);

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)
 ) WITH (FILLFACTOR=80);

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)
) WITH (FILLFACTOR=80) tablespace example2;

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)
) WITH (FILLFACTOR=80);

create table bmsql_new_order (
 no_w_id  integer   not null,
 no_d_id  integer   not null,
 no_o_id  integer   not null
) WITH (FILLFACTOR=80);

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
) WITH (FILLFACTOR=80);

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)
) WITH (FILLFACTOR=80);

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)
) WITH (FILLFACTOR=80) tablespace example3;

270.6 导入数据

  1. 创建数据库用户。
create user bot identified by 'XXXXXXXX' profile default; 
    alter user bot sysadmin; 
    create database tpcc1000 encoding 'UTF8' template=template0 owner tpcc5q;
  1. 执行如下命令导入数据。
./runDatabaseBuild.sh props.opengauss.1000w

270.7 备份数据

为了方便多次测试,减少导入数据的时间,可以通过停止数据库,将整个数据目录执行一次拷贝对数据库进行备份。

270.8 对数据进行分盘

在性能测试过程中,为了增加IO的吞吐量,需要将数据分散到不同的存储介质上。由于机器上有4块NVME盘,可以将数据分散到不同的盘上。将pg_xlog、tablespace2、tablespace3这三个目录放置在其他3个NVME盘上,并在原有的位置给出指向真实位置的软连接。pg_xlog位于数据库目录下,tablespace2、tablespace3分别位于数据库目录pg_location下。对tablespace2分盘的命令如下:

mv $DATA_DIR/pg_location/tablespace2 $TABSPACE2_DIR/tablespace2 
cd $DATA_DIR/pg_location/ 
ln -svf $TABSPACE2_DIR/tablespace2 ./

创建完成后的效果如下图:

image.png
image.png

270.9 运行TPCC程序

numactl –C 0-19,32-51,64-83,96-115 ./runBenchmark.sh props.opengauss.1000w

运行后的结果如下图,tpmC部分即为测试结果。

image.png

270.10 验证数据测试过程正确性

使用htop监控数据库服务端和tpcc客户端CPU利用情况,最佳性能测试情况下,各个业务CPU的占用率都非常高(> 90%)。如果有CPU占用率没有达标,可能是绑核方式不对或其他问题,需要定位找到根因进行调整。

下图是最佳性能测试情况下所有CPU的使用情况,其中黄线框中的是处理网络中断的CPU。

image.png

270.11 进行重新测试

如果为了避免数据的干扰,需要进行重新测试,可以通过步骤7备份的数据通过拷贝的方式恢复数据。重复步骤8~步骤10可以重新进行测试。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容