tencent cloud

文档反馈

最后更新时间:2024-02-19 15:23:21

    测试说明

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

    测试环境

    云数据仓库 PostgreSQL 分为计算密集型存储密集型,其简单区别如下:
    计算密集型:底层硬件为 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. 云数据仓库 PostgreSQL 内置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,在云数据仓库 PostgreSQL 上实测可以达到更高的数据,不过需要调整一些配置,如下:
    参数
    说明
    log_statement
    none
    关闭 master 节点的日志输出
    gp_enable_fast_sri
    on
    提高单条 insert 的效率
    gp_enable_gpperfmon
    off
    关闭监控采样
    说明:
    1. 除上述配置外,还需关闭 master 的备节点以达到最佳性能。
    2. 上述配置主要用于测试云数据仓库 PostgreSQL 的极限性能,在实际生产环境中,不建议做上述修改。
    3. 由于目前云数据仓库 PostgreSQL 还未提供配置修改功能,用户如果希望进行测试,可以 联系我们 进行修改,修改后需要重启集群。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持