Database
 sql >> Base de Dados >  >> RDS >> Database

Monitoramento de desempenho para TimescaleDB


ClusterControl é uma ferramenta fácil de usar para monitorar o desempenho do TimescaleDB em tempo real. Ele fornece dezenas de gráficos predefinidos para exibir uma ampla variedade de estatísticas de desempenho relacionadas a usuários, throughput, tablespaces, redo logs, buffers, caches e I/O, por exemplo. Ele também fornece informações em tempo real sobre a carga de trabalho do banco de dados. Meu colega Sebastian escreveu anteriormente sobre como implantar facilmente o TimescaleDB. Neste blog, mostraremos como monitorar diferentes aspectos do desempenho do TimescaleDB com o ClusterControl. Antes de tudo, permita-me fornecer um pouco de introdução sobre o TimescaleDB.

O TimescaleDB é implementado como uma extensão no PostgreSQL, o que significa que um banco de dados Timescale é executado em uma instância do PostgreSQL. O modelo de extensão permite que o banco de dados aproveite muitos dos atributos do PostgreSQL, como confiabilidade, segurança e conectividade com uma ampla variedade de ferramentas de terceiros. Ao mesmo tempo, o TimescaleDB aproveita o alto grau de personalização disponível para extensões, adicionando ganchos ao planejador de consultas, modelo de dados e mecanismo de execução do PostgreSQL. Seu ecossistema fala a linguagem nativa do PostgreSQL e adiciona funções especializadas (e otimizações de consulta) para trabalhar com dados de séries temporais. Uma das vantagens que o TimescaleDB oferece sobre outros datastores especializados para armazenar dados de IoT ou de séries temporais é que você pode usar a sintaxe SQL, o que significa que pode aproveitar os JOINs. Portanto, consultar metadados diversos é mais fácil para os desenvolvedores - simplifica sua pilha e elimina silos de dados.

O TimescaleDB foi testado e comparado com centenas de bilhões de linhas e escala muito bem – especialmente com upserts ou inserções em comparação com o PostgreSQL vanilla. Se você estiver interessado em suas ferramentas de benchmarking, considere dar uma olhada no Time Series Benchmark Suite (TSBS).

Usar o TimescaleDB é muito fácil se você estiver familiarizado com um RDBMS como MySQL ou PostgreSQL. Você deve especificar seu banco de dados e criar uma extensão para o TimescaleDB. Uma vez criada, você cria uma Hypertable, que lida virtualmente com todas as interações do usuário com o TimescaleDB. Veja um exemplo abaixo:
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)

Simples assim. No entanto, uma vez que os dados se tornam grandes, uma pergunta de acompanhamento que você pode ter seria "Como você pode monitorar o desempenho do TimescaleDB"? Bem, é disso que trata o nosso blog. Vamos ver como você pode fazer isso com o ClusterControl.

Monitorando Clusters de TimescaleDB


Monitorar um cluster TimescaleDB no ClusterControl é quase o mesmo que monitorar um cluster de banco de dados PostgreSQL. Temos os gráficos de nível de cluster e nó, painéis, topologias, monitoramento de consultas e desempenho. Vamos passar por cima de cada um deles.

A guia "Visão geral"


Os gráficos de visão geral podem ser localizados em Cluster → Visão geral aba.

Nessa exibição, você pode visualizar a carga do servidor, a taxa de acertos do cache ou filtrar outras métricas - hits de blocos, leituras de blocos, confirmações ou número de conexões.

Você também pode criar suas configurações de painel personalizadas aqui, assim como meu exemplo abaixo, que busca blocks-hit e blocks-read.

Este é um bom lugar para começar, bem como monitorar a atividade da rede, verificando a transferência e recebimento de pacotes.

A guia "Nós"


Os gráficos de nós podem ser localizados acessando Cluster → Nós aba. Ele contém uma visão detalhada de seus nós, com métricas no nível do host e do banco de dados. Veja o gráfico abaixo:

Você também pode verificar os principais processos em execução no sistema host se clicar em "Top " guia. Veja um exemplo de captura de tela abaixo:

Há também alguns recursos ao clicar com o botão direito do mouse no nó em que você pode habilitar o arquivamento WAL ou reiniciar o daemon PostgreSQL ou reinicializar o host. Veja a imagem como mostrado abaixo:

Isso pode ser útil se você quiser agendar a manutenção em um nó com baixo desempenho.

A guia "Painéis"


O Dashboards acabou de ser lançado no ano passado e com o suporte dos dashboards do PostgreSQL, você pode aproveitar esses gráficos. Por exemplo, inseri 1 milhão de linhas no banco de dados nyc_data. Veja abaixo como isso se reflete no painel de visão geral do PostgreSQL:

Depois de inserir as linhas de 1,1 M, podemos ver que o nó 192.168.70.40 ainda tem desempenho e não há sinal de alta utilização de CPU e disco. Veja o painel a seguir enquanto monitoramos seu desempenho:

Além do Painel de visão geral do cluster, você também pode ter uma visão granular do desempenho do sistema. Veja imagem abaixo:

A guia "Topologia"

Essa guia é simples, mas oferece uma visualização da topologia de replicação mestre-escravo. Ele fornece informações breves, mas concisas, sobre o desempenho de seu mestre e escravos. Veja imagem abaixo:

A guia "Monitor de consultas"


O monitoramento de consultas no TimescaleDB é muito importante para um DBA, bem como para os desenvolvedores que lidam com a lógica do aplicativo. Essa guia é muito importante para entender o desempenho das consultas. Você pode visualizar aqui as principais consultas, consultas em execução, discrepâncias de consulta e estatísticas de consulta. Por exemplo, você pode visualizar as consultas em execução em todos os hosts ou filtrar com base no nó que está tentando monitorar. Um exemplo abaixo mostra como ele fica quando visualizado no Query Monitor.

Se você deseja coletar estatísticas de seus fragmentos/índices do TimescaleDB, você pode aproveitar aqui em Estatísticas de consulta. Ele mostra uma lista de seus índices que são usados ​​pelo TimescaleDB. Veja imagem abaixo:

Não apenas você pode visualizar as estatísticas de índices específicos, como também pode filtrá-los por suas estatísticas de E/S de tabela, estatísticas de E/S de índice ou suas esperas de bloqueio exclusivas. Assim, você pode conferir os outros itens da lista "Estatística" que você prefere monitorar.

A guia "Desempenho"


Nesta guia, é onde você pode revisar as variáveis ​​definidas para otimização e ajuste, configurar orientadores, verificar o crescimento do banco de dados e gerar uma análise de esquema para reunir tabelas sem chaves primárias.

Por exemplo, você pode visualizar lado a lado os nós disponíveis na configuração e comparar as variáveis. Veja aba abaixo:

É tudo por agora. Seria ótimo ouvir seus comentários e, principalmente, nos informar o que estamos perdendo.