中港数据库技术课堂丨华为GaussDB实战演练——案例篇(一)
风晓
2024-01-12 13:38:48
51623
赞同 0
反对 0
中港数据库技术课堂丨华为GaussDB实战演练——案例篇(一)
一、前言
GaussDB是华为自主创新研发的分布式关系型数据库。该产品具备企业级复杂事务混合负载能力,同时支持分布式事务、同城跨AZ部署、数据0丢失、支持1000+的扩展能力和PB级海量存储。并拥有云上高可用、高可靠、高安全、弹性伸缩、一键部署、快速备份恢复、监控告警等关键能力,能为企业提供功能全面、稳定可靠、扩展性强、性能优越的企业级数据库服务。
在数据库上云之前,如何有效评估云上数据库性能是非常重要的,这决定着数据库上云工作能否取得成功,对数据库后续在云上的稳定运行也具有重要意义。
在进行性能评估之前,我们应先确定数据库架构选型,如主备版还是分布式版;其次应参考云下硬件的配置情况。通常来说,云上购买的数据库规格,至少不应该低于云下数据库主机的性能规格;如果有多个节点的情况,也应该根据业务系统实际情况,在云上选择对应的分片数量,以便进行准确的性能评估。
本文就以华为云GaussDB主备版为例,去展示对云上数据库的性能测试的实战。
三、测试工具介绍
GaussDB使用BenchmarkSQL进行性能测试的方法和测试数据报告。
BenchmarkSQL:一个JDBC基准测试工具,内嵌了TPC-C测试脚本,支持多种数据库,如PostgreSQL、Oracle和Mysql等。
TPC-C是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统。几乎所有在OLTP市场提供软硬平台的国外主流厂商都发布了相应的TPC-C测试结果,随着计算机技术的不断发展,这些测试结果也在不断刷新。
四、测试方法
1、修改连接配置
2、重点参数修改
conn=jdbc:postgresql://127.0.0.1:8000/postgres?autoBalance=true
3、压数据
cd ~/BenchmarkSQL-5.0/run
./runDatabaseBuild.sh props.pg
4、运行tpcc业务场景
cd ~/BenchmarkSQL-5.0/run
./runBenchmark.sh props.pg
五、建表语句参考
create table bmsql_config (
) DISTRIBUTE BY REPLICATION;
create table bmsql_warehouse (
)WITH (FILLFACTOR=80) DISTRIBUTE BY hash(w_id);
create table bmsql_district (
)WITH (FILLFACTOR=80) DISTRIBUTE BY hash(d_w_id);
create table bmsql_customer (
c_credit_lim decimal(12,2),
c_ytd_payment decimal(12,2),
)WITH (FILLFACTOR=80) DISTRIBUTE BY hash(c_w_id);
create sequence bmsql_hist_id_seq cache 1000;
create table bmsql_history (
)WITH (FILLFACTOR=80) DISTRIBUTE BY hash(h_w_id);
create table bmsql_new_order (
no_w_id integer not null,
no_d_id integer not null,
)WITH (FILLFACTOR=80) DISTRIBUTE BY hash(no_w_id);
create table bmsql_oorder (
)WITH (FILLFACTOR=80) DISTRIBUTE BY hash(o_w_id);
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,
)WITH (FILLFACTOR=80) DISTRIBUTE BY hash(ol_w_id);
create table bmsql_item (
) DISTRIBUTE BY REPLICATION;
create table bmsql_stock (
)WITH (FILLFACTOR=80) DISTRIBUTE BY hash(s_w_id);
六、测试指标
流量指标(Throughput,简称tpmC):按照TPC组织的定义,流量指标描述了系统在执行支付操作、订单状态查询、发货和库存状态查询这4种交易的同时,每分钟可以处理多少个新订单交易。所有交易的响应时间必须满足TPC-C测试规范的要求,且各种交易数量所占的比例也应该满足TPC-C测试规范的要求。在这种情况下,流量指标值越大说明系统的联机事务处理能力越高。
七、性能评估实战
1、配置benchmarksql
unzip benchmarksql-5.0.zip
将Gaussdb JDBC连接驱动放置在/lib/postgres目录下
2、 配置压测参数
填写JDBC连接串内容、指定压测数据库、数据库会话用户密码等关键信息,并制定warehouses=100,loadworkers-10,运行压测的时间为30分钟。
3、生成压测数据
使用./runDatabaseBuild.sh props.pg语句启动测试,自动生成并创建表定义,主键外键等信息。
4、进行性能压测
使用在./runDatabaseBuild.sh props.pg命令,进行压力测试,30分钟后获得以下数据:
由上面得知,在过去30分钟里,该数据库一共处理了596万笔交易,TPM总和参数tpmTOTAL(TPS)为198665.06。此数据可以评估云上数据库的OLTP处理能力,具有非常实际的意义,为数据库上云的评估提供重要参考。
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!