pgbench基准测试《postgresql》

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: pgbench是一种在PostgreSQL上运行基准测试的简单程序。它可能在并发的数据库会话中一遍一遍地运行相同序列的 SQL 命令,并且计算平均事务率(每秒的事务数)。默认情况下,pgbench会测试一种基于 TPC-B 但是要更宽松的场景,其中在每个事务中涉及五个SELECT、UPDATE以及INSERT命令。但是,通过编写自己的事务脚本文件很容易用来测试其他情况。

pgbench是一种在PostgreSQL上运行基准测试的简单程序。它可能在并发的数据库会话中一遍一遍地运行相同序列的 SQL 命令,并且计算平均事务率(每秒的事务数)。默认情况下,pgbench会测试一种基于 TPC-B 但是要更宽松的场景,其中在每个事务中涉及五个SELECT、UPDATE以及INSERT命令。但是,通过编写自己的事务脚本文件很容易用来测试其他情况。

1.修改pg_hba.conf

host  all    all    10.6.8.0/24    trust

systemctl status postgresql-13

2.测试

2.1初始化

[root@lys-mysql data]# /usr/pgsql-13/bin/pgbench  -i --unlogged-tables -s 2 -U user001 -p 5432 -d db001 -h 10.6.8.238
dropping old tables...
creating tables...
generating data (client-side)...
200000 of 200000 tuples (100%) done (elapsed 0.07 s, remaining 0.00 s)
vacuuming...
creating primary keys...
done in 0.57 s (drop tables 0.03 s, create tables 0.03 s, client-side generate 0.24 s, vacuum 0.14 s, primary keys 0.12 s).

2.2 执行压力测试

-M prepared表示绑定变量形式的调用SQL,-r表示报告测试文件中每条SQL的平均执行延迟,
-c 8表示模拟8个客户端,-j 2表示pgbench的工作线程是2个,
-T 10表示压力测试的时间是10秒,-l表示把事务统计写入log,其余的是postgres连接相关的参数
以上参数,也可以结合命令帮助看出来

/usr/pgsql-13/bin/pgbench -M prepared -r -c 8 -j 2 -T 10 -U user001 -h 10.6.8.238 -p 5432 -d db001 -l

执行结果

transaction type: <builtin: TPC-B (sort of)>
scaling factor: 2
query mode: prepared
number of clients: 8
number of threads: 2
duration: 10 s
number of transactions actually processed: 10945
latency average = 7.721 ms
tps = 1036.127306 (including connections establishing)
tps = 1036.693062 (excluding connections establishing)
statement latencies in milliseconds:
         0.017  \set aid random(1, 100000 * :scale)
         0.015  \set bid random(1, 1 * :scale)
         0.014  \set tid random(1, 10 * :scale)
         0.013  \set delta random(-5000, 5000)
         0.572  BEGIN;
         0.640  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
         0.649  SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
         1.214  UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
         3.341  UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;
         0.636  INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
         0.411  END;
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
12月前
|
存储 NoSQL 关系型数据库
PostgreSQL列存扩展hydra简单测试
Hydra是一款PostgreSQL的扩展,为PostgreSQL增加了列存引擎,使得PostgreSQL的olap性能大幅提升,本文介绍Hydra基本的使用方法。
|
5月前
|
SQL 关系型数据库 OLAP
PostgreSQL从小白到高手教程 - 第46讲:poc-tpch测试
PostgreSQL从小白到高手教程 - 第46讲:poc-tpch测试
142 3
|
5月前
|
关系型数据库 OLAP OLTP
PostgreSQL从小白到高手教程 - 第45讲:poc-tpcc测试
CUUG PostgreSQL技术大讲堂系列公开课第45讲-POC-TPCC测试的内容,往期视频及文档,请联系CUUG。
132 1
|
5月前
|
SQL 关系型数据库 PostgreSQL
PostgreSQL【部署 01】离线安装PostgreSQL+PostGIS踩坑及问题解决经验分享(含安装文件PostgreSQL+PostGIS及多个依赖+测试SQL)
PostgreSQL【部署 01】离线安装PostgreSQL+PostGIS踩坑及问题解决经验分享(含安装文件PostgreSQL+PostGIS及多个依赖+测试SQL)
496 0
|
5月前
|
SQL 关系型数据库 测试技术
postgresql|数据库|数据库测试工具pgbench之使用
postgresql|数据库|数据库测试工具pgbench之使用
215 0
|
5月前
|
关系型数据库 数据库 PostgreSQL
postgresql | 数据库| 生成2000W条的简单测试表
postgresql | 数据库| 生成2000W条的简单测试表
196 0
|
弹性计算 关系型数据库 OLAP
快速上手并跑通AnalyticDB PostgreSQL版TPC-H测试
本案例介绍如何创建AnalyticDB PostgreSQL实例、生成测试数据、建表、导入数据,并跑通TPC-H查询。
372 0
|
关系型数据库 测试技术 OLTP
沉浸式学习PostgreSQL|PolarDB 12: 如何快速构建 海量 逼真 测试数据
本文主要教大家怎么用好数据库, 而不是怎么运维管理数据库、怎么开发数据库内核.
352 0
|
关系型数据库 PostgreSQL
|
SQL 存储 关系型数据库
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
快速学习PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换
908 0
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
下一篇
无影云桌面