PostgreSQL每日一贴-测试工具之pgbench

说明:标红的是没有翻译的

TPC:Transactionprocessing Performance Council  事务处理性能委员会

TPC-B:TPC-Bmeasures throughput in terms of how many transactions per second a system canperform

             测试一秒可以处理的事务个数

事务:在这个文档中的事务并不是指的数据库层面上的事务,而是指一系列SQL语句。

pgbench

名称

pgbench -- 在PostgreSQL中执行基准线测试

大纲

pgbench -i [option...] [dbname]

pgbench [option...] [dbname]

 

描述

      pgbench是一个用于在PostgreSQL数据库中运行基准测试的简单程序。pgbench在多个并发的数据库会话中反复运行一系列相同的SQL命令,并计算事务执行的平均速率(每秒执行的事务个数)。 pgbench默认测试的是一种基于TPC-B的松散的测试,即一个事务中包括5SELECT,UPDATEINSERT语句。同时允许基于开发者自己书写的事务脚本文件进行其他场景的测试。

      典型的pgbench输出如下:

transactiontype: TPC-B (sort of)
scaling factor: 10
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 1000
number of transactions actually processed: 10000/10000
tps = 85.184871 (including connections establishing)
tps = 85.296346 (excluding connections establishing)

      前六行显示了一些非常重要的参数。接下来显示的是已经完成的事务和预计应该执行的事务个数。这两个数值应该是相等的,如果不相等说明存在执行失败的情况(如果指定为-T模式,则只打印实际完成的事务数量)。最后两行显示的是每秒完成的事务数量(包含连接建立时间和不包含连接建立时间分别计算出的平均值)。

      默认的TPC-B-like事务测试需要预先设置特定的表。pgbench调用-i(初始化)选项来创建和填充这些表。在使用一个定制化脚本测试时,不需要调用-i选项初始化,但是需要对这个定制化脚本需要的表进行初始化。初始化过程类似如下:

pgbench -i [ other-options ] dbname

dbname用于指定一个可以用来测试的数据库的数据库名称。你可能需要指定-h,-p,-U等参数来连接数据库服务器。

 

注意

pgbench -i命令会创建四个表(pgbench_accounts, pgbench_branches, pgbench_history, pgbench_tellers),创建这几个表会执行对应表的删除动作。执行前应确认对应数据库中是否已经有这些表,是否会误删除。

      按照默认的比例因子1,这些表按如下行数初始化:

表名                            行数
---------------------------------
pgbench_branches       1
pgbench_tellers        
   10
pgbench_accounts       100000
pgbench_history        
  0

 

      可以通过指定-s(比例因子)参数来增加初始化时各表的行数。-F(填充因子)参数此时也可以同时使用。

      做了必要的设置后,就可以使用如下命令进行基准测试(不需要再使用-i参数)

      pgbench [ options ] dbname

      在几乎所有情况下,您将需要一些选项做出有用的测试。最重要的选项是-c(客户端数量),-t(事务数量),-T(时间限制)和-f(定制脚本)

      具体参数见下文的完整列表。

选项

      下面的选项分成三个不同类别,分别是使用在数据库初始化阶段,基准测试运行阶段或两个阶段都可以使用。

初始化选项

      pgbench接受以下命令行参数:

-i

--initialize

调用初始化模式.

-F fillfactor

--fillfactor=fillfactor

使用给出的填充因子创建pgbench_accountspgbench_tellerspgbench_branches等表.默认值是100.

-n

--no-vacuum

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值