Información general sobre el grupo de conexiones gestionado

En esta página se describe qué es la agrupación de conexiones gestionada y cómo usarla para optimizar la gestión de conexiones de bases de datos de tus instancias de Cloud SQL mediante la agrupación.

La agrupación de conexiones gestionada te permite escalar tus cargas de trabajo optimizando el uso de recursos y la latencia de las conexiones de tus instancias de Cloud SQL mediante la agrupación. La agrupación de conexiones gestionada asigna dinámicamente conexiones de servidor a las solicitudes entrantes cuando es posible. De esta forma, se consigue un rendimiento significativamente mejor, sobre todo en las conexiones escaladas, ya que se absorben los picos repentinos de conexión y se reutilizan las conexiones de base de datos. En lugar de conectarse a una base de datos concreta, la agrupación de conexiones gestionada se conecta a un clúster de agrupadores, lo que proporciona tiempos de conexión más cortos y escalabilidad para sus cargas de trabajo.

Cada grupo está asociado a una base de datos y a un usuario únicos. Una vez que se autentica un cliente, el grupo intenta reutilizar una de las conexiones de servidor inactivas del grupo para conectar la base de datos al servidor. Si no hay ninguna conexión de servidor disponible, se crea una nueva conexión de servidor en el grupo para conectar la base de datos. El número de agrupadores que se usan se basa en el número de núcleos de vCPU de tu instancia.

Aunque puedes usar la agrupación de conexiones gestionada para cualquier carga de trabajo transaccional, ofrece el mayor rendimiento y la menor latencia a las aplicaciones que contienen conexiones de corta duración o que provocan un aumento repentino de las conexiones.

En el caso de las conexiones de larga duración, el rendimiento de la conexión con la agrupación de conexiones gestionada puede ser ligeramente inferior al de una conexión directa. En este caso, la agrupación de conexiones gestionada proporciona escalado de conexiones cuando el número de conexiones es muy alto. Sin embargo, en el caso de las aplicaciones que suelen establecer conexiones de larga duración, es posible que quieras evitar el uso de la agrupación de conexiones.

Puedes usar Gestión de Identidades y Accesos para proteger las conexiones, en función del puerto. Para obtener más información sobre cómo funciona la gestión de identidades y accesos en Cloud SQL y sus restricciones, consulta Autenticación de gestión de identidades y accesos.

Para obtener más información sobre cómo habilitar la agrupación de conexiones gestionada, consulta Configurar la agrupación de conexiones gestionada.

Requisitos

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

  • Tu instancia debe ser de la edición Enterprise Plus de Cloud SQL.
  • Debes conectarte a tu instancia mediante una conexión directa o el proxy de autenticación de Cloud SQL.
  • Tu instancia debe estar configurada para el acceso a servicios privados, 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 gestionadas requiere que la versión de mantenimiento sea POSTGRES_$version.R20250727.00_14 como mínimo. Para obtener más información sobre cómo realizar el mantenimiento de autoservicio, consulta Realizar el mantenimiento de autoservicio.

Puertos que usa la agrupación de conexiones gestionada para instancias de Cloud SQL

Cuando habilitas la agrupación de conexiones gestionada, cambian los puertos que usan las instancias de Cloud SQL para servir el tráfico de bases de datos. Puedes usar Gestión de Identidades y Accesos para proteger las conexiones, en función del puerto.

Los puertos que usa la agrupación de conexiones gestionada y sus opciones de gestión de identidades y accesos disponibles son los siguientes:

Opciones de pooling

La agrupación de conexiones gestionada te permite gestionar cómo se agrupan las conexiones mediante el parámetro pool_mode. Puedes usar las siguientes opciones de pooling:

  • transaction (valor predeterminado): agrupa las conexiones a nivel de transacción. Las conexiones se devuelven al grupo después de que se complete 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 sesión. Cada sesión usa una conexión de servidor dedicada que mantiene el estado de la sesión. Esto reduce la eficiencia de la agrupación. Cuando un cliente se desconecta, el servidor vuelve al grupo de conexiones.

Opciones de configuración avanzada

Puedes personalizar la agrupación de conexiones gestionadas mediante las siguientes opciones de configuración:

Nombre de configuración Descripción
max_pool_size Número máximo de conexiones de servidor permitidas para un par de bases de datos y usuarios en cada grupo de conexiones. El valor predeterminado es 50 conexiones.
min_pool_size El número mínimo de conexiones de servidor disponibles en cualquier momento en cada grupo de conexiones.

