pgbench 获取事务执行平均时间
2013-08-28 00:00
148 查看
创建测试用数据库
初始化
测试开始
其中
-c 指定几个客户端同时执行测试脚本
-T 测试持续时间
-l 指定要输出日志,这个很重要,因为接下来需要用生成的日志来计算单事务执行时间
上一条命令里模拟了一个客户端持续10秒对数据库加负荷。由于我们使用的是默认测试脚本,每个测试事务里面都做了下面这些操作。
执行后,会在当前目录下生成日志文件,例如 pgbench_log.12345
里面大概是这个样子的内容
日志的格式是
其中第三个字段就是当前事务的执行时间(毫秒单位)
接下来使用awk来取得日志里面的单事务执行平均时间。
然后,改变pgbench命令里面的-c参数继续执行
我自己测试了客户端数为1 2 4 6 8 10,事务平均时间大概是这个样子。
客户端数 执行平均时间
1 1.04999
2 1.03188
4 1.21065
6 1.72745
8 2.42782
10 3.43816
另外,还可以用pgbench来模拟高并发场景来做性能测试。不过这个时候就需要自己写事务脚本了。用参数
详细使用方法还是要看官方文档滴pgbench
createdb pg_test
初始化
pgbench -i pg_test
测试开始
pgbench -c 1 -T 10 -l pg_test
其中
-c 指定几个客户端同时执行测试脚本
-T 测试持续时间
-l 指定要输出日志,这个很重要,因为接下来需要用生成的日志来计算单事务执行时间
上一条命令里模拟了一个客户端持续10秒对数据库加负荷。由于我们使用的是默认测试脚本,每个测试事务里面都做了下面这些操作。
BEGIN;
UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;
INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
END;
执行后,会在当前目录下生成日志文件,例如 pgbench_log.12345
里面大概是这个样子的内容
4 0 7793 0 1377672368 923621 8 0 9040 0 1377672368 924921 9 0 9708 0 1377672368 925599 4 1 2236 0 1377672368 925907 1 0 10820 0 1377672368 926610
日志的格式是
client_id transaction_no time file_no time_epoch time_us
其中第三个字段就是当前事务的执行时间(毫秒单位)
接下来使用awk来取得日志里面的单事务执行平均时间。
awk '{a+=($3/1000)} END{print a/NR}' pgbench_log.12345
然后,改变pgbench命令里面的-c参数继续执行
pgbench -c 2 -T 10 -l pg_test
我自己测试了客户端数为1 2 4 6 8 10,事务平均时间大概是这个样子。
客户端数 执行平均时间
1 1.04999
2 1.03188
4 1.21065
6 1.72745
8 2.42782
10 3.43816
另外,还可以用pgbench来模拟高并发场景来做性能测试。不过这个时候就需要自己写事务脚本了。用参数
-f来指定脚本文件。
详细使用方法还是要看官方文档滴pgbench
相关文章推荐
- Spring架构获取事务执行时间
- C++ 获取当前执行文件的最后编译时间 作为版本号build
- PHP获取页面执行时间的方法
- 获取焦点时,利用js定时器设定时间执行动作
- "无法修改表,超时时间已到" 增加设计器 事务的执行时限
- VC 获取函数执行时间GetTicketCount()
- PHP获取程序执行时间
- java获取程序执行时间
- Java获取程序执行时间
- 查询长事务和SQL执行等待间隔时间
- SQL中如何获取存储过程用return返回的值与判断SQL事务是否执行成功?
- 获取页面执行时间的几种方法(asp.net转)
- Linux获取进程执行时间
- linux c 时间函数,获取程序执行时间
- php获取目标函数执行时间示例
- 获取一段Javascript中调用函数的执行时间
- 如何获取C#中方法的执行时间以及其代码注入详解
- 获取语句执行时间的存储过程
- 获取下一次执行的时间