postgresql压力测试工具用法以及参数解读
// TPC-B测试模型的初始化数据参数. Initialization options: -i invokes initialization mode //初始化参数 -F NUM fill factor -n do not run VACUUM after initialization // 使用自定义测试模型时, 请带上这个参数. -q quiet logging (one message each 5 seconds) -s NUM scaling factor --foreign-keys create foreign key constraints between tables //表之间添加主外键;更加贴近线上环境 -index-tablespace=TABLESPACE create indexes in the specified tablespace --tablespace=TABLESPACE create tables in the specified tablespace --unlogged-tables create tables as unlogged tables // 压力测试相关参数 Benchmarking options: -c NUM number of concurrent database clients (default: 1) // 指定pgbench连接到数据库的连接数 -C establish new connection for each transaction // 是否使用短连接 -D VARNAME=VALUE // 设置变量, 在自定义脚本中使用:varname 引用. 可使用多个-D设置多个变量. -f FILENAME read transaction script from FILENAME // 指定自定义的测试文件(由元命令和SQL组成), 可使用多个-f 指定多个文件, 每个文件作为一个事务, 每次执行事务时随机选择一个文件执行. -j NUM number of threads (default: 1) // pgbench的工作线程. 为-c一起用;为-c的约数 -l write transaction times to log file // 开启事务统计, 输出文件名格式pgbench_log.$PID.$threadID , (当-j >= 2时, threadID从1开始) -M simple|extended|prepared // libpq接口 default: simple -n do not run VACUUM before tests // vacuum开关, 使用自定义文件时, 使用-n关闭vacuum. -N do not update tables "pgbench_tellers" and "pgbench_branches" // TPC-B 非默认测试模式, 少两个表的更新. -r report average latency per command // 报告测试文件中每条命令(包括元命令和SQL)的平均执行延迟. -s NUM report this scale factor in output // 使用自定义脚本测试时, 指定scale的输出. 没有实质意义. -S perform SELECT-only transactions // TPC-B 非默认测试模式, 只查询. -t NUM number of transactions each client runs (default: 10) // 指定每个连接的执行事务数. -T NUM duration of benchmark test in seconds // 指定总的压力测试时间. 与-t不能同时使用. -v vacuum all four standard tables before tests // 测试前先vacuum 4个和tpc-b相关的表. --aggregate-interval=NUM // 输出聚合后的事务统计信息. 与-l连用 //Common options: -d, --debug print debugging output -h, --host=HOSTNAME database server host or socket directory -p, --port=PORT database server port number -U, --username=USERNAME connect as specified database user -V, --version output version information, then exit -?, --help show this help, then exit
一 初始化;这里我使用了自己的数据库mydb;数据用户lottu
pgbench -i -s --foreign-keys --unlogged-tables -U lottu mydb
操作之后会在数据库里面生成下面的表
mydb=> \dt pgbench*
List of relations
Schema | Name | Type | Owner
--------+------------------+-------+-------
public | pgbench_accounts | table | lottu
public | pgbench_branches | table | lottu
public | pgbench_history | table | lottu
public | pgbench_tellers | table | lottu
( rows)
二 压力测试演示
-U lottu mydb
starting vacuum...end. --默认是非n模式
transaction type: TPC-B (sort of)
scaling factor: --跟上面初始化-s 10一致的
query mode: prepared -- -M prepared 默认为simple
--客户端连接有10个 -c 10
--线程为2个 -j2
duration: s --时间为10s -T 10
latency average: 0.681 ms
tps = 14687.531247 (including connections establishing)
tps = 14690.762892 (excluding connections establishing)
statement latencies in milliseconds:
* :scale
* :scale
* :scale
:naccounts
:nbranches
:ntellers
0.034427 BEGIN;
0.094350 UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
0.064211 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
0.110995 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
0.154680 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;
0.155552 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
0.052141 END;
--使用-l参数结合 --aggregate-interval 演示
[postgres@sdserver40_210 ~]$ pgbench -M extended --aggregate-interval 2 -l -c 2 -j 2 -T 10 -U lottu mydb
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor:
query mode: extended
duration: s
latency average: 0.884 ms
tps = 2261.073893 (including connections establishing)
tps = 2261.413071 (excluding connections establishing)
--这样会生成文件
*
-rw-rw-r-- 1 postgres postgres 211 Jun 28 16:37 pgbench_log.5160
-rw-rw-r-- 1 postgres postgres 210 Jun 28 16:37 pgbench_log.5160.1
查看文件内容可以判断测试结果!
这5列分别代表
interval_start // epoch时间, 指这个统计段的开始时间.
num_of_transactions // 这个统计段运行了多少个"事务", 指独立的文件运行次数.
latency_sum // 这个统计段的事务执行总耗时, 单位微秒.
latency_2_sum // 这个统计段的事务执行耗时平方的总和, 单位微秒.
min_latency // 这个统计段内, 单个事务的最小耗时.
max_latency // 这个统计段内, 单个事务的最大耗时.
--参考德哥视频讲解
postgresql压力测试工具用法以及参数解读的更多相关文章
- sysbench压力测试工具安装和参数介绍
一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL. ...
- Linux压力测试工具stress的参数详解
为了测试服务器的负载情况,可以使用stress这个压力测试工具,可以在环境上验证测试下. stress安装 sudo yum install -y epel-release sudo yum inst ...
- sysbench压力测试工具简介和使用(一)
sysbench压力测试工具安装和参数介绍 一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据 ...
- Apache自带压力测试工具ab用法简介
ab命令原理 ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL进行访问.它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx.lighthttp ...
- 压力测试工具siege的用法
Siege是linux下的一个web系统的压力测试工具,支持多链接,支持get和post请求,可以对web系统进行多并发下持续请求的压力测试. 安装 Siege 01 02 03 04 #wget h ...
- [转载]压力测试工具siege的用法
压力测试工具siege 原文:http://blog.csdn.net/qingye2008/article/details/34500949 Siege是Linux下的一个web系统的压力测试工具, ...
- 九款Web服务器性能压力测试工具
一.http_load 程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会 ...
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...
- [转] CentOS单独安装Apache Benchmark压力测试工具的办法
Apache安装包中自带的压力测试工具 Apache Benchmark(简称ab) 简单易用,这里就采用 ab作为压力测试工具了. 1.独立安装 ab运行需要依赖apr-util包,安装命令为: 1 ...
随机推荐
- JDK和Tomcat的安装与配置
1 JDK的安装 2 JDK的配置 3 JDK安装成功的验证 4 Tomcat的安装 (1) 解压” apache-tomcat-6.0.35. ...
- Thinkphp关闭缓存方法总结(转)
ThinkPHP在数据缓存方面包括文件方式.共享内存方式和数据库方式在内的多种方式进行缓存,通过插件方式还可以增加以后需要的缓存类,让应用开发可以选择更加适合自己的缓存方式,从而有效地提高应用执行效率 ...
- 转:CDC,CPaintDC,CClientDC,CWindowDC区别
http://www.cnblogs.com/songsu/articles/1350014.html
- spring 依赖注入 小结
通过 @Autoiwired注解 和接口 注入实现这个接口的实现类 的 类 也必须是 可注入的(必须归spring容器所管理)
- Java基础之处理事件——应用程序中的语义事件监听器(Sketcher 5 with element color listeners)
控制台程序. 为了标识元素的类型,可以为菜单已提供的4中元素定义常量,用作ID.这有助于执行菜单项监听器的操作,还提供了一种标识颜色类型的方式.我们会累积许多应用程序范围的常量,所以把它们定义为可以静 ...
- Beyond Compare
Beyond Compare是一个比较文件和文件夹的工具. 它可以帮助你找到并协调源代码.文件夹.图像和数据间的差异,即使包括zip文档中或者FTP站点上的文件. 另外它还可以同步化文件夹并验证不 ...
- iOS 提交代码出现提示弹出框显示 “A commit message is required to perform this operation.Enter a commit message and try again.“
需要你写一下你确认提交的信息,就是你这次提交上去修改了什么功能,简单描述一下
- java系统时间的调用和格式转换
java在java.text java.util java.lang包中查找 import java.util.*; import java.text.*; public class Text ...
- FAQ: c++ 函数名后添加 const void function1(int &id) const
说明这个函数不能修改这个类的成员变量!只能操作自己的参数和内部的范围变量! 括号内的&id,&表示这个变量和C# in和out是一样的,算是一个reference,可以更改值,要想不更 ...
- 夺命雷公狗---DEDECMS----29dedecms热门大片的完成
我们要完成的是热门大片的显示,如下所示: 热门大片,这一般都是按照浏览量高的放前面的而已,我们先来查查手册,如下所示: 这里发现我们的arclist标签里面的orderby和orderway完全可以实 ...