Información general sobre el grupo de conexiones gestionado

La agrupación de conexiones gestionada te permite escalar tus cargas de trabajo optimizando el uso de recursos y la latencia de conexión de tus instancias de Cloud SQL. La agrupación de conexiones gestionada asigna dinámicamente conexiones de servidor a las solicitudes entrantes cuando es posible. Esta asignación dinámica mejora el rendimiento, sobre todo en las conexiones escaladas, ya que absorbe los picos repentinos de conexión y reutiliza las conexiones de base de datos.

La agrupación de conexiones gestionada se conecta a un clúster de agrupadores en lugar de a una base de datos específica. A continuación, el agrupador gestiona las conexiones entrantes a la base de datos. De esta forma, los tiempos de conexión serán más cortos y tus cargas de trabajo podrán escalarse. Cada grupo está asociado a una base de datos y a un usuario únicos. Una vez que un cliente se autentica, el grupo reutiliza una conexión de servidor inactiva 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 utilizados se basa en el número de núcleos de vCPU de tu instancia.

Casos prácticos y consideraciones

Cuando uses la agrupación de conexiones gestionada, ten en cuenta lo siguiente:

  • 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 gestionadas 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 recomendable que no utilices la agrupación de conexiones.
  • Puedes usar Gestión de Identidades y Accesos para proteger las conexiones a tu instancia en función del puerto que use la agrupación de conexiones gestionada. Para obtener más información sobre cómo funciona IAM en Cloud SQL y sus limitaciones, consulta el artículo sobre la autenticación de IAM.

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.

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 agrupación:

  • 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 con 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, y 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 en 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 quiere que se ignoren y que no se registran 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 de 3600 segundos.

Limitaciones

Cuando uses la 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 consultas, las direcciones IP de cliente se mostrarán como local en lugar de la dirección IP en sí.

Puertos usados por la agrupación de conexiones gestionada

Cuando habilitas la agrupación de conexiones gestionada, los puertos que usan las instancias de Cloud SQL para servir el tráfico de bases de datos cambian. 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:

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 la agrupación de conexiones gestionada. 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 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