sql >> Base de Datos >  >> RDS >> PostgreSQL

Últimas tendencias de PostgreSQL:la mayoría de las tareas que consumen mucho tiempo y métricas importantes para realizar un seguimiento

PostgreSQL, la cuarta base de datos más popular y el DBMS del año en 2017, se ha disparado en popularidad entre las comunidades de desarrollo y bases de datos de todo el mundo. Robando participación de mercado a los líderes Oracle, MySQL y Microsoft SQL Server, el alojamiento de PostgreSQL también es muy aprovechado por nuevas empresas en espacios emocionantes como IoT, comercio electrónico, SaaS, análisis y más.

¿Cuáles son las tendencias en la gestión de PostgreSQL?

Asistimos a PostgresOpen en San Francisco el mes pasado para descubrir las últimas tendencias de los propios expertos.

Tareas de administración de PostgreSQL que consumen más tiempo

Entonces, ¿qué es lo que consume su tiempo en el frente de administración de PostgreSQL? Si bien hay miles de tareas relacionadas con la administración de sus implementaciones de producción de PostgreSQL, la administración de consultas fue el líder fuerte con más del 30 % de los encuestados.

La administración del espacio ocupó un distante segundo lugar, ya que el 15 % de los usuarios de PostgreSQL consideraron que era su tarea más difícil, seguida de la replicación, las actualizaciones y la supervisión. El 23 % de los usuarios de PostgreSQL cayó en la categoría "Todos los demás", que consiste en tareas como parches, recuperaciones, particiones y migraciones.

Desglose de la gestión de consultas de PostgreSQL

Con la gran ventaja en la gestión de consultas de PostgreSQL, profundizamos más para ver qué tareas específicas consumían su tiempo. Los resultados se distribuyen a lo largo de todo el proceso de gestión de consultas, desde la estructuración en la configuración hasta la optimización después del análisis.

Para explicar esto con más detalle, empecemos por el principio del proceso de gestión de consultas:

Estructura de consulta

El segmento más pequeño, la gestión de estructuras de consulta, representó el 22 % de las respuestas de los usuarios de PostgreSQL que seleccionaron las consultas como su tarea de gestión que más tiempo consume.

Antes de comenzar, debe crear un plan de consulta de PostgreSQL en torno a sus clústeres para hacer coincidir su estructura de consulta con las propiedades de sus datos. Estos consisten en nodos, que van desde nodos de exploración en el nivel inferior para retornos de tabla de fila sin procesar, junto con filas que no son de tabla, como valores.

Análisis de consultas lentas

Después de haber establecido su estructura, el siguiente paso es analizar sus consultas para identificar las consultas lentas que pueden estar afectando el rendimiento de su aplicación. De forma predeterminada, las "consultas lentas" se definen como consultas que tardan más de 100 ms.

Optimización de consultas

Ahora que ha identificado sus consultas lentas, comienza el verdadero trabajo:optimizar sus consultas de PostgreSQL. El ajuste del rendimiento de Postgres puede ser una tarea espantosa, pero con la identificación y el análisis adecuados, puede afinar los cuellos de botella y realizar los cambios de consulta necesarios y agregar índices donde sea necesario para mejorar su ejecución. Aquí hay un excelente artículo sobre consultas de ajuste de rendimiento en PostgreSQL.

Últimas tendencias de PostgreSQL:Tareas que consumen más tiempo y métricas importantes para rastrearHaga clic para twittear

Métricas más importantes para realizar un seguimiento del rendimiento de PostgreSQL

Ahora que hemos identificado la tarea de administración de PostgreSQL que consume más tiempo, echemos un vistazo más profundo a las métricas importantes que los usuarios de PostgreSQL rastrean para optimizar su rendimiento.

Los resultados de las métricas de PostgreSQL más importantes fueron significativamente más uniformes que las tareas de administración, lo que resultó en un empate de cuatro vías entre las estadísticas de replicación, el uso de CPU y RAM, las transacciones por segundo (TPS) y consultas lentas:

Estadísticas de replicación

Supervisar el estado de replicación de PostgreSQL es una tarea crucial para garantizar que las replicaciones se ejecuten correctamente y que las implementaciones de producción permanezcan altamente disponibles. El proceso de replicación debe personalizarse para adaptarse mejor a las necesidades de su aplicación, y el monitoreo continuo de puntos finales es la mejor manera de garantizar que sus datos estén seguros y listos para la recuperación.

Es importante realizar un seguimiento de las métricas tanto en sus servidores de reserva como en los servidores principales. Sus servidores en espera deben ser monitoreados para la replicación entrante y el estado de recuperación, y sus servidores primarios deben ser monitoreados para la replicación saliente y las ranuras de replicación. Si está utilizando la replicación de transmisión de PostgreSQL, las ranuras de replicación no siempre son necesarias. La replicación de transmisión garantiza la disponibilidad inmediata de datos en sus servidores en espera y es ideal para servidores con TPS bajo.

Uso de CPU y RAM

El seguimiento del uso de su CPU y RAM (memoria) son métricas cruciales para monitorear y garantizar el estado de sus servidores PostgreSQL. Si el uso de su CPU es demasiado alto, su aplicación experimentará ralentizaciones que harán sufrir a sus usuarios. A menudo es el resultado de consultas mal optimizadas o incluso de paralelismos de consulta elevados. Supervisar la RAM es muy importante para asegurarse de que tiene suficiente espacio en el disco y para comprender exactamente para qué se utiliza su RAM. Se recomienda tener aproximadamente el 25% de su memoria asignada para shared_buffers. PostgreSQL también establece por defecto el tamaño del búfer de la memoria de trabajo en 4 MB, que a menudo es demasiado pequeño y genera tiempos de ejecución elevados.

Transacciones por segundo

Supervisar la cantidad de transacciones por segundo le permite determinar la carga en el sistema y el rendimiento actual. Al analizar esta métrica, se puede decidir escalar el sistema en consecuencia para lograr el rendimiento deseado. También puede determinar cómo un cambio en los ajustes de configuración o los recursos del sistema afecta el rendimiento.

Consultas lentas

Las consultas ineficientes pueden ralentizar el rendimiento de PostgreSQL incluso si el sistema está configurado con los recursos adecuados. Siempre es una buena práctica analizar estas consultas ineficientes y corregirlas. PostgreSQL proporciona un parámetro llamado log_min_duration_statement . Cuando se configura, hace que se registre la duración de cada declaración completada si la declaración se ejecutó durante al menos el número especificado de milisegundos. Una vez que se obtienen las consultas lentas, puede ejecutar EXPLAIN ANALYZE para comprender el plan de ejecución. Esto le permitirá realizar un seguimiento del problema y optimizar la consulta en consecuencia. Por lo tanto, monitorear regularmente las consultas lentas evitará la lentitud en el rendimiento.

Encuéntrenos la próxima semana en el evento PostgresConf Silicon Valley 2018, donde esperamos descubrir más información sobre las tendencias en el espacio de gestión de PostgreSQL. Si tiene preguntas o comentarios, no dude en compartirlos con nosotros aquí en nuestros comentarios o en Twitter en @scalegridio.