文档章节

PgBouncer简单测试

有理想的猪
 有理想的猪
发布于 2015/12/08 16:12
字数 700
阅读 178
收藏 2

测试环境,笔记本 4核8线程 16G内存,PostgreSQL v9.4.5取自EDB

默认参数测试(shared_buffer 128M)

1、初始化

./pgbench -i -s 1000 postgres

开始时没有计时,整个过程大约10分钟左右,执行完毕之后data目录有15.8G

2、测试PostgreSQL

我们启用64个会话8线程,每个会话完成6个事务后退出

[quanzl@bogon bin]$ ./pgbench -j 8 -c 64 -t 6 postgres -p 5432
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1000
query mode: simple
number of clients: 64
number of threads: 8
number of transactions per client: 6
number of transactions actually processed: 384/384
latency average: 0.000 ms
tps = 174.962183 (including connections establishing)
tps = 176.286241 (excluding connections establishing)
[quanzl@bogon bin]$

这是我取到的最低结果,正常结果在180出头,偶尔到过190以上,从没有超过200。

2、测试PgBouncer

[quanzl@bogon bin]$ ./pgbench -j 8 -c 64 -t 6 popo1 -p 5431
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1000
query mode: simple
number of clients: 64
number of threads: 8
number of transactions per client: 6
number of transactions actually processed: 384/384
latency average: 0.000 ms
tps = 214.251520 (including connections establishing)
tps = 214.912432 (excluding connections establishing)
[quanzl@bogon bin]$

同样是最低结果,最高到过232,大部分结果是220多,可以看出提升还是很明显的。

提升缓存测试(shared_buffer 1G)

1、PostgreSQL 测试方法同上

[quanzl@bogon bin]$ ./pgbench -j 8 -c 64 -t 6 postgres -p 5432
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1000
query mode: simple
number of clients: 64
number of threads: 8
number of transactions per client: 6
number of transactions actually processed: 384/384
latency average: 0.000 ms
tps = 184.817262 (including connections establishing)
tps = 186.272290 (excluding connections establishing)
[quanzl@bogon bin]$

同样是最低值,其他依次为:

tps = 199.936374 (including connections establishing)
tps = 201.550601 (excluding connections establishing)
tps = 208.001447 (including connections establishing)
tps = 209.930247 (excluding connections establishing)
tps = 190.078591 (including connections establishing)
tps = 191.643495 (excluding connections establishing)
tps = 217.580382 (including connections establishing)
tps = 219.527798 (excluding connections establishing)
tps = 196.842624 (including connections establishing)
tps = 198.330960 (excluding connections establishing)
tps = 214.633296 (including connections establishing)
tps = 216.626217 (excluding connections establishing)

2、PgBouncer 测试方法同上

[quanzl@bogon bin]$ ./pgbench -j 8 -c 64 -t 6 popo1 -p 5431
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1000
query mode: simple
number of clients: 64
number of threads: 8
number of transactions per client: 6
number of transactions actually processed: 384/384
latency average: 0.000 ms
tps = 225.172794 (including connections establishing)
tps = 225.775740 (excluding connections establishing)
[quanzl@bogon bin]$
tps = 197.430422 (including connections establishing)
tps = 197.920393 (excluding connections establishing)

上边是最高与最低值,在大缓存、数据库体积与内存相当的情况下,整体来说已经没有什么提升。

重新初始化数据库,生成10倍数据量

因为是笔记本硬盘,初始化几乎三个小时

工作太多,没有记录结果,效果也是有的,提升幅度跟上边的测试差不多。

最大的差距

来自 -C 参数,每个事务分配一个新连接,这时候PG fork进程带来的额外系统开支影响非常明显,性能差距2倍以上。


© 著作权归作者所有

有理想的猪
粉丝 137
博文 120
码字总数 50661
作品 0
红挢
高级程序员
私信 提问
加载中

评论(2)

乌龟壳
乌龟壳
看错了13
乌龟壳
乌龟壳
为什么PgBouncer要和单机的数据库一起测试呢?按我的理解这个是给多台实时同步的数据库作读操作的负载均衡用的。
PostgreSQL sharding : citus 系列5 - worker节点网络优化

标签 PostgreSQL , citus , pgbouncer , 网络优化 , worker节点 背景 citus 节点间的网络需求: 1、cn节点访问所有worker节点。oltp业务的访问较频繁。 2、重分布数据时,worker节点间相互访...

德哥
04/14
0
0
安装配置PgBouncer for PostgreSQL

PgBouncer连接池来自于PostgreSQL社区,它可以为多个数据库管理连接池,并且这些数据库可以位于不同的PostgreSQL后端。PgBouncer会为每一种数据库用户与数据库的组合建立一个池。一个被池化的...

candon123
2018/12/13
0
0
PostgreSQL连接池pgbouncer的使用

今天在虚拟机上整理了下pgbouncer的安装使用过程,记录如下。 说明:pgbouncer是一款轻量级针对postgresql的数据库连接工具,可以对客户端的连接做限制,防止恶意连接,另外也可以减少数据库...

kenyon_君羊
2012/08/21
8.7K
10
PostgreSQL连接池pgbouncer程序连接报错解决一例

昨晚对一个应用做了模拟压测,用最新版pgbouncer时发现了一些问题。 底层环境: OS:CentOS 6 DB:Postgres 9.1.2 Pool:pgbouncer 1.5.4 pgbouncer的配置脚本: [root@kenyon config]# more p...

kenyon_君羊
2012/12/13
1K
8
repmgr实现pg流复制失效自动切换

本次测试中用到的配置及脚本见:https://github.com/lxgithub/repmgrconfscripts 一、系统 IP HOSTNAME PG VERSION DIR OS192.168.100.146 node1 9.3.4 /opt/pgsql CentOS6.4_x64192.168.100......

LIAN-SA
2014/04/18
5.6K
3

没有更多内容

加载失败,请刷新页面

加载更多

让《强化学习(第2版)》架起一座通往强化学习经典知识宝库的桥梁

上交大计算科学与工程系俞凯教授,5分钟口述讲解,带你快速认识了解年度重磅图书《强化学习(第二版)》! 在 AlphaGo战胜李世石之后,AlphaZero以其完全凭借自我学习超越人类在各种棋类游戏...

博文视点Bv
15分钟前
5
0
TLA7-EVM开发板的处理器、NOR FLASH、DDR3

TLA7-EVM开发板是一款由广州创龙基于Xilinx Artix-7系列FPGA自主研发的核心板+底板方式的开发板,可快速评估FPGA性能。核心板尺寸仅70mm*50mm,底板采用沉金无铅工艺的6层板设计,专业的PCB...

Tronlong创龙
23分钟前
4
0
UUID的变种-有序

为了解决UUID无序的问题,NHibernate在其主键生成方式中提供了Comb算法(combined guid/timestamp)。保留GUID的10个字节,用另6个字节表示GUID生成的时间(DateTime)。 /// <summary> //...

Canaan_
24分钟前
4
0
Netty学习(6)——通道间数据传输

1. FileChannel实现通道间的数据传输 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel传输到另外一个channel。 transferFrom() FileChannel的transferF...

江左煤郎
27分钟前
3
0
AngularDOM操作

gtandsn
28分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部