sql >> Base de Datos >  >> RDS >> Database

Supervisión del rendimiento para TimescaleDB

ClusterControl es una herramienta fácil de usar para monitorear el rendimiento de TimescaleDB en tiempo real. Proporciona docenas de gráficos predefinidos para mostrar una amplia variedad de estadísticas de rendimiento con respecto a los usuarios, el rendimiento, los espacios de tablas, los registros de rehacer, los búferes, las cachés y las E/S, por ejemplo. También proporciona información en tiempo real sobre la carga de trabajo de la base de datos. Mi colega Sebastian escribió anteriormente sobre cómo implementar fácilmente TimescaleDB. En este blog, le mostraremos cómo monitorear diferentes aspectos del rendimiento de TimescaleDB con ClusterControl. En primer lugar, permítame brindarle una pequeña introducción sobre TimescaleDB.

TimescaleDB se implementa como una extensión en PostgreSQL, lo que significa que una base de datos Timescale se ejecuta dentro de una instancia de PostgreSQL. El modelo de extensión permite que la base de datos aproveche muchos de los atributos de PostgreSQL, como la confiabilidad, la seguridad y la conectividad con una amplia gama de herramientas de terceros. Al mismo tiempo, TimescaleDB aprovecha el alto grado de personalización disponible para las extensiones al agregar enlaces profundos en el planificador de consultas, el modelo de datos y el motor de ejecución de PostgreSQL. Su ecosistema habla el idioma nativo de PostgreSQL y agrega funciones especializadas (y optimizaciones de consultas) para trabajar con datos de series temporales. Una de las ventajas que TimescaleDB ofrece sobre otros almacenes de datos especializados para almacenar IoT o datos de series temporales es que puede usar la sintaxis SQL, lo que significa que puede aprovechar las JOIN. Por lo tanto, consultar metadatos diversos es más fácil para los desarrolladores:simplifica su pila y elimina los silos de datos.

TimescaleDB ha sido probado y comparado con cientos de miles de millones de filas, y escala muy bien, especialmente con upserts o inserciones en comparación con PostgreSQL estándar. Si está interesado en sus herramientas de evaluación comparativa, podría considerar echar un vistazo a su Time Series Benchmark Suite (TSBS).

Usar TimescaleDB es bastante fácil si está familiarizado con un RDBMS como MySQL o PostgreSQL. Debe especificar su base de datos y crear una extensión para TimescaleDB. Una vez creada, crea una Hypertable, que maneja virtualmente todas las interacciones del usuario con TimescaleDB. Vea un ejemplo a continuación:

nyc_data=# CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
WARNING:  
WELCOME TO
 _____ _                               _     ____________  
