Prácticas recomendadas para mejorar el rendimiento y la disponibilidad de AlloyDB

En esta página, se presentan las prácticas recomendadas generales para ayudarte a mejorar el rendimiento, la durabilidad y la disponibilidad de AlloyDB para PostgreSQL. Esta página está dirigida a los administradores de bases de datos y desarrolladores que ya conocen AlloyDB y PostgreSQL.

Configuración y administración de instancia

Usa las herramientas de AlloyDB para supervisar el uso y el estado de la base de datos

Usa la siguiente tabla para obtener información sobre las herramientas de AlloyDB que te ayudan a supervisar el uso, el estado y el rendimiento de tu base de datos.

Herramienta de AlloyDB Descripción
El informe de resumen de rendimiento Compara instantáneas de las métricas del sistema entre dos momentos diferentes.
Estadísticas de consultas Te ayuda a detectar, diagnosticar y prevenir problemas de rendimiento de las consultas en las bases de datos de AlloyDB. Proporciona información de autoservicio, supervisión intuitiva y diagnóstico que va más allá de la detección para ayudarte a identificar la causa raíz de los problemas de rendimiento.
Estadísticas del sistema Te permite supervisar los recursos y las métricas de la base de datos, incluido el recuento de nodos activos, el uso de CPU, las conexiones máximas, los errores de registro, las transacciones por segundo y el retraso máximo de replicación.

Sigue los lineamientos operativos

Para asegurarte de que tus instancias estén cubiertas por el ANS de AlloyDB para PostgreSQL, sigue los lineamientos operativos.

Configura un período de mantenimiento para tu instancia principal

Configura un período de mantenimiento para tu instancia principal y planifica cuándo pueden ocurrir las actualizaciones con interrupciones. Para obtener más información, consulta Cómo ver y establecer los horarios de mantenimiento.

Agregar instancias del grupo de lectura para descargar el tráfico de lectura

Para cargas de trabajo con alto contenido de lectura, agrega instancias del grupo de lectura para descargar el tráfico de lectura de la instancia principal.

Configura uno o más grupos de lectura para cada base de datos de la instancia y, así, mejorar el almacenamiento en caché.

Considera agregar nodos adicionales por grupo para facilitar el balanceo de cargas automático y la alta disponibilidad.

Administra el retraso de replicación

AlloyDB realizó varias mejoras para reducir el retraso de la replicación. Sin embargo, es posible que te encuentres con situaciones en las que se bloquee la reproducción de registros o no pueda seguir el ritmo, lo que puede provocar un aumento en el retraso de la replicación.

Por ejemplo, si el tamaño de tu VM principal es mucho mayor que el tamaño del nodo del grupo de lectura, en cargas de trabajo de escritura pesadas, la VM principal podría generar registros de registro más rápido de lo que los nodos de lectura pueden reproducirlos, especialmente si también se ejecuta una carga de trabajo de lectura pesada de forma simultánea en los nodos de lectura. En esta situación, podría ser útil aumentar el tamaño del nodo de lectura para proporcionarle más recursos.

Según las necesidades de tu aplicación, es posible que desees ajustar los siguientes parámetros:

No inicies una operación administrativa antes de que finalice la operación anterior

Las instancias de AlloyDB no pueden aceptar solicitudes de operación nuevas hasta que se complete la operación anterior. Si intentas iniciar una operación nueva antes de que se complete la operación anterior, fallará la solicitud de operación. Esto incluye reinicios de la instancia.

El estado de la instancia en la Google Cloud consola no refleja si una operación se está ejecutando. La marca de verificación verde solo indica si la instancia está en estado RUNNABLE. Para verificar si hay una operación en ejecución, haz clic en Operaciones en el panel de navegación de la izquierda y verifica el estado de la operación más reciente.

Configura una cuota de almacenamiento suficiente para el mantenimiento fundamental de la base de datos

De forma predeterminada, puedes usar hasta 16 TB de almacenamiento por clúster. Si necesitas más almacenamiento, considera aumentar tu cuota de almacenamiento.

Evita el uso excesivo de la CPU

Puedes ver el porcentaje de CPU disponible que está utilizando tu instancia en la página de detalles de la instancia en la consola de Google Cloud . Para obtener más información, consulta Supervisa instancias. También puedes supervisar el uso de CPU y recibir alertas en un límite especificado con Crea políticas de alertas de límite de métricas.

