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 administradores y desarrolladores de bases de datos que ya estén familiarizados con AlloyDB y PostgreSQL.
Configuración y administración de instancias
Usa las herramientas de AlloyDB para monitorizar el uso y el estado de la base de datos.
Sigue las directrices operativas.
Configura una ventana de mantenimiento para tu instancia principal.
Añade instancias de grupo de lectura para reducir la carga del tráfico de lectura.
Gestionar el retraso de la réplica.
No inicies una operación administrativa antes de que se complete la anterior.
Configura una cuota de almacenamiento suficiente para llevar a cabo el mantenimiento crítico de la base de datos.
Evita que se utilice demasiado la CPU.
Evita que se agote la memoria.
Asegúrate de que tu instancia tenga IDs de transacción óptimos.
Usar las herramientas de AlloyDB para monitorizar el uso y el estado de la base de datos
Consulta la siguiente tabla para obtener información sobre las herramientas de AlloyDB que te ayudan a monitorizar el uso, el estado y el rendimiento de tu base de datos.
Herramienta AlloyDB | Descripción |
---|---|
Informe de resumen de rendimiento | Compara las métricas del sistema en dos momentos distintos. |
Estadísticas de las consultas | Te ayuda a detectar, diagnosticar y evitar problemas de rendimiento de las consultas en las bases de datos de AlloyDB. Ofrece autoservicio, monitorización intuitiva e información de diagnóstico que va más allá de la detección para ayudarte a identificar la causa principal de los problemas de rendimiento. |
Estadísticas del sistema | Te permite monitorizar los recursos y las métricas de la base de datos, como el número 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 la replicación. |
Sigue las directrices operacionales
Para asegurarte de que tus instancias estén cubiertas por el acuerdo de nivel de servicio de AlloyDB para PostgreSQL, sigue las directrices operativas.
Configurar una ventana de mantenimiento para la instancia principal
Configura una ventana de mantenimiento para tu instancia principal y planifica cuándo se pueden producir actualizaciones que interrumpan el servicio. Para obtener más información, consulta Ver y definir los tiempos de mantenimiento.
Añadir instancias de grupo de lectura para descargar el tráfico de lectura
En el caso de las cargas de trabajo con muchas lecturas, añade instancias del grupo de lectura para descargar el tráfico de lectura de la instancia principal.
Configure uno o varios grupos de lectura para cada base de datos de la instancia con el fin de mejorar el almacenamiento en caché.
Te recomendamos que añadas nodos a cada grupo para facilitar el balanceo de carga automático y la alta disponibilidad.
Gestionar el retraso de la replicación
AlloyDB ha incorporado varias mejoras para reducir la latencia de replicación. Sin embargo, puede que se den situaciones en las que se bloquee la reproducción de registros o no se pueda mantener el ritmo, lo que puede provocar un aumento del retraso de la replicación.
Por ejemplo, si el tamaño de tu VM principal es mucho mayor que el tamaño del nodo de tu grupo de lectura, en cargas de trabajo de escritura intensas, la VM principal puede generar registros de log más rápido de lo que los nodos de lectura pueden reproducirlos, sobre todo si también hay una carga de trabajo de lectura intensa ejecutándose simultáneamente en los nodos de lectura. En este caso, puede ser útil aumentar el tamaño del nodo de lectura para darle más recursos.
En función de las necesidades de tu aplicación, puedes 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 la latencia es alta. Limitar las consultas proporciona más recursos a la reproducción para que se ponga al día más rápido y para evitar que devuelva datos obsoletos a las consultas.alloydb.promote_cancel_to_terminate
: Determina si se deben finalizar de forma forzosa los back-ends de las consultas que no responden a la cancelación.
No inicies una operación administrativa antes de que se complete la anterior
Las instancias de AlloyDB no pueden aceptar nuevas solicitudes de operaciones hasta que se complete la operación anterior. Si intentas iniciar una nueva operación antes de que se complete la anterior, la solicitud de operación fallará. Esto incluye los reinicios de instancias.
El estado de la instancia en la consola Google Cloud no refleja si se está ejecutando una operación. La marca de verificación verde solo indica si la instancia está en el estado RUNNABLE
. Para ver si una operación está en curso, haga clic en Operaciones en el panel de navegación de la izquierda y compruebe el estado de la operación más reciente.
Configurar una cuota de almacenamiento suficiente para la tarea de mantenimiento de la base de datos crítica
De forma predeterminada, puedes usar hasta 16 TB de almacenamiento por clúster. Si necesitas más almacenamiento, te recomendamos que aumentes tu cuota de almacenamiento.
Evitar el uso excesivo de la CPU
Puedes ver el porcentaje de CPU disponible que está usando tu instancia en la página de detalles de la instancia de la Google Cloud consola. Para obtener más información, consulta Monitor instances (Monitorizar instancias). También puedes monitorizar el uso de la CPU y recibir alertas cuando se alcance un umbral específico mediante la opción Crear políticas de alertas de umbral de métricas.
Para evitar la sobreutilización, puedes escalar tu instancia a un número mayor de CPUs. Para cambiar las CPUs, es necesario reiniciar la instancia. Si tu instancia ya tiene el número máximo de CPUs, te recomendamos que dividas tu base de datos en varias instancias.
Evitar el agotamiento de la memoria
AlloyDB tiene una gestión automática de la memoria para evitar problemas de falta de memoria. Sin embargo, una presión de memoria constante podría provocar problemas de rendimiento. Cuando busques señales de agotamiento de la memoria, debes usar principalmente la métrica usage. Recomendamos que esta métrica se mantenga por debajo del 90% para que el rendimiento sea óptimo.
También puedes usar la métrica total_usage para observar el porcentaje de memoria disponible que está usando tu instancia de AlloyDB, incluida la memoria usada por 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 reutilizar la memoria de 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 tu base de datos en varias instancias.
Para obtener más información sobre cómo monitorizar el uso y las métricas de uso total en la consola Google Cloud , consulta Monitorizar instancias.
Asegúrate de que tu instancia tenga IDs de transacción óptimos
Para ver el uso de IDs de transacción de tu instancia en la página Explorador de métricas de la Google Cloud consola Google Cloud , define Resource Type
como AlloyDB for PostgreSQL Database
y Metric
como Percentage of instance's transaction IDs consumed
. Para obtener más información, consulta el artículo Crear gráficos con el explorador de métricas.
AlloyDB tiene una función de autovacuum adaptativa integrada que ayuda a mitigar los problemas relacionados con vacuum.
Arquitectura de datos
Divide las instancias grandes en instancias más pequeñas siempre que sea posible.
No uses demasiadas tablas de bases de datos.
Divide las instancias grandes en instancias más pequeñas siempre que sea posible
Cuando 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 plantea problemas que no se dan en un grupo de instancias más pequeñas.
No uses demasiadas tablas de bases de datos
El número de tablas de tu instancia no debe superar las 10.000. Si hay demasiadas tablas en la base de datos, el tiempo de actualización puede verse afectado.
Rendimiento de las consultas
Habilita el motor en columnas si ejecutas consultas analíticas.
Amplía la instancia para mejorar el rendimiento de las consultas.
Implementa grupos de lectura y descarga las consultas de lectura en el grupo de lectura.
Habilita el motor en columnas si ejecutas consultas analíticas
Consulta una descripción general del motor de columnas de AlloyDB. Consulta los tipos de consultas que se benefician de la habilitación del motor de columnas.
Puedes monitorizar el uso del motor de columnas.
Si no has usado antes el motor columnar, empieza por familiarizarte con la columnización automática. Después, puedes gestionar las columnas manualmente.
Ampliar la instancia para mejorar el rendimiento de las consultas
Si el rendimiento de las consultas es bajo, considera la posibilidad de aumentar la escala de tu instancia.
Cada SKU tiene configuraciones de vCPU y memoria limitadas, así como una caché rápida limitada. Si el tamaño de tus datos es grande y el rendimiento de las consultas es bajo, considera la posibilidad de aumentar la capacidad de tu instancia.
Implementar grupos de lectura y derivar las consultas de lectura al grupo de lectura
Si tu aplicación realiza muchas operaciones de lectura y escritura, te recomendamos que implementes pools de lectura y que transfieras las consultas de lectura a estos pools.
En el caso de las cargas de trabajo con muchas lecturas, añade instancias del grupo de lectura para descargar el tráfico de lectura de la instancia principal.
Implementación de aplicaciones
Usa técnicas de gestión de conexiones adecuadas.
Prueba la respuesta de tu aplicación a las actualizaciones de mantenimiento.
Prueba la respuesta de tu aplicación a las conmutaciones por error.
Evita las transacciones grandes.
Evita un gran número de subtransacciones.
Usa la versión más reciente de Auth Proxy.
Aplica buenas prácticas de gestión de conexiones
Aplica prácticas recomendadas de gestión de conexiones, como la agrupación de conexiones o el tiempo de espera exponencial.
Si usas buenas técnicas de gestión de conexiones, tu aplicación podrá aprovechar mejor los recursos y te ayudará a no superar los límites de conexiones de AlloyDB.
Probar la respuesta de tu aplicación a las actualizaciones de mantenimiento
Prueba la respuesta de tu aplicación a las actualizaciones de mantenimiento, que pueden producirse en cualquier momento durante la ventana de mantenimiento.
Puedes simular una actualización de mantenimiento realizando operaciones de escalado de recursos de computación o actualizando marcas estáticas de PostgreSQL, lo que activa el mantenimiento con un tiempo de inactividad reducido (LDTM).
Durante el tiempo de inactividad, tu instancia no estará disponible durante un breve periodo y se interrumpirán las conexiones existentes. Probar LDTM te permite entender mejor cómo gestiona tu aplicación el mantenimiento programado y la rapidez con la que se puede recuperar el sistema.
Probar la respuesta de tu aplicación a las conmutaciones por error
Prueba la respuesta de tu aplicación a las conmutaciones por error, que pueden producirse en cualquier momento.
Puedes iniciar manualmente una conmutación por error mediante la Google Cloud consola, la CLI de Google Cloud o la API. Para obtener más información, consulta Iniciar la conmutación por error.
Evitar transacciones grandes
Asegúrate de que las transacciones sean pequeñas y cortas. Si es necesario actualizar una base de datos grande, hazlo en varias transacciones más pequeñas en lugar de ejecutar una transacción grande.
Evita un gran número de subtransacciones
Evita un gran número de subtransacciones en una transacción cuando haya transacciones de larga duración.
En AlloyDB, al realizar una transacción en un bloque de errores de PL/pgSQL, se crean subtransacciones de la transacción correspondiente al bloque de errores. El rendimiento general del sistema se reduce si el número de subtransacciones supera las 64 cuando hay transacciones de larga duración.
Usar la versión más reciente de Auth Proxy
Si usas AlloyDB Auth Proxy, asegúrate de usar la versión más reciente. Para obtener más información, consulta Mantener actualizado el cliente de Auth Proxy.
Importación y exportación de datos
Restaurar a partir de copias de seguridad de Cloud SQL para PostgreSQL para la migración.
Acelerar las importaciones de instancias pequeñas.
Restaurar copias de seguridad de Cloud SQL para PostgreSQL para la migración
Para facilitar la migración, consulta el artículo Migrar de Cloud SQL para PostgreSQL a AlloyDB.
Para saber cómo migrar tus datos de Cloud SQL para PostgreSQL a AlloyDB mediante la replicación continua de datos, consulta Database Migration Service para migrar de PostgreSQL a AlloyDB.
Acelerar las importaciones en instancias pequeñas
Cuando importas conjuntos de datos grandes en instancias pequeñas, puedes aumentar temporalmente la CPU y la RAM de una instancia para mejorar el rendimiento.
Copia de seguridad y sistema de recuperación
Protege tus datos con las funciones de AlloyDB adecuadas.
Protege tu instancia y tus copias de seguridad frente a la eliminación accidental.
Protege tus datos con las funciones adecuadas de AlloyDB
Usa copias de seguridad, recuperación a un momento dado (PITR) y exportaciones para tener redundancia y protección. Cada una de ellas protege contra diferentes situaciones y se complementan entre sí en una estrategia de protección de datos sólida.
Las copias de seguridad son ligeras y te permiten restaurar los datos de tu instancia al estado que tenían en el momento en que se creó la copia. Sin embargo, la función de copia de seguridad de AlloyDB tiene algunas limitaciones. Si eliminas la instancia, también se eliminarán las copias de seguridad. No puedes crear copias de seguridad de una sola base de datos o tabla. Además, si la región en la que se encuentra la instancia no está disponible, no podrás restaurar la instancia a partir de esa copia de seguridad, aunque sea en una región disponible.
La recuperación a un momento dado te ayuda a recuperar una instancia a un momento dado. Por ejemplo, si un error provoca una pérdida de datos, puedes recuperar el estado de una base de datos antes de que se produjera el error. La recuperación a un momento dado siempre crea una instancia nueva. No puedes realizar una recuperación a un momento dado en una instancia que ya exista.
Las exportaciones tardan más en crearse porque se crea un archivo externo en Cloud Storage que se puede usar para recrear los datos. Las exportaciones no se verán afectadas si eliminas la instancia. Además, solo puedes exportar una base de datos o una tabla, en función del formato de exportación.
Protege tu instancia y tus copias de seguridad frente a la eliminación accidental
Para habilitar la prevención de eliminación accidental predeterminada, crea una instancia de AlloyDB con la Google Cloud consola o Terraform.
Utilice la función de exportación de AlloyDB para exportar sus datos y obtener una protección adicional. Usa Cloud Scheduler con la API de Cloud Scheduler para automatizar la gestión de las exportaciones.
Para casos más avanzados, usa Cloud Scheduler con funciones de Cloud Run para la automatización.