在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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/251633.html
標籤:PostgreSQL
上一篇:SGA: allocation forcing component growth分析
下一篇:TiDB的樂觀鎖與悲觀鎖模式
