pgbench是一种在PostgreSQL上运行基准测试的简单程序。它可能在并发的数据库会话中一遍一遍地运行相同序列的 SQL 命令,并且计算平均事务率(每秒的事务数)。默认情况下,pgbench会测试一种基于 TPC-B 但是要更宽松的场景,其中在每个事务中涉及五个SELECT、UPDATE以及INSERT命令。但是,通过编写自己的事务脚本文件很容易用来测试其他情况。
pgbench -i [option...] [dbname]
注意:pgbench -i会创建四个表pgbench_accounts、 pgbench_branches、pgbench_history以及pgbench_tellers,如果同名表已经存在会被先删除。如果你已经有同名表,一定注意要使用另一个数据库!
在默认的情况下“比例因子”为 1,这些表初始包含的行数为:
table # of rows
---------------------------------
pgbench_branches 1
pgbench_tellers 10
pgbench_accounts 100000
pgbench_history 0
说白了,pgbench主要是给开发pg软件和专门测试pg软件的部门或团队使用的,来证明pg拥有的能力。
可以模拟多个客户端,每个客户端的事务数,针对每一个事务新建连接而不是客户端,按照指定速率执行事务等等。
另外pgbench在测试过程中,会产生wal日志和增大数据库的大小。如果有需求,可以通过pgbench轻易实现。
pgbench -i pgbench
# 如果端口号有变化,需要先手动创建数据库,再执行。
pgbench -i -s 10 -p 5433 pgbench
-i:初始化模式,-s 插入的倍数,默认是1,即插入100000条(执行多少次)
1) 创建名为pgbench数据库:create database pgbench
2) 初始化测试数据[postgres@pg2 ~]$ pgbench -i -s 500 -h localhost -d pgbench
然而大多数使用pg的产品中,对pg的测试用不到pgpgbench,这也是为什么非pg的研发团队所知悉的工具。
对于非pg的研发团队,怎么测试pg?有好的工具可以推荐给我,等你来。
网友评论