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

En esta página, se describe qué es el agrupamiento de conexiones administrado y cómo usarlo para optimizar la administración de conexiones de bases de datos para tus instancias de Cloud SQL que usan el agrupamiento.

El agrupamiento de conexiones administrado te permite escalar tus cargas de trabajo optimizando el uso de recursos y la latencia de conexión para tus instancias de Cloud SQL con el agrupamiento. La agrupación de conexiones administrada asigna dinámicamente conexiones de servidor a las solicitudes entrantes cuando es posible. Esto proporciona mejoras significativas en el rendimiento, en especial para las conexiones escaladas, ya que absorbe los picos repentinos de conexión y reutiliza las conexiones de bases de datos existentes. En lugar de conectarse a una base de datos en particular, la agrupación de conexiones administradas se conecta a un clúster de agrupadores, lo que proporciona tiempos de conexión más cortos y escalabilidad para tus cargas de trabajo.

Cada grupo está asociado a una base de datos y un usuario únicos. Una vez que se autentica un cliente, el grupo intenta reutilizar una de las conexiones inactivas del servidor dentro del grupo para conectar la base de datos al servidor. Si no hay una conexión de servidor disponible, 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.

Si bien puedes usar la agrupación de conexiones administradas para cualquier carga de trabajo transaccional, proporciona el mayor beneficio de rendimiento y latencia a las aplicaciones que contienen conexiones de corta duración o que generan un aumento repentino de conexiones.

En el caso de las conexiones de larga duración, el rendimiento de la conexión con la reducción de conexiones administradas puede ser ligeramente inferior al que se obtiene con una conexión directa. En este caso, la agrupación de conexiones administrada proporciona un ajuste de escala de las conexiones 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 grupos de conexiones.

Puedes usar Identity and Access Management para proteger las conexiones, según el puerto. Para obtener más información sobre cómo funciona IAM en Cloud SQL y sus restricciones, consulta Autenticación de IAM.

Para obtener más información sobre cómo habilitar la reducción de conexión administrada, consulta Cómo configurar la reducción de conexión administrada.

Requisitos

Para usar la agrupación de conexiones administrada, tu instancia debe cumplir con los siguientes requisitos:

  • Tu instancia debe ser de la edición Cloud SQL Enterprise Plus.
  • Debes conectarte 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 Cómo realizar el mantenimiento de autoservicio.

Puertos que usa el grupo de conexiones administrado para instancias de Cloud SQL

Cuando habilitas el grupo de conexiones administrado, 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:

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 devuelven 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 del pooling. Cuando un cliente se desconecta, el servidor vuelve al grupo de conexiones.

Opciones de configuración avanzada

Puedes personalizar el grupo de conexiones administradas con las siguientes opciones de configuración:

Nombre de la 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 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, este parámetro de 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 0 conexiones.
max_client_connections Es la cantidad máxima de conexiones permitidas para tu instancia cuando usas el grupo de conexiones administrado. El valor predeterminado es 5,000 conexiones.
max_prepared_statements Es la cantidad máxima de instrucciones preparadas con nombre a nivel del protocolo que se admiten en el modo de agrupación transaction.

Si se establece esta opción en 0, se inhabilita la compatibilidad con instrucciones preparadas. Para obtener un rendimiento óptimo, este valor debe superar la cantidad de instrucciones preparadas que se usan comúnmente en tu base de datos. Una gran cantidad de sentencias preparadas en el grupo de conexiones administrado puede provocar un aumento en el uso de memoria.

El valor predeterminado es 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 variar de 0 a 2,147,483 segundos, y el valor predeterminado es 0 segundos.
server_connection_idle_timeout Es el tiempo que una conexión del 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 se establece esta opción en 0, se inhabilita, lo que permite una cola de clientes indefinida. Habilitar esta opción evita que los servidores que no responden mantengan 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 Managed Connection Pooling de forma predeterminada.
server_lifetime Es el tiempo máximo que una conexión de servidor permanece sin usar antes de que el grupo de conexiones administrado la cierre. Si el valor se establece en 0 segundos, la conexión se cierra inmediatamente después de su uso.

El valor predeterminado es 3,600 segundos.

Limitaciones

Cuando uses el grupo de conexiones administrado con tus instancias de la edición Cloud SQL Enterprise Plus, ten en cuenta estas limitaciones:

  • Habilitar el grupo de conexiones administrado en una instancia existente provoca el reinicio de la base de datos.
  • Cuando usas la API de Cloud SQL para habilitar, inhabilitar o configurar el Agrupamiento de conexiones administradas, la API de instance.update no puede contener ninguna otra actualización de configuración de la instancia.
  • El agrupamiento de conexiones administrado solo se puede usar con la versión 2.15.2 y versiones posteriores del proxy de Cloud SQL Auth.
  • Si usas el conector de lenguaje de Go en Cloud SQL, te recomendamos que uses la versión 1.24 de Go como mínimo. Si usas la versión 1.23 de Go o una anterior, es posible que experimentes limitaciones en el rendimiento cuando uses el grupo de conexiones administrado.
  • Si usas el agrupamiento de conexiones administrado en el modo de agrupamiento transaction, no se admiten las siguientes funciones de SQL:

    • SET/RESET
    • LISTEN
    • WITH HOLD CURSOR
    • PREPARE/DEALLOCATE
    • PRESERVE/DELETE ROW tablas temporales
    • 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 Managed Connection Pooling en los puertos 3307 y 6432, debes actualizar max_prepared_statements a un valor mayor que 0 para habilitar la compatibilidad con las sentencias preparadas en el agrupador de Managed Connection Pooling.

  • Si usas la versión 17 de Cloud SQL para PostgreSQL, la opción sslnegotiation=direct no es compatible.

  • El seguimiento de la IP del cliente no es compatible con la agrupación de conexiones administradas. Si habilitas Almacenar las direcciones IP de clientes en Estadísticas de búsquedas, las direcciones IP de los clientes se mostrarán como local en lugar de la dirección IP en sí.

  • Si tu instancia usa el proxy de autenticación de Cloud SQL y tiene habilitada la agrupación de conexiones administradas, no se admite la autenticación manual de la base de datos de IAM. Solo puedes usar la autenticación automática de IAM.

Conexiones del 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 del servidor que puede usar un agrupador en el Agrupamiento de conexiones administrado. Cloud SQL recomienda ajustar este valor según los requisitos de 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 el grupo de conexiones administrado cuando establezcas la marca max_connections para tu base de datos. Para obtener más información sobre la marca max_connections, consulta Cantidad máxima de conexiones simultáneas. Para modificar la marca max_connections de tu instancia, consulta Configura marcas de base de datos.

¿Qué sigue?