TPC-B

最近更新时间:2024-08-26 10:24:11

我的收藏

测试说明

腾讯云数据仓库 TCHouse-P 最新版本封装了 Greenplum 6.x 版本,相比于 5.x 版本,极大的改进了多并发场景下的增删改查能力,即 OLTP 能力,这些改进包括:
1. 合并 PostgreSQL 内核至9.4,引入 fastpath 等锁优化。
2. 提供全局死锁检测。
3. 优化全局事务。
Greenplum 官方采用 TPC-B 测试 6.x 的 OLTP 能力,因此腾讯云数据仓库 TCHouse-P 也采用此 benchmark 进行测试。

测试环境

腾讯云数据仓库 TCHouse-P 分为计算密集型存储密集型,其简单区别如下:
计算密集型:底层硬件为 SSD 盘,随机读写能力强,适合进行热数据分析,以及带有混合负载的场景。
存储密集型:底层硬件为 HDD 盘,随机读写能力一般,但是磁盘容量较大,适合存储分析较大规模的历史数据。
综上,测试 TPC-B,需要选择计算密集型机型,我们选择2个节点的 nc2.large。

测试工具

使用 PostgreSQL 自带的 pgbench 工具进行测试。
1. 如果测试环境是 CentOS 7.X,可以直接在此处下载已经编译好的工具 pgbench
2. 其它环境可以自行编译 PostgreSQL 或者直接安装二进制包,为了更好的兼容性,建议采用 PostgreSQL9.4 版本。

测试步骤

创建测试数据库

CREATE DATABASE pgbench;

修改查询优化器

ALTER DATABASE pgbench SET optimizer = off;
说明
1. 腾讯云数据仓库 TCHouse-P 内置2种查询优化器,GPORCA 和 Postgres Planner,其中 GPORCA 是默认的,适合复杂查询的解析;对于 OLTP 类型的查询,需要使用 Postgres Planner。
2. 该参数也支持 session 级别的设置,这里为了方便,直接在数据库级别设置,也就是对于该数据库的访问,都是使用 Postgres Planner,而其它数据库仍使用 GPORCA。

初始化测试数据

./pgbench -i pgbench -s 100 -p 5436 -h {host} -U {user} pgbench
说明
此处测试1000W的数据。

运行测试脚本

./pgbench -h {host} -p 5436 -r -n -c 32 -j 32 -T 120 -P 1 -U {user} pgbench

优化

根据 Greenplum 官方数据,6.x 在理想环境下能达到5000左右的 TPS,在腾讯云数据仓库 TCHouse-P上实测可以达到更高的数据,不过需要调整一些配置,如下:
参数
说明
log_statement
none
关闭 master 节点的日志输出
gp_enable_fast_sri
on
提高单条 insert 的效率
gp_enable_gpperfmon
off
关闭监控采样
说明
1. 除上述配置外,还需关闭 master 的备节点以达到更高性能。
2. 上述配置主要用于测试腾讯云数据仓库 TCHouse-P的极限性能,在实际生产环境中,不建议做上述修改。
3. 由于目前腾讯云数据仓库 TCHouse-P 还未提供配置修改功能,用户如果希望进行测试,可以 联系我们 进行修改,修改后需要重启集群。