Todos los productos
Search
Centro de documentos

ApsaraDB RDS:Enable or disable the connection pool (PgBouncer)

Última actualización: Sep 03, 2026

Si su aplicación crea muchas conexiones de corta duración o genera una alta rotación de conexiones, habilitar el pool de conexiones (PgBouncer) reduce la carga del servidor de base de datos y mejora el tiempo de respuesta. PgBouncer se sitúa entre su aplicación y ApsaraDB RDS for PostgreSQL, y reutiliza las conexiones de backend entre múltiples conexiones de cliente para evitar que la base de datos las abra y cierre repetidamente.

Cuándo usar el pool de conexiones

No todas las cargas de trabajo se benefician de PgBouncer. Utilice esta tabla para decidir si debe usar una conexión mediante pool o directa.

Escenario

Tipo de conexión

Razón

Funciones serverless o de borde

Mediante pool

Cada invocación crea una nueva conexión

Aplicaciones web con muchas solicitudes simultáneas

Mediante pool

Reduce la sobrecarga de conexión por solicitud

Alta rotación de conexiones por frameworks ORM

Mediante pool

Reutiliza las conexiones de backend

Migraciones de esquema

Directa

Las herramientas de migración pueden usar instrucciones SET o bloqueos asesores

Consultas analíticas de larga duración

Directa

Evita la contención en el pool

pg_dump o pg_restore

Directa

Usa instrucciones SET a nivel de sesión

Replicación lógica

Directa

Requiere una sesión persistente

Sentencias preparadas (en modo transacción)

Directa

No compatible con el pool de transacciones

Requisitos previos

Antes de empezar, asegúrese de que su instancia de ApsaraDB RDS for PostgreSQL cumpla con todos los siguientes requisitos:

  • Versión principal del motor: PostgreSQL 11 o posterior

  • Serie del producto: Basic Edition o High-availability Edition

  • Método de facturación: subscription o pay-as-you-go

  • Versión menor del motor: 20240830 o posterior, sin el sufijo babelfish

Para consultar o actualizar la versión menor del motor, consulte Actualizar la versión menor del motor de una instancia de ApsaraDB RDS for PostgreSQL.

Facturación

Esta función es gratuita.

Cómo funciona

PgBouncer actúa como middleware entre su aplicación y la base de datos. Los clientes se conectan a PgBouncer en el puerto 6432 (predeterminado). PgBouncer mantiene un pool de conexiones de backend hacia PostgreSQL en el puerto 5432 (predeterminado) y las asigna a los clientes según el modo de pool configurado.

Cuando PgBouncer está habilitado:

  • Se asigna un nuevo puerto de PgBouncer (predeterminado: 6432). Sus conexiones existentes a través del puerto original de la base de datos (5432) no se ven afectadas.

  • El sistema instala los complementos pgbouncer_fdw y dblink en la base de datos postgres para admitir las métricas del pool de conexiones. Estos complementos no se pueden desinstalar.

Habilitar o deshabilitar el pool de conexiones

  1. Vaya a la página Instances. En la barra de navegación superior, seleccione la región donde reside su instancia de RDS. Busque la instancia y haga clic en su ID.

  2. En el panel de navegación izquierdo, haga clic en Database Connection.

  3. Haga clic en Enable PgBouncer o Disable PgBouncer.

  4. En el cuadro de diálogo que aparece, haga clic en OK.

Una vez habilitado PgBouncer, el puerto de PgBouncer (predeterminado: 6432) aparece en la página Database Connection. Para cambiar el puerto, haga clic en Modify Endpoint, seleccione un tipo de endpoint y actualice el campo PgBouncer Port.

Nota

Después de deshabilitar PgBouncer, las aplicaciones que aún estén configuradas para usar el puerto 6432 no podrán conectarse. Cámbielas al puerto original de la base de datos (predeterminado: 5432) antes de deshabilitarlo.

Conectarse a través del pool de conexiones

Después de habilitar PgBouncer, actualice el puerto de conexión de su aplicación de 5432 a 6432. Todos los demás parámetros de conexión (endpoint, nombre de usuario y contraseña) permanecen sin cambios.

Antes (conexión directa):

postgresql://<username>:<password>@<endpoint>:5432/<database>

Después (conexión mediante pool):

postgresql://<username>:<password>@<endpoint>:6432/<database>

Para obtener más información, consulte Conectarse a una instancia de ApsaraDB RDS for PostgreSQL.

Configurar los parámetros del pool de conexiones

Después de habilitar PgBouncer, utilice la función Parameter Settings para ajustar el comportamiento del pool de conexiones.

