Quiero evitar problemas de rendimiento de las aplicaciones cuando actualizo mi base de datos de Amazon Relational Database Service (Amazon RDS) para PostgreSQL.
Resolución
Configuración de un entorno de prueba para la instancia de producción de Amazon RDS para PostgreSQL
Para crear un entorno de prueba, debes restaurar la base de datos a partir de una instantánea reciente. O bien, lleva a cabo una restauración a un momento dado de la base de datos a la última hora restaurable y, a continuación, actualiza la instantánea recién restaurada.
Sigue estos pasos:
- Restaura la base de datos a partir de una instantánea reciente o realiza una restauración a un momento dado.
- Realiza la actualización de la versión en la base de datos restaurada.
Realización de pruebas funcionales
Nota: Para obtener más información, consulta Actualizaciones de Amazon RDS para PostgreSQL y Migración a la versión 17.2 en el sitio web de PostgreSQL.
Al realizar una actualización de una versión principal, cualquier cambio de versión puede afectar a la compatibilidad de la aplicación. Por ejemplo, un cambio en la administración de conexiones en RDS para PostgreSQL puede provocar la interrupción de la aplicación si el parámetro Max_connection no se ajusta correctamente.
Para identificar cualquier problema de compatibilidad de versiones, debes probar la funcionalidad de la aplicación con cargas de trabajo similares a las de producción en la base de datos de prueba. A continuación, puedes realizar los cambios necesarios en el código de la aplicación.
Realización de pruebas de rendimiento
Establecimiento del valor de referencia de rendimiento actual
Sigue estos pasos:
- Habilita auto_explain para el registro del plan de consultas. Para obtener más información, consulta auto_explain en el sitio web de PostgreSQL.
Nota: Para obtener más información, consulta ¿Cómo puedo registrar los planes de ejecución de las consultas para Amazon RDS PostgreSQL o Aurora PostgreSQL para ajustar el rendimiento de las consultas?
- Habilita el registro de consultas con duración. Para obtener más información, consulta ¿Cómo uso Amazon RDS para activar el registro de consultas en PostgreSQL?
- Activa la supervisión mejorada e información de rendimiento.
- Para obtener una comparación histórica del rendimiento y la carga de trabajo de la base de datos, exporta los registros de la base de datos a los registros de PostgreSQL a Amazon CloudWatch.
Identificación de los problemas de rendimiento
Para comparar las estrategias de ejecución y los costes entre las versiones de la base de datos, utiliza los planes de consulta EXPLAIN. Para supervisar y comparar los tiempos reales de respuesta a las consultas y los patrones de utilización de los recursos de las versiones anteriores, utiliza el registro de consultas e información de rendimiento.
Sigue estos pasos:
- Compara los planes EXPLAIN entre versiones. Para obtener más información, consulta EXPLAIN en el sitio web de PostgreSQL.
- Para actualizar las estadísticas de la tabla, utiliza ANALYZE con un default_statistics_target aumentado. Para obtener más información, consulta ANALYZE en el sitio web de PostgreSQL.
- Para eliminar la inflación de índices, usa REINDEX. Para obtener más información, consulta REINDEX en el sitio web de PostgreSQL.
- (Opcional) Para crear una estadística extendida para las columnas correlacionadas, utiliza el comando CREATE STATISTICS. Para obtener más información, consulta CREATE STATISTICS en el sitio web de PostgreSQL.
Nota: Utiliza la extensión pg_hint_plan si es necesario.
Realización de pruebas de estrés
Sigue estos pasos:
- Usa pgbench con scripts personalizados basados en la carga de trabajo de la aplicación. Para obtener más información, consulta pgbench en el sitio web de PostgreSQL.
- Para probar el comportamiento de la base de datos y supervisar las métricas de rendimiento bajo una carga elevada, debes aplicar una carga de trabajo similar a la de producción. Para obtener más información, consulta Observaciones y consideraciones comparativas de PostgreSQL y Análisis comparativo de Amazon RDS para PostgreSQL con volúmenes de registro dedicados.
Información relacionada
Configuración del método de planificador en el sitio web de PostgreSQL
Comprensión de las estadísticas en PostgreSQL
Cómo realizar una actualización principal de la versión de RDS para PostgreSQL