Si el número de conexiones de servidor es inferior a min_pool_size, este ajuste añade más conexiones de servidor al grupo. Esto ayuda a gestionar los aumentos repentinos de la carga de la base de datos después de periodos de inactividad y asegura que las conexiones estén disponibles y listas para usarse.

El valor predeterminado es 0 conexiones.
max_client_connections Número máximo de conexiones permitidas en tu instancia al usar la agrupación de conexiones gestionada. El valor predeterminado es de 5000 conexiones.
max_prepared_statements Número máximo de instrucciones preparadas con nombre a nivel de protocolo admitidas en el modo de agrupación transaction.

Si se asigna el valor 0 a esta opción, se inhabilita la compatibilidad con las instrucciones preparadas. Para que el rendimiento sea óptimo, este valor debe superar el número de instrucciones preparadas que se usan habitualmente en tu base de datos. Un número elevado de instrucciones preparadas en la agrupación de conexiones gestionada puede provocar un aumento del uso de memoria.

El valor predeterminado es 0 instrucciones.
client_connection_idle_timeout 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. El valor predeterminado es 0 segundos.
server_connection_idle_timeout 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 Tiempo que espera una consulta para establecer una conexión con un servidor de un grupo antes de que se agote el tiempo de espera.

Si se asigna el valor 0 a esta opción, se inhabilita, lo que permite poner en cola a los clientes indefinidamente. Si habilitas esta opción, los servidores que no respondan no podrán mantener las conexiones.

Este valor puede oscilar entre 0 y 2.147.483 segundos, y el valor predeterminado es de 120 segundos.
ignore_startup_parameters Los parámetros que quieras ignorar y que no se registren en los paquetes de inicio de la agrupación de conexiones gestionadas de forma predeterminada.
server_lifetime Tiempo máximo que una conexión de servidor puede estar sin usarse antes de que la agrupación de conexiones gestionadas la cierre. Si el valor es 0 segundos, la conexión se cierra inmediatamente después de usarse.

El valor predeterminado es 3600 segundos.

Limitaciones

Cuando uses la función de agrupación de conexiones gestionada con tus instancias de la edición Enterprise Plus de Cloud SQL, ten en cuenta estas limitaciones:

  • Si habilitas la agrupación de conexiones gestionada en una instancia, la base de datos se reiniciará.
  • Cuando usas la API de Cloud SQL para habilitar, inhabilitar o configurar la agrupación de conexiones gestionada, la API instance.update no puede contener ninguna otra actualización de la configuración de la instancia.
  • El agrupamiento de conexiones gestionado solo se puede usar con el proxy de autenticación de Cloud SQL versión 2.15.2 y posteriores.
  • Si utilizas el conector de lenguaje Go de Cloud SQL, te recomendamos que uses la versión 1.24 de Go como mínimo. Si usas la versión 1.23 o una anterior de Go, es posible que experimentes limitaciones en el rendimiento al usar la agrupación de conexiones gestionada.
  • Si usas la agrupación de conexiones gestionada en el modo de agrupación 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 sesión
  • Si usas la biblioteca de interfaz de base de datos asyncpg para el gestor de conexiones de Managed Connection Pooling en los puertos 3307 y 6432, debes actualizar max_prepared_statements a un valor superior a 0 para habilitar la compatibilidad con las instrucciones preparadas en el gestor de conexiones de Managed Connection Pooling.

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

  • El seguimiento de la IP del cliente no se admite con la agrupación de conexiones gestionada. Si habilitas la opción Almacenar direcciones IP de cliente en Estadísticas de las consultas, las direcciones IP de cliente 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 gestionada, no se admite la autenticación de base de datos de gestión de identidades y accesos manual. Solo puedes usar la autenticación automática de gestión de identidades y accesos.

Conexiones de servidor usadas por la agrupación de conexiones gestionada

La configuración de la base de datos max_connections limita el número máximo de conexiones de servidor que puede usar un agrupador en el agrupamiento de conexiones gestionado. Cloud SQL recomienda ajustar este valor en función de los requisitos de carga de trabajo de tu instancia y del tamaño de la instancia de base de datos. Durante los picos de carga, el número de conexiones para la autenticación puede ser muy alto.

Si usas el valor max_pool_size predeterminado de 50 grupos en tu instancia, te recomendamos que reserves al menos 15 conexiones de servidor por CPU para la agrupación de conexiones gestionada al definir la marca max_connections de 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 Configurar marcas de bases de datos.

Siguientes pasos