Nota

Parameter Settings muestra los parámetros de PgBouncer solo después de habilitar PgBouncer. Si desea aplicar una

parameter template

para modificar parámetros en lote, habilite primero PgBouncer y luego aplique la plantilla.

La plantilla de parámetros predeterminada es PostgreSQL_PgBouncer_Default Parameter Template (rpg-sys-pgsql-pgbouncer).

Modo de pool

El parámetro pgbouncer.pool_mode controla cuándo devuelve PgBouncer una conexión de backend al pool.

Modo

Predeterminado

Cómo funciona

Cuándo usarlo

transaction

Sí

Devuelve la conexión después de cada transacción

La mayoría de las aplicaciones. Proporciona la mayor reutilización de conexiones.

session

No

Devuelve la conexión cuando el cliente se desconecta

Aplicaciones que usan funciones a nivel de sesión (SET, LISTEN, sentencias preparadas, bloqueos asesores)

statement

No

Devuelve la conexión después de cada sentencia. Solo para cargas de trabajo con autocommit. No admite transacciones que abarquen múltiples sentencias.

Cargas de trabajo exclusivas de autocommit

Límites de conexión

Los siguientes parámetros controlan cuántas conexiones acepta y reenvía PgBouncer a la base de datos. max_client_conn y default_pool_size operan en capas diferentes: max_client_conn limita las conexiones entrantes de clientes, mientras que default_pool_size limita las conexiones salientes de backend. Muchos clientes pueden compartir un pool más pequeño de conexiones de backend; esa es la ventaja principal del pool de conexiones.

Parámetro

Tipo

Predeterminado

Qué controla

pgbouncer.max_client_conn

int

100

Número máximo de conexiones de cliente que acepta PgBouncer

pgbouncer.default_pool_size

int

20

Número predeterminado de conexiones permitidas en el pool de conexiones

pgbouncer.min_pool_size

int

0

Número mínimo de conexiones de cliente permitidas por el pool de conexiones

Otros parámetros

Parámetro

Tipo

Predeterminado

Descripción

pgbouncer.query_wait_timeout

int

120

Tiempo máximo en segundos que una consulta espera en la cola. Al alcanzar el tiempo de espera, se desconecta al cliente. Establezca este valor en 0 para una espera indefinida.

pgbouncer.ignore_startup_parameters

string

"extra_float_digits"

Lista separada por comas de parámetros de inicio que ignora PgBouncer. De forma predeterminada, PgBouncer solo procesa parámetros básicos (client_encoding, datestyle, timezone, standard_conforming_strings) y rechaza conexiones que envían parámetros desconocidos. Agregue aquí cualquier parámetro adicional. Mantenga siempre extra_float_digits para conservar la compatibilidad con los controladores JDBC (Java Database Connectivity) de PostgreSQL.

pgbouncer.stats_users

string

""

Lista separada por comas de usuarios autorizados para conectarse a la base de datos virtual de PgBouncer y ejecutar consultas de solo lectura.

Para consultar la referencia completa de parámetros, visite la documentación oficial de PgBouncer.

Consultar métricas del pool de conexiones

Utilice Enhanced Monitoring para monitorear la actividad del pool de conexiones. Las métricas están disponibles solo después de habilitar PgBouncer.

Métrica

Descripción

db.pgbouncer.client_connections.active

Conexiones activas de clientes

db.pgbouncer.client_connections.waiting

Conexiones de clientes en espera de una conexión de backend

db.pgbouncer.server_connections.active

Conexiones activas de backend

db.pgbouncer.server_connections.idle

Conexiones inactivas de backend

db.pgbouncer.total_pooled_connections

Total de conexiones en el pool

db.pgbouncer.num_pools

Número de pools de conexiones

Límites

  • El tiempo máximo de inactividad para una conexión en el pool es de 10 minutos. Las conexiones inactivas que superan esta duración se cierran automáticamente. Este valor no se puede modificar.

  • Cuando el cifrado SSL está habilitado en la instancia, PgBouncer también habilita SSL. PgBouncer no admite la autenticación de conexiones con la Access Control List (ACL) establecida en verify-ca o verify-full, y no es compatible con client certificate revocation files.

Referencia de API

Llame a la operación ModifyDBInstanceConfig para habilitar o deshabilitar PgBouncer mediante programación.

Parámetro

Descripción

Ejemplo

DBInstanceId

El ID de la instancia de RDS for PostgreSQL

pgm-****

ConfigName

El nombre del elemento de configuración

pgbouncer

ConfigValue

true para habilitar, false para deshabilitar

true

Pasos siguientes