|_   _(_)                             | |    |  _  \ ___ \ 
  | |  _ _ __ ___   ___  ___  ___ __ _| | ___| | | | |_/ / 
  | | | |  _ ` _ \ / _ \/ __|/ __/ _` | |/ _ \ | | | ___ \ 
  | | | | | | | | |  __/\__ \ (_| (_| | |  __/ |/ /| |_/ /
  |_| |_|_| |_| |_|\___||___/\___\__,_|_|\___|___/ \____/
               Running version 1.2.2
For more information on TimescaleDB, please visit the following links:

 1. Getting started: https://docs.timescale.com/getting-started
 2. API reference documentation: https://docs.timescale.com/api
 3. How TimescaleDB is designed: https://docs.timescale.com/introduction/architecture

Note: TimescaleDB collects anonymous reports to better understand and assist our users.
For more information and how to disable, please see our docs https://docs.timescaledb.com/using-timescaledb/telemetry.

CREATE EXTENSION
nyc_data=# SELECT create_hypertable('rides_count', 'one_hour');
    create_hypertable     
--------------------------
 (1,public,rides_count,t)
(1 row)

Simple como eso. Sin embargo, una vez que los datos aumentan, una pregunta de seguimiento que podría tener sería "¿Cómo puede monitorear el rendimiento de TimescaleDB"? Bueno, de eso se trata nuestro blog. Veamos cómo puedes hacer esto con ClusterControl.

Supervisión de clústeres de TimescaleDB

Monitorear un clúster de TimescaleDB en ClusterControl es casi lo mismo que monitorear un clúster de base de datos de PostgreSQL. Tenemos gráficos a nivel de clúster y de nodo, paneles, topologías, supervisión de consultas y rendimiento. Repasemos cada uno de estos.

La pestaña "Resumen"

Los gráficos de resumen se pueden ubicar yendo a Cluster → Overview pestaña.

En esta vista, puede ver la carga del servidor, la proporción de aciertos de caché o filtrar en otras métricas:aciertos de bloques, lecturas de bloques, confirmaciones o número de conexiones.

También puede crear la configuración de su panel de control personalizado aquí, al igual que mi ejemplo a continuación, que obtiene bloqueos de impacto y bloqueo de lectura.

Este es un buen lugar para comenzar, así como para monitorear la actividad de la red, verificar la transferencia y recibir paquetes.

La pestaña "Nodos"

Los gráficos de nodos se pueden ubicar yendo a Cluster → Nodes pestaña. Contiene una vista en profundidad de sus nodos, con métricas a nivel de host y base de datos. Vea el gráfico a continuación:

También puede verificar los principales procesos que se ejecutan en el sistema host si hace clic en "Top pestaña ". Vea una captura de pantalla de ejemplo a continuación:

También hay algunas funciones al hacer clic con el botón derecho en el nodo en las que puede habilitar el archivado WAL o reiniciar el demonio PostgreSQL o reiniciar el host. Vea la imagen como se muestra a continuación:

Esto puede ser útil si desea programar el mantenimiento en un nodo de bajo rendimiento.

La pestaña "Paneles de control"

Dashboards se lanzó el año pasado y, con la compatibilidad con los paneles de PostgreSQL, puede aprovechar estos gráficos. Por ejemplo, inserté 1 millón de filas en la base de datos nyc_data. Vea a continuación cómo se refleja en el panel de información general de PostgreSQL:

Después de insertar los 1,1 millones de filas, podemos ver que el nodo 192.168.70.40 sigue funcionando y no hay señales de uso elevado de CPU ni de disco. Consulte el siguiente panel mientras supervisamos su rendimiento:

Además del panel de información general del clúster, también puede tener una vista granular del rendimiento del sistema. Ver imagen a continuación:

La pestaña "Topología"

Esta pestaña es simple pero ofrece una vista de su topología de replicación maestro-esclavo. Le brinda información breve pero concisa sobre cómo se desempeñan su maestro y sus esclavos. Ver imagen a continuación:

La pestaña "Supervisión de consultas"

El monitoreo de consultas en TimescaleDB es muy importante para un DBA, así como para los desarrolladores que manejan la lógica de la aplicación. Esta pestaña es muy importante para entender cómo funcionan las consultas. Puede ver aquí las principales consultas, las consultas en ejecución, los valores atípicos de las consultas y las estadísticas de las consultas. Por ejemplo, puede ver las consultas que se ejecutan en todos los hosts o puede filtrar según el nodo que intenta monitorear. Un ejemplo a continuación muestra cómo se ve cuando se ve en el Monitor de consultas.

Si desea recopilar estadísticas de sus fragmentos/índices de TimescaleDB, puede aprovechar aquí en Estadísticas de consultas. Muestra una lista de sus índices que utiliza TimescaleDB. Ver imagen a continuación:

No solo puede ver las estadísticas de índices específicos, sino que también puede filtrarlos por sus estadísticas de E/S de tabla, estadísticas de E/S de índice o sus esperas de bloqueo exclusivas. Por lo tanto, puede consultar los otros elementos en la lista de "Estadísticas" que prefiere monitorear.

La pestaña "Rendimiento"

En esta pestaña, aquí es donde puede revisar las variables configuradas para la optimización y el ajuste, configurar asesores, verificar el crecimiento de la base de datos y generar un análisis de esquema para recopilar tablas sin claves principales.

Por ejemplo, puede ver uno al lado del otro los nodos disponibles en la configuración y comparar variables. Ver pestaña a continuación:

Eso es todo por ahora. Sería genial escuchar sus comentarios y, especialmente, dejarnos saber lo que nos estamos perdiendo.