为什么你的pgbouncer连接这么慢

在PostgreSQL中;说得连接池,立马想到pgbouncer。pgbouncer 的目标是降低因为新建到 PostgreSQL/Greenplum 的连接而导致的性能损失。

在项目中;DBA会劝开发人员使用连接池。这样可以控制连接数。也避免反复建立连接带来的性能消耗。对连接池的优点。这篇文章讲解比较好。

但是在开发人员在使用连接池的过程中,一般开发人员那边也有自己的jdbc的连接池。在启动项目的过程;于是出现下面这段对话

开发人员:这项目启动好慢;原因是连接数据库好慢。

DBA:这项目启动时申请多少数据库连接。

开发人员:没多少;也就50。峰值不会超过400。

DBA:直连数据库会慢吗?

开发人员:不会,启动很快。

连接池pgbouncer是一个针对PostgreSQL数据库的轻量级连接池。但是单线程的。我观察在启动的过程中;连接数是一条一条增加的。并不是你需要多少就给多少

[postgres@bogon pgbouncer]$ ps -ef | grep postgres | grep 127 |wc -l
44
[postgres@bogon pgbouncer]$ ps -ef | grep postgres | grep 127 |wc -l
45
[postgres@bogon pgbouncer]$ ps -ef | grep postgres | grep 127 |wc -l
46
[postgres@bogon pgbouncer]$ ps -ef | grep postgres | grep 127 |wc -l
47
[postgres@bogon pgbouncer]$ ps -ef | grep postgres | grep 127 |wc -l
47
[postgres@bogon pgbouncer]$ ps -ef | grep postgres | grep 127 |wc -l
49
[postgres@bogon pgbouncer]$ ps -ef | grep postgres | grep 127 |wc -l
49
[postgres@bogon pgbouncer]$ ps -ef | grep postgres | grep 127 |wc -l
49
[postgres@bogon pgbouncer]$ ps -ef | grep postgres | grep 127 |wc -l
49
[postgres@bogon pgbouncer]$ ps -ef | grep postgres | grep 127 |wc -l
50

若是这样的话;那我们知道为什么项目通过pgbouncer启动很慢了。
若我们提前申请一批连接资源做为idle。等项目启动的时候直接可以用不久解决了,说干就干。

在pgbouncer的配置文件中设置

min_pool_size = 50

__EOF__

本文作者lottu
本文链接https://www.cnblogs.com/lottu/p/14297868.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   lottu  阅读(496)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示