EDB博客

如何使用HammerDB开源工具对PostgreSQL进行基准测试

四月

如何使用HammerDB开源工具对PostgreSQL进行基准测试

本文讨论如何使用开源工具HammerDB作为使用pgbench的替代方法执行基准测试。

  • 硬件规格
  • 操作系统配置
  • PostgreSQL配置
  • 标杆规范
  • 基准测试结果

用于对PostgreSQL进行基准测试的标准工具是pgbench。较早的帖子我们讨论了如何使用此工具调整和基准化PostgreSQL,尽管pgbench根据文件资料pgbench测试一个基于TPC B的松散场景。TPC理事会TPC B不能反映任何真正的在线事务处理OLTP场景,这意味着它是压力测试工具。当使用默认脚本完成pgbench测试时,服务器会受到大量类似且短暂的事务的轰炸,这些事务最终会被提交

PostgreSQL的TPC C基准测试

TPC C基准由于其多种事务类型而更加复杂,因为数据库和总体执行结构更为复杂。它已由TPC理事会批准为OLTP基准。该基准涉及在线执行或排队等待延迟执行的五个不同类型和复杂性的并发事务的混合在本文中,我们将讨论如何使用广泛接受的开源基准测试工具在PostgreSQL上进行TPC C基准测试HammerDBHammerDB变得如此流行,以至于开源项目现在由TPC C理事会托管。GitHub资料库

硬件规格

为了进行测试,我们使用了具有以下规格的独立系统

架构x CPU op模式s位比特字节顺序Little Endian CPU的在线CPU列表每个核心的线程核心每个套接字Socket NUMA节点型号名称Intel R Xeon R CPU E GHz L d缓存KL i缓存KL缓存KL缓存内存GB

操作系统配置

这是我们用于测试的操作系统规范

操作系统CentOS x数据磁盘调度程序mq截止日期数据磁盘预读MB透明已启用的巨大碎片错误的碎片整理false文件系统数据ext wal ext vm nr hugepages vm swappiness net core somaxconn vm max map count

PostgreSQL配置

我们还需要调整PostgreSQL参数以获得更好的性能。您可以在与以下内容相关的PostgreSQL文档中找到这些参数的详细信息:资源消耗连接和身份验证预写日志

共享缓冲区GB最大连接数最小沃尔玛大小GB最大沃尔玛大小GB检查点超时秒数维护工作mem GB检查点完成目标有效io并发性对wal压缩的日志检查点进行同步提交

标杆规范

我们已经从GitHub存储库安装了HammerDB,这是在运行中的PostgreSQL服务器中加载TPC C数据仓库的脚本

cat pgschemabuild tcl将SETTING CONFIGURATION全局完成proc等待完成,全局完成set complete vucomplete如果在等待完成之后完成,否则退出dbset db pg pg diset连接pg主机localhost diset连接pg端口diset tpcc pg计数ware diset tpcc pg num vu diset tpcc pg分区false diset tpcc pg超级用户postgres diset tpcc pg superuserpass postgres diset tpcc pg defaultdbase postgres diset tpcc pg用户tpcc diset tpcc pg传递tpcc diset tpcc pg dbase tpcc打印dict buildschema等待完成

并且我们已经如下配置了测试脚本

cat pgrun tcl bin tclsh proc runtimer seconds set x set timerstop while timerstop incr x if expr x set y expr x puts之后,如果vucomplete x eq seconds set timerstop return puts经过了y分钟更新SETTING CONFIGURATION dbset db pg pg diset connection pg host本地主机diset连接pg端口diset tpcc pg驱动程序计时的diset tpcc pg斜升的diset tpcc pg持续时间tet tpcc pg真空true打印dict vuset logtotemp loadscripts puts SEQUENCE STARTED foreach z puts puts VU TEST vuset vu z vucreate vurun runtimer vudestroy在puts TEST SEQUENCE之后退出

我们已经创建了一些脚本来自动化HammerDB基准测试工作,它们可以在EnterpriseDB GitHub存储库

带有HammerDB结果的PostgreSQL基准测试

如前所述,我们已经对仓库进行了TPC C测试,测试持续时间为分钟,加速时间为分钟。所有读数均取为三个运行的中值

NOPM代表每分钟的订单数,而TPM代表每分钟的交易TPM包括已承诺和回滚的交易根据HammerDB准则,TPM和NOPM之间应该有一个接近的比率实际上,任何差异都将表明测试设置中存在一些错误从结果中可以看出,随着客户端数量的增加,PG与更高版本的PostgreSQL之间存在巨大的性能差异。事实上,PG的曲线沿x轴加深,而更高版本的曲线却不受PostgreSQL的影响。客户数量

在我们的以前的基准测试职位我们总结了一些潜在的贡献,这些贡献可能有助于从PG到更高版本的性能提升。此处的结果也表明了这些性能的改进。作为我们未来的工作,我们想探索更高版本的瓶颈,这些瓶颈限制了曲线的发展。随着我们增加客户数量而进一步发展

AmitKapila的图片

Amit Kapila强调数据库内部知识,是EDB的技术团队负责人。一年的数据库专家Amit在PostgreSQL Oracle和内存数据库方面拥有深厚的专业知识。他积极参与PostgreSQL的开发和审阅新功能,并且还是