Francesco Tisiot:如何使用pgbench测试PostgreSQL®性能

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

本文介绍了使用pgbench工具对PostgreSQL数据库进行性能测试的方法,包括安装和创建测试环境,初始化数据库并执行测试,更改参数并验证新的性能,以及使用自定义SQL文件定义自定义工作负载。还提到了使用Aiven和其AI洞察力来优化数据库的方法。

🔎

延伸解读

pgbench 基准测试的关键参数解析

初始化时,-s 指定缩放因子,默认1生成约16MB数据,设为100则生成约1.6GB数据,影响测试数据量。执行测试时,-c 指定客户端连接数,-j 指定pgbench线程数,-t 指定总事务数。文中示例使用5客户端、5线程、1000事务,得到约28 TPS的基准。合理设置这些参数可模拟不同负载,但需注意客户端和线程数不宜超过数据库处理能力。

调整共享缓冲区对性能的影响

文章通过将PostgreSQL服务的共享缓冲区从默认值提升至总内存的60%,在相同pgbench命令下,TPS从约28提升至36。这表明增加共享缓冲区可减少磁盘I/O,提升事务处理速度。但调整需谨慎,过度分配可能影响系统稳定性。此例展示了参数调优对性能的直接影响,可作为优化起点。

自定义工作负载与索引优化效果

使用-f参数可执行自定义SQL文件,文中示例查询pgbench_accounts表,初始TPS仅0.47。Aiven的AI洞察建议在bid列创建索引,创建后TPS飙升至35,提升约74倍。这凸显了针对特定查询模式创建索引的重要性,也说明自定义工作负载能更真实地反映实际应用性能,帮助发现优化点。

❓

Q&A

如何在Mac上安装pgbench工具?

在Mac上,只需通过brew安装PostgreSQL即可获得pgbench工具。

如何初始化PostgreSQL数据库以进行pgbench测试?

从Aiven控制台获取连接详情后,使用pgbench命令初始化数据库,命令格式为:pgbench -h <HOST> -p <PORT> -U <USER> -i -s <SCALEFACTOR> <DBNAME>。

如何执行pgbench测试以设定性能基准?

使用pgbench命令,指定客户端数量和事务数量,例如:pgbench -h <HOST> -p <PORT> -U <USER> -c 5 -j 5 -t 1000 <DBNAME>。

如何通过pgbench自定义工作负载?

可以创建一个SQL文件并使用pgbench -f标志调用它,例如:pgbench -h <HOST> -p <PORT> -U <USER> -c 5 -j 5 -t 1000 -f test.sql <DBNAME>。

如何优化PostgreSQL数据库的性能?

可以通过Aiven提供的自动化洞察和建议来优化数据库,例如添加索引以提高查询性能。

pgbench的主要功能是什么?

pgbench是一个用于压力测试PostgreSQL数据库的工具,可以用于本地或远程数据库的性能测试。

🏷️

标签

➡️

继续阅读