Descripción general de la agrupación de conexiones administrada

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ón transaction para 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/RESET
    • LISTEN
    • WITH HOLD CURSOR
    • PREPARE/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_statements a 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 local en 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:

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.

¿Qué sigue?