La agrupación de conexiones administrada te permite escalar tus cargas de trabajo mediante la optimización del uso de recursos y la latencia de conexión para tus instancias de Cloud SQL. La agrupación de conexiones administrada asigna de forma dinámica conexiones de servidor a las solicitudes entrantes cuando es posible. Esta asignación dinámica proporciona mejoras en el rendimiento, en especial para las conexiones escaladas, ya que absorbe los aumentos repentinos de conexión y reutiliza las conexiones de bases de datos existentes.
La agrupación de conexiones administrada se conecta a un clúster de agrupadores en lugar de a una base de datos específica. Luego, el agrupador administra las conexiones entrantes a la base de datos. Esto proporciona tiempos de conexión más cortos y escalabilidad para tus cargas de trabajo. Cada grupo está asociado con una base de datos y un usuario únicos. Una vez que se autentica un cliente, el grupo reutiliza una conexión de servidor inactiva dentro del grupo para conectar la base de datos al servidor. Si no hay una conexión de servidor disponible, se crea una nueva en el grupo para conectar la base de datos. La cantidad de agrupadores que se usan se basa en la cantidad de núcleos de CPU virtuales de tu instancia.
Casos de uso y consideraciones
Ten en cuenta lo siguiente cuando uses la agrupación de conexiones administrada:
- Si bien puedes usar la agrupación de conexiones administrada para cualquier carga de trabajo transaccional, proporciona el mayor beneficio de capacidad de procesamiento y latencia a las aplicaciones que contienen conexiones de corta duración o que generan un aumento de conexión.
- Para las conexiones de larga duración, el rendimiento de la conexión con la agrupación de conexiones administrada puede ser ligeramente inferior que cuando se usa una conexión directa. En este caso, la agrupación de conexiones administrada proporciona el escalamiento de la conexión cuando la cantidad de conexiones es muy alta. Sin embargo, para las aplicaciones que suelen establecer conexiones de larga duración, es posible que desees evitar el uso de la agrupación de conexiones.
- Puedes usar Identity and Access Management para proteger las conexiones a tu instancia según el puerto que usa la agrupación de conexiones administrada. Para obtener más información sobre cómo funciona IAM en Cloud SQL y sus limitaciones, consulta Autenticación de IAM.
Para obtener más información sobre cómo habilitar la agrupación de conexiones administrada, consulta Configura la agrupación de conexiones administrada.
Requisitos
Para usar la agrupación de conexiones administrada, tu instancia debe cumplir con los siguientes requisitos:
- Tu instancia debe ser una instancia de edición de Cloud SQL Enterprise Plus.
- Debes estar conectado a tu instancia solo con una conexión directa o el proxy de autenticación de Cloud SQL.
- Tu instancia debe estar configurada para el acceso privado a servicios, usar una IP pública o ser una instancia nueva con Private Service Connect habilitado.
- Tu instancia debe usar la nueva arquitectura de red de Cloud SQL.
- La agrupación de conexiones administrada requiere un número de versión de mantenimiento mínimo de
POSTGRES_$version.R20250727.00_14. Para obtener más información sobre cómo realizar el mantenimiento de autoservicio, consulta Realiza el mantenimiento de autoservicio.
Opciones de agrupación
La agrupación de conexiones administrada te permite administrar cómo se agrupan las conexiones con el parámetro pool_mode. Puedes usar las siguientes opciones de agrupación:
transaction(predeterminado): Agrupa las conexiones a nivel de la transacción. Las conexiones se muestran al grupo después de que se completa cada transacción. Cloud SQL recomienda usar el modo de agrupacióntransactionpara las conexiones de corta duración.session: Agrupa las conexiones a nivel de la sesión. Cada sesión usa una conexión de servidor dedicada que mantiene un estado de sesión. Esto reduce la eficiencia de la agrupación. Cuando un cliente se desconecta, la conexión del servidor vuelve al grupo de conexiones.
Opciones de configuración avanzada
Puedes personalizar la agrupación de conexiones administrada con las siguientes opciones de configuración:
| Nombre de configuración | Descripción |
|---|---|
max_pool_size
|
Es la cantidad máxima de conexiones de servidor permitidas para un par de base de datos y usuario en cada grupo de conexiones. El valor predeterminado es de 50 conexiones. |
min_pool_size
|
Es la cantidad mínima de conexiones de servidor disponibles en cualquier momento en
cada grupo de conexiones.
Si la cantidad de conexiones de servidor es menor que min_pool_size,
esta configuración agrega más conexiones de servidor al grupo. Esto ayuda a administrar
los aumentos repentinos en la carga de la base de datos después de períodos de inactividad y garantiza
que las conexiones estén disponibles y listas para usarse.
El valor predeterminado es de 0 conexiones. |
max_client_connections
|
Es la cantidad máxima de conexiones permitidas para tu instancia cuando usas la agrupación de conexiones administrada. El valor predeterminado es de 5,000 conexiones. |
max_prepared_statements
|
Es la cantidad máxima de sentencias preparadas con nombre a nivel del protocolo admitidas
en transaction modo de agrupación.
Si estableces esta opción en 0, se inhabilita la compatibilidad con sentencias preparadas. Para un rendimiento óptimo, este valor debe exceder la cantidad de sentencias preparadas de uso frecuente en tu base de datos. Una gran cantidad de sentencias preparadas en la agrupación de conexiones administrada puede provocar un aumento en el uso de memoria. El valor predeterminado es de 0 sentencias. |
client_connection_idle_timeout
|
Es el tiempo que una conexión de cliente permanece inactiva antes de que se agote el tiempo de espera. Este valor puede oscilar entre 0 y 2,147,483 segundos, y el valor predeterminado es de 0 segundos. |
server_connection_idle_timeout
|
Es el tiempo que una conexión de servidor permanece inactiva antes de que se agote el tiempo de espera. Este valor puede oscilar entre 0 y 2,147,483 segundos, y el valor predeterminado es de 600 segundos. |
query_wait_timeout
|
Es el tiempo que una consulta espera una conexión de servidor en un grupo antes de
que se agote el tiempo de espera.
Si estableces esta opción en 0, se inhabilita, lo que permite la puesta en cola indefinida del cliente Si habilitas esta opción, se evita que los servidores que no responden retengan las conexiones. Este valor puede oscilar entre 0 y 2,147,483 segundos, y el valor predeterminado es de 120 segundos. |
ignore_startup_parameters
|
Son los parámetros que deseas ignorar y que no se rastrean en los paquetes de inicio de la agrupación de conexiones administrada de forma predeterminada. |
server_lifetime
|
Es el tiempo máximo que una conexión de servidor permanece sin usar antes de que la agrupación de conexiones administrada
la cierre. Si el valor se establece en 0 segundos, la conexión
se cierra de inmediato después de su uso.
El valor predeterminado es de 3,600 segundos. |
Limitaciones
Cuando uses la agrupación de conexiones administrada con tus instancias de Cloud SQL Enterprise Plus, ten en cuenta estas limitaciones:
- Si habilitas la agrupación de conexiones administrada en una instancia existente, se reiniciará la base de datos.
- La agrupación de conexiones administrada solo se puede usar con el proxy de autenticación de Cloud SQL versión 2.15.2 y versiones posteriores.
- Si usas el conector de lenguaje de Go de Cloud SQL, te recomendamos una versión mínima de Go de
1.24. Si usas la versión 1.23 de Go o una anterior, es posible que experimentes limitaciones en el rendimiento cuando uses la agrupación de conexiones administrada. Si usas la agrupación de conexiones administrada en el modo de agrupación
transaction, no se admiten las siguientes funciones de SQL:SET/RESETLISTENWITH HOLD CURSORPREPARE/DEALLOCATE- Tablas temporales
PRESERVE/DELETE ROW LOAD- Bloqueos de asesoramiento a nivel de la sesión
Si usas la biblioteca de interfaz de base de datos asyncpg para el agrupador de la agrupación de conexiones administrada en los puertos 3307 y 6432, debes actualizar el
max_prepared_statementsa un valor mayor que 0 para habilitar la compatibilidad con sentencias preparadas en el agrupador de la agrupación de conexiones administrada.Si usas Cloud SQL para PostgreSQL versión 17, no se admite la opción
sslnegotiation=direct.El seguimiento de la IP del cliente no es compatible con la agrupación de conexiones administrada. Si habilitas Almacenar las direcciones IP de clientes en estadísticas de consultas, las direcciones IP de los clientes se muestran como
localen lugar de la dirección IP misma.
Puertos que usa la agrupación de conexiones administrada
Cuando habilitas la agrupación de conexiones administrada, cambian los puertos que usan las instancias de Cloud SQL para entregar el tráfico de la base de datos. Puedes usar Identity and Access Management para proteger las conexiones, según el puerto.
Los puertos que usa la agrupación de conexiones administrada y sus opciones de IAM disponibles son los siguientes:
Puerto TCP
5432: Lo usa el servidor de base de datos de Postgres para las conexiones directas. Este es el número de puerto predeterminado para conectarse directamente con el cliente psql.Puerto TCP
6432: Lo usa el servidor de la agrupación de conexiones administrada para las conexiones directas. Para conectarte con este puerto, especificapsql -p 6432cuando te conectes directamente con el cliente psql.Puedes usar cualquier opción de autenticación de IAM cuando uses este puerto.
Puerto TCP
3307: Lo usa un servidor de la agrupación de conexiones administrada solo para las conexiones del proxy de autenticación de Cloud SQL. Cuando usas el proxy de autenticación de Cloud SQL para conectarte a la agrupación de conexiones administrada, este número de puerto se configura con el cliente del proxy de autenticación de Cloud SQL y no se puede cambiar.Puedes usar cualquier opción de autenticación de IAM, o la autenticación automática de la base de datos de IAM con este puerto.
Conexiones de servidor que usa la agrupación de conexiones administrada
La configuración de la base de datos max_connections limita la cantidad máxima de conexiones de servidor que puede usar un agrupador en la agrupación de conexiones administrada.
Cloud SQL recomienda ajustar este valor según los requisitos de la carga de trabajo de tu instancia y el tamaño de la instancia de base de datos. Durante la carga máxima, la cantidad de conexiones para la autenticación puede ser muy alta.
Si usas el valor predeterminado max_pool_size de 50 grupos en tu instancia, te recomendamos que reserves al menos 15 conexiones de servidor por CPU para la agrupación de conexiones administrada cuando establezcas la marca max_connections para tu base de datos.
Para obtener más información sobre la marca max_connections, consulta
Conexiones simultáneas máximas.
Para modificar la marca max_connections de tu instancia,
consulta Configura marcas de base de datos.