Para evitar el uso excesivo, puedes escalar tu instancia a una mayor cantidad de CPU. Para cambiar las CPU, se debe reiniciar la instancia. Si tu instancia ya tiene la cantidad máxima de CPU, te recomendamos que fragmentes la base de datos en varias instancias.

Evita el agotamiento de la memoria

AlloyDB tiene administración automática de memoria para evitar problemas de memoria insuficiente. Sin embargo, la presión de memoria constante podría generar problemas de rendimiento. Cuando busques signos de agotamiento de memoria, debes usar principalmente la métrica de uso. Para obtener un rendimiento óptimo, te recomendamos que esta métrica permanezca por debajo del 90%.

También puedes usar la métrica total_usage para observar el porcentaje de memoria disponible que usa tu instancia de AlloyDB, incluida la memoria que usa el contenedor de la base de datos y la memoria asignada por la caché del sistema operativo.

Si observas la diferencia entre las métricas de uso y uso total, puedes identificar cuánta memoria usan los procesos y cuánta usa la caché del sistema operativo. Puedes volver a usar la memoria en esta caché.

Escala tu instancia de AlloyDB para aumentar el tamaño de su memoria. Para cambiar el tamaño de la memoria de la instancia, debes reiniciarla. Si tu instancia ya tiene el tamaño máximo de memoria, debes fragmentar la base de datos en varias instancias.

Para obtener más información sobre el uso de la supervisión y las métricas de uso total en la consola de Google Cloud , consulta Supervisa instancias.

Asegúrate de que tu instancia tenga los IDs de transacción óptimos

Puedes ver el uso del ID de transacción de tu instancia en la página Explorador de métricas en la consola de Google Cloud si estableces Resource Type en AlloyDB for PostgreSQL Database y Metric en Percentage of instance's transaction IDs consumed. Para obtener más información, consulta Crea gráficos con el Explorador de métricas.

AlloyDB tiene un autovacuum adaptable integrado que ayuda a mitigar los problemas relacionados con el vacuum.

Arquitectura de datos

Divide tus instancias grandes en instancias más pequeñas siempre que sea posible

Siempre que sea posible, usa muchos clústeres de AlloyDB más pequeños en lugar de una instancia grande. Gestionar una instancia grande y monolítica presenta desafíos que no ocurren con un grupo de instancias más pequeñas.

No uses demasiadas tablas de base de datos

Mantén el recuento de tablas de tu instancia en menos de 10,000. Demasiadas tablas de base de datos pueden afectar el tiempo de actualización de la base de datos.

Rendimiento de las consultas

Habilita el motor de columnas si ejecutas consultas analíticas

Lee una descripción general del motor de columnas de AlloyDB. Verifica los tipos de consultas que se benefician de la habilitación del motor de columnas.

Puedes supervisar el uso del motor de columnas.

Si es la primera vez que usas el motor columnar, comienza por familiarizarte con la conversión automática en columnas. Luego, puedes optar por administrar las columnas manualmente.

Cómo aumentar la escala de tu instancia para mejorar el rendimiento de las consultas

Si experimentas un rendimiento bajo de las consultas, considera aumentar la escala de tu instancia.

Cada SKU tiene configuraciones limitadas de CPU virtual y memoria, y también tiene una caché rápida limitada. Si el tamaño de tus datos es grande y experimentas un rendimiento deficiente de las consultas, considera aumentar la escala a una instancia más grande.

Implementa grupos de lectura y descarga las consultas de lectura en el grupo de lectura

Si tu aplicación realiza muchas escrituras y lecturas, considera implementar grupos de lectura y descargar las consultas de lectura en el grupo de lectura.

Para cargas de trabajo con alto contenido de lectura, agrega instancias del grupo de lectura para descargar el tráfico de lectura de la instancia principal.

Implementación de la aplicación

Implementa prácticas adecuadas de administración de conexiones

Implementa prácticas adecuadas de administración de la conexión, como la agrupación de conexiones y la retirada exponencial.

El uso de buenas técnicas de administración de conexiones mejora el uso de recursos de tu aplicación y te ayuda a mantenerte dentro de los límites de conexión de AlloyDB.

Prueba la respuesta de tu aplicación a las actualizaciones de mantenimiento

Verifica la respuesta de tu aplicación a las actualizaciones de mantenimiento, que pueden ocurrir en cualquier momento durante el período de mantenimiento.

