Richard Yen:期待 PG Summit 2026
内容提要
作者将在PG Summit 2026演讲,主题是用Postgres做硬件基准测试。他指出,测磁盘或CPU应使用fio等专用工具,而Postgres基准测试目标不同:涉及内存、并发、缓存、WAL、检查点和自动清理等复杂因素,短时测试无法反映真实生产表现。关键问题不是硬件多快,而是特定工作负载能否稳定运行、何时停止扩展、首先遇到什么瓶颈。可信测试需足够长、可重复,并记录配置、数据集和验收标准。
延伸解读
Postgres 基准测试与硬件测试的本质区别
文章强调,用 Postgres 做基准测试并非为了复现硬件标称速度。例如三星 990 EVO Plus 标称读写 7,150/6,300MB/s,但真实 Postgres 集群很难达到。因为 Postgres 是包含内存、并发、缓存、WAL、检查点、后台工作进程和维护任务的复杂系统,短时测试只能捕捉到系统“热”且快的一小部分,无法反映生产环境的真实表现。
短时测试的盲区与生产复杂性
十秒的基准测试可能错过自动清理带来的额外工作、检查点引发的 I/O 突发、高并发下的锁竞争或连接数限制,以及缓存状态变化对结果的影响。这些因素不是噪声,而是数据库运行的一部分。因此,用 Postgres 对硬件做干净的性能声明非常困难,必须考虑这些相互交织的变量。
提出正确的问题:从峰值到可扩展性
有用的提问不是“这块 SSD 有多快”,而是“这个工作负载能否在系统上可接受地运行,以及系统还能承受多少”。定义工作负载是第一步:是大量小事务的 OLTP,还是大扫描和连接的分析型?还是宽 JSON 文档、高压缩值或高写入量?通过逐步调优和监控,观察吞吐何时停止扩展、延迟何时违反目标、哪个资源先饱和,从而理解数据库整体能力,并指导后续决策。
可信基准测试的要素与后续行动
可信的基准测试需要运行足够长以包含若干自动清理和检查点周期,并且可重复。应记录配置、数据集、客户端位置、预热期、测量窗口和验收标准。还要测试系统过载后能否恢复,还是停留在降级状态。严格硬件测试应单独用 fio 等工具进行。Postgres 基准测试的目标是理解特定工作负载能否运行、在哪里停止扩展、首先遇到什么瓶颈,并据此决定调优、重新设计或更换硬件。
Q&A
PG Summit 2026 上 Richard Yen 的演讲主题是什么?
演讲主题是用 Postgres 做硬件基准测试,分享他多年积累的技巧和经验。
为什么不能用 Postgres 来测试磁盘或 CPU 的原始性能?
因为 Postgres 是一个复杂系统,涉及内存、并发、缓存、WAL、检查点、后台工作进程和维护等多种因素,短时测试只能反映系统的一小部分,无法代表真实生产表现。
做 Postgres 基准测试时应该问哪些关键问题?
关键问题不是“这个 SSD 有多快”,而是“这个工作负载能否在系统上可接受地运行,以及系统还能处理多少这样的负载”。
一个可信的 Postgres 基准测试需要满足哪些条件?
需要运行足够长以包含几个 autovacuum 和检查点周期,必须可重复,并记录配置、数据集、客户端位置、预热期、测量窗口和验收标准,还要测试系统过载后能否恢复。
在 Postgres 基准测试中,如何确定系统的瓶颈?
通过逐步调整参数并监控不同因素,观察吞吐量何时停止扩展、延迟何时违反目标或某个资源何时饱和,首先遇到的瓶颈能指导下一步行动。
Richard Yen 在演讲中会涉及哪些具体工具或内容?
他会深入讲解 HammerDB、pgbench、工作负载设计以及帮助识别真正瓶颈的证据。