全部產品
Search
文件中心

ApsaraDB RDS:開啟或關閉串連池(PgBouncer)

更新時間:Aug 08, 2025

如果您的業務情境中存在大量短串連或需要頻繁建立和銷毀串連,建議開啟RDS PostgreSQL串連池功能。該功能通過複用資料庫連接,能夠顯著降低此類串連對執行個體效能的影響,並協助您更好地控制資料庫伺服器的負載和資源消耗。

功能簡介

RDS PostgreSQL的串連池功能基於開源組件PgBouncer實現。它作為應用程式和資料庫之間的中介軟體,負責管理和複用資料庫連接。

  • 串連複用:串連池優先嘗試複用現有串連,從而避免了頻繁建立和銷毀串連帶來的效能開銷,顯著降低資料庫伺服器的負載,並提升應用的響應速度與並發處理能力。

  • 資源控制:通過串連池可以限制最大用戶端串連數和最大空閑時間等,有效防止過多串連佔用系統資源。

前提條件

RDS PostgreSQL執行個體需滿足以下要求:

  • 執行個體大版本為PostgreSQL 11或以上。

  • 產品系列為基礎系列和高可用系列。

  • 計費方式為訂用帳戶或隨用隨付。

  • 執行個體核心小版本為20240830或以上,且尾碼不帶babelfish

    說明

    查看或升級核心小版本請參見升級核心小版本

計費說明

該功能免費。

注意事項

  • 開啟PgBouncer會分配新的PgBouncer連接埠(預設為6432),原資料庫連接埠(預設為5432)的直連訪問不受影響。關閉PgBouncer後,將無法再通過PgBouncer連接埠訪問執行個體,請確保業務程式已將串連連接埠改回執行個體原資料庫連接埠。

  • 開啟PgBouncer後,系統自動在postgres庫下安裝pgbouncer_fdw和dblink外掛程式以支援查看串連池監控指標,這些外掛程式暫不支援卸載。

  • 為執行個體開通SSL鏈路加密時,PgBouncer也會同步開啟SSL,但不支援將存取控制(ACL,Access Control List)配置為verify-ca或verify-full的串連驗證,也不支援通過用戶端憑證撤銷檔案

  • 對於包含複雜事務、需要追蹤資料庫串連狀態或使用特定PostgreSQL功能的應用程式,建議直接連接資料庫,而非使用PgBouncer。

  • 串連池的最大空閑時間預設為10分鐘,超過此時間長度的空閑串連將被關閉。此值當前不支援修改。

操作步驟

開啟或關閉串連池

  1. 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。

  2. 在左側導覽列單擊資料庫連接

  3. 單擊開啟PgBouncer關閉PgBouncer

  4. 在彈出的對話方塊中,單擊確定

  5. 開啟後,在資料庫連接頁面可以查看PgBouncer連接埠(預設為6432)。

    您可以通過單擊修改串連地址,在修改串連地址視窗中,選擇對應地址類型後,修改PgBouncer連接埠

通過串連池串連RDS PostgreSQL執行個體

開啟PgBouncer後,在應用程式或用戶端中串連執行個體時,將串連連接埠替換為PgBouncer連接埠(預設為6432)即可。其他串連參數(如地址、使用者名稱、密碼)保持不變,詳細的串連方法請參見串連PostgreSQL執行個體

修改串連池參數

開啟PgBouncer後,支援通過參數設定功能,修改PgBouncer的相關參數,調整串連池配置(如控制最大用戶端串連數)。

  • 開啟PgBouncer後才能通過參數設定功能查看和修改PgBouncer參數。

  • 如果想要通過參數模板來批量修改參數,則必須先開啟PgBouncer,然後再將參數模板應用到RDS PostgreSQL執行個體。

    預設參數模板為:PostgreSQL_PgBouncer_預設參數模板(rpg-sys-pgsql-pgbouncer)。

支援修改的參數及相關說明如下:

參數名

參數類型

預設值

描述

pgbouncer.pool_mode

string

transaction

串連池模式。

  • session:會話結束時回收串連。

  • transaction:事務結束時回收串連。

  • statement:查詢語句執行完後回收串連。

pgbouncer.default_pool_size

int

20

串連池預設允許串連數。

pgbouncer.max_client_conn

int

100

串連池允許的最大用戶端串連數。

pgbouncer.min_pool_size

int

0

串連池允許的最小用戶端串連數。

pgbouncer.query_wait_timeout

int

120

查詢在隊列中等待執行的最長時間(單位為秒),0表示無限等待。逾時後,用戶端將自動中斷連線。

pgbouncer.ignore_startup_parameters

string

"extra_float_digits"

需要串連池忽略的額外參數,多個參數使用英文逗號(,)分隔。

串連池預設僅處理核心參數(client_encoding、datestyle、timezone、standard_conforming_strings),其他參數將導致串連拒絕。如需支援額外參數,請在此處列出,串連池將自動忽略這些參數,以確保串連成功。

重要

添加其他參數時,建議保留extra_float_digits,以相容PostgreSQL JDBC串連。

pgbouncer.stats_users

string

""

允許串連到串連池虛擬庫並執行唯讀查詢的使用者列表,多個使用者用英文逗號(,)分隔。

更多參數說明請參見PgBouncer官方文檔

查看串連池監控指標

通過增強監控功能可以查看串連池的監控指標。只有開啟串連池功能後,才可以在增強監控中查看相關監控指標。

監控指標如下:

指標

含義

db.pgbouncer.client_connections.active

用戶端活躍串連數。

db.pgbouncer.client_connections.waiting

用戶端等待串連數。

db.pgbouncer.server_connections.active

服務端活躍串連數。

db.pgbouncer.server_connections.idle

服務端空閑串連數。

db.pgbouncer.total_pooled_connections

串連池總串連數。

db.pgbouncer.num_pools

串連池數量。

相關API

您可以調用ModifyDBInstanceConfig介面為RDS PostgreSQL執行個體開啟或關閉PgBouncer功能。需要配置的參數如下:

參數

說明

樣本值

DBInstanceId

待開啟或關閉PgBouncer功能的RDS PostgreSQL執行個體ID。

pgm-****

ConfigName

配置項名稱。

pgbouncer

ConfigValue

配置項取值。

  • true:開啟

  • false:關閉

true