Puedes simular una actualización de mantenimiento realizando operaciones de ajuste de escala de procesamiento o actualizando marcas estáticas de PostgreSQL que activan el mantenimiento con tiempo de inactividad bajo (LDTM).

Durante el LDTM, tu instancia deja de estar disponible durante un período breve y las conexiones existentes se descartan. Probar LDTM te permite comprender mejor cómo tu aplicación controla el mantenimiento programado y qué tan rápido se puede recuperar el sistema.

Prueba la respuesta de tu aplicación a las conmutaciones por error

Verifica la respuesta de tu aplicación a las conmutaciones por error, que pueden ocurrir en cualquier momento.

Puedes iniciar una conmutación por error de forma manual con la consola de Google Cloud , la CLI de Google Cloud o la API. Para obtener más información, consulta Cómo iniciar la conmutación por error.

Evita las transacciones grandes

Mantén las transacciones pequeñas y cortas. Si se requiere una actualización grande de la base de datos, realízala en varias transacciones más pequeñas en lugar de ejecutar una transacción grande.

Evita una gran cantidad de subtransacciones

Evita una gran cantidad de subtransacciones en una transacción cuando hay transacciones de larga duración.

En AlloyDB, realizar una transacción en un bloque de error de PL/pgSQL crea subtransacciones de la transacción correspondiente al bloque de error. El rendimiento general del sistema se degrada si la cantidad de subtransacciones supera las 64 en presencia de transacciones de larga duración.

Usa la versión más reciente del proxy de autenticación

Si usas el proxy de autenticación de AlloyDB, asegúrate de usar la versión más reciente. Para obtener más información, consulta Mantén actualizado el cliente del proxy de autenticación.

Importación y exportación de datos

Restablece desde copias de seguridad de Cloud SQL para PostgreSQL para la migración

Para facilitar la migración, consulta Migra de Cloud SQL para PostgreSQL a AlloyDB.

Para obtener información sobre cómo migrar tus datos de Cloud SQL para PostgreSQL a AlloyDB con la replicación continua de datos, consulta Database Migration Service para PostgreSQL a AlloyDB.

Acelera las importaciones para instancias pequeñas

Cuando importas conjuntos de datos grandes para instancias pequeñas, puedes aumentar temporalmente la CPU y la RAM de una instancia para mejorar el rendimiento.

Crear copia de seguridad y de recuperación

Protege tus datos con las capacidades de AlloyDB adecuadas

Usa copias de seguridad, recuperación de un momento determinado (PITR) y exportaciones para garantizar la redundancia y la protección. Cada uno brinda protección frente a situaciones diferentes y se complementan en una estrategia sólida de protección de datos.

Las copias de seguridad son livianas y proporcionan una forma de restablecer los datos en tu instancia al estado en el que se encontraban cuando se creó la copia de seguridad. Sin embargo, la función de copia de seguridad de AlloyDB tiene algunas limitaciones. Si borras la instancia, también se borrarán las copias de seguridad. No puedes realizar una copia de seguridad de una sola tabla o base de datos. Si la región donde se encuentra la instancia no está disponible, no podrás restablecer la instancia desde esa copia de seguridad, incluso en una región disponible.

Con la recuperación de un momento determinado, puedes recuperar una instancia tal como se encontraba un punto específico en el tiempo. Por ejemplo, si un error provoca pérdida de datos, puedes recuperar el estado de una base de datos antes de que se produjera el error. Una recuperación de un momento determinado siempre crea una instancia nueva. No puedes realizar una recuperación de un momento determinado en una instancia existente.

Las exportaciones tardan más en crearse porque se genera un archivo externo en Cloud Storage que se puede usar para recrear tus datos. Las exportaciones no se ven afectadas si borras la instancia. Además, puedes exportar solo una base de datos o una tabla, según el formato de exportación.

Protege tu instancia y tus copias de seguridad contra la eliminación accidental

Para habilitar la prevención predeterminada de eliminación accidental, crea una instancia de AlloyDB con la Google Cloud consola o Terraform.

Usa la función de exportación en AlloyDB para exportar tus datos y obtener una protección adicional. Usa Cloud Scheduler con la API de Cloud Scheduler para automatizar la administración de exportaciones.

En situaciones más avanzadas, usa Cloud Scheduler con funciones de Cloud Run para la automatización.