En esta página, se presentan 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 desarrolladores y administradores de bases de datos 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.
Sigue los lineamientos operativos.
Configura un período de mantenimiento para tu instancia principal.
Agrega instancias del grupo de lectura para aliviar el tráfico de lectura.
Administra el retraso de la replicación.
No inicies una operación administrativa antes de que se complete la operación anterior.
Configura una cuota de almacenamiento suficiente para admitir el mantenimiento fundamental de la base de datos.
Evita el uso excesivo de tu CPU.
Evita el agotamiento de la memoria.
Asegúrate de que tu instancia tenga los IDs de transacción óptimos.
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 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 para 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, incluidos el recuento de nodos activos, el uso de la 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 para planificar cuándo pueden ocurrir las actualizaciones con interrupciones. Para obtener más información, consulta Cómo ver y establecer los tiempos de mantenimiento.
Agrega instancias del grupo de lectura para aliviar el tráfico de lectura
Para cargas de trabajo con alto contenido de lectura, agrega instancias del grupo de lectura con el objetivo de aliviar 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 para mejorar la almacenación en caché.
Considera agregar nodos adicionales por grupo para facilitar el equilibrio de cargas automático y la alta disponibilidad.
Administra el retraso de replicación
AlloyDB realizó varias mejoras para mejorar el retraso de la replicación. Sin embargo, es posible que te encuentres con situaciones en las que la repetición de registros esté bloqueada o no pueda seguir el ritmo, lo que puede aumentar 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, con 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 volver a reproducir, en especial, si también hay una carga de trabajo de lectura pesada que se ejecuta 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 darle más recursos.
Según las necesidades de tu aplicación, es posible que desees ajustar los siguientes parámetros:
max_standby_streaming_delay
: Determina cuánto tiempo espera la repetición antes de cancelar las consultas que la bloquean.google_storage.log_replay_throttle_read_transactions
: Determina si se deben limitar las consultas cuando el retraso es alto. La limitación de consultas le brinda a la repetición más recursos para ponerse al día más rápido y evitar que se muestren datos inactivos en las consultas.alloydb.promote_cancel_to_terminate
: Determina si se deben finalizar de forma forzosa los backends de consulta que no responden a la cancelación.
No inicies una operación administrativa antes de que se complete la operación anterior.
Las instancias de AlloyDB no pueden aceptar solicitudes de operaciones 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 consola de Google Cloud no refleja si una operación se está ejecutando. La marca de verificación verde solo indica si la instancia está en el estado EJECUTABLE. Para verificar si una operación se está ejecutando, haz clic en la pestaña Operaciones y verifica el estado de la operación más reciente.
Configura una cuota de almacenamiento suficiente para adaptar 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 tu 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 mediante 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 CPUs. Para cambiar las CPU, se debe reiniciar la instancia. Si tu instancia ya tiene la cantidad máxima de CPUs, te recomendamos que fragmentes la base de datos en varias instancias.
Evita el agotamiento de la memoria
AlloyDB tiene una administración automática de la 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ánto 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 monitoreo del uso y las métricas de uso total en la consola de Google Cloud , consulta Cómo supervisar 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 configuras Resource Type
como AlloyDB for PostgreSQL Database
y Metric
como 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 adaptativo integrado que ayuda a mitigar los problemas relacionados con el espacio libre.
Arquitectura de datos
Divide tus instancias grandes en instancias más pequeñas, de ser posible.
No uses demasiadas tablas de base de datos.
Divide tus instancias grandes en instancias más pequeñas, de ser 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.
Ajusta el tamaño de tu instancia para mejorar el rendimiento de las consultas.
Implementa grupos de lectura y transfiere las consultas de lectura al grupo de lectura.
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 habilitar el motor de columnas.
Puedes supervisar el uso del motor de columnas.
Si es la primera vez que usas el motor de columnas, comienza por familiarizarte con la columnización automática. Luego, puedes optar por administrar las columnas de forma manual.
Ajusta el tamaño de tu instancia para mejorar el rendimiento de las consultas
Si experimentas un rendimiento de las consultas bajo, considera aumentar el escalamiento 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 tienes un rendimiento de consulta deficiente, considera aumentar el tamaño a una instancia más grande.
Implementa grupos de lectura y transfiere las consultas de lectura al grupo de lectura
Si tu aplicación realiza muchas operaciones de lectura y escritura, considera implementar grupos de lectura y transferir las consultas de lectura al grupo de lectura.
Para cargas de trabajo con alto contenido de lectura, agrega instancias del grupo de lectura con el objetivo de aliviar el tráfico de lectura de la instancia principal.
Implementación de la aplicación
Usa buenas técnicas de administración de la conexión.
Verifica la respuesta de tu aplicación a las actualizaciones de mantenimiento.
Verifica la respuesta de tu aplicación a las conmutaciones por error.
Evita las transacciones grandes.
Evita una gran cantidad de subtransacciones.
Usa la versión más reciente de Auth Proxy.
Implementa prácticas adecuadas de administración de la conexión
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 los 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.
Para simular una actualización de mantenimiento, puedes realizar operaciones de escalamiento de procesamiento o actualizar las marcas estáticas de PostgreSQL que activan el mantenimiento con tiempo de inactividad bajo (LDTM).
Durante la LDTM, la instancia deja de estar disponible durante un período breve y se descartan las conexiones existentes. La prueba de 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 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, realiza la actualización 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 haya transacciones de larga duración.
En AlloyDB, realizar una transacción en un bloque de errores de PL/pgSQL crea subtransacciones de la transacción correspondiente al bloque de errores. El rendimiento general del sistema se degrada si la cantidad de subtransacciones supera los 64 en presencia de transacciones de larga duración.
Usa la versión más reciente de Auth Proxy
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 de Auth Proxy.
Importación y exportación de datos
Restaura desde las copias de seguridad de Cloud SQL para PostgreSQL para la migración.
Acelera las importaciones para instancias pequeñas.
Cómo restablecer desde copias de seguridad de Cloud SQL para PostgreSQL para la migración
Para facilitar la migración, consulta Cómo migrar 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 de datos continua, 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 funciones adecuadas de AlloyDB.
Protege la instancia y las copias de seguridad contra la eliminación accidental.
Protege tus datos con las funciones adecuadas de AlloyDB
Usa copias de seguridad, recuperación de un momento determinado (PITR) y exportaciones para 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; proporcionan una forma de restablecer los datos de 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 toman más tiempo en crearse porque se genera un archivo externo en Cloud Storage que puede usarse 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 que elijas.
Protege la instancia y las copias de seguridad contra la eliminación accidental
Para habilitar la prevención de eliminación accidental predeterminada, crea una instancia de AlloyDB con la consola de Google Cloud 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.