O que é Análise de Tempo de Resposta?

No nosso post anterior abordamos superficialmente a análise do tempo de resposta, desta vez iremos nos focar mais neste tema e nos aprofundar.
A Análise do tempo de resposta é uma abordagem eficaz para melhorar o desempenho do banco de dados. Ela trabalha centrando DBAs e desenvolvedores no critério mais importante – o que faz com que as aplicações esperem. Também chamada de análise de tempo de espera, permite que as equipes de TI alinhem seus esforços com a entrega de nível de serviço para seus clientes.

A ilustração abaixo mostra o processo de monitoramento do Tempo de Resposta. Cada solicitação de consulta SQL passa pela instância do banco de dados. Medindo o tempo em cada passo, o tempo de resposta total pode ser analisado.

Análise de Performance de Banco de dados

Em vez de observar as estatísticas de saúde do servidor e fazer suposições sobre o impacto no desempenho, os métodos de tempo de espera e de resposta medem o tempo necessário para concluir uma operação desejada. As melhores implementações dividem o tempo em etapas discretas e individualmente mensuráveis ​​e identificam exatamente quais etapas nas quais as operações causam atrasos na aplicação. Uma vez que a missão principal do banco de dados é responder com um resultado, o tempo de resposta é o critério mais importante na tomada de decisões de desempenho do banco de dados.

Tempo de Resposta = Tempo de Processamento + Tempo de Espera

O tempo de resposta é definido como a soma do tempo de processamento real e o tempo que a sessão gasta esperando a disponibilidade de recursos, como um lock, um arquivo de log ou centenas de outros Eventos de Espera ou Tipos de Espera. Mesmo quando a sessão tem acesso à CPU (um tipo de espera da CPU, por exemplo), não é necessariamente sendo processado ativamente, pois muitas vezes a CPU está aguardando pelo I/O ou que  outra operação seja concluída antes que o processamento possa continuar. Quando várias sessões competem pelos mesmos recursos de processamento, o tempo de espera torna-se o componente mais significativo do Tempo de Resposta real.

Eventos de espera e tipos de espera

Para medir com precisão o tempo de resposta de um banco de dados, é necessário identificar discretamente os passos de acumulação de tempo. Os passos correspondentes às operações físicas de I/O, manipulação de buffers, espera em locks e todos os outros processos de banco de dados minúsculos são instrumentados pelos fornecedores de banco de dados. No SQL Server, essas etapas são denominadas Tipos de espera. No Oracle, Sybase e DB2, eles são chamados de Eventos de Espera. Enquanto as especificações são exclusivas para cada fornecedor, a ideia geral é a mesma. Esses Tipos de Espera / Eventos indicam a quantidade de tempo gasto enquanto as sessões esperam por cada recurso do banco de dados. Se os tipos / eventos de espera puderem ser monitorados e analisados ​​com precisão, os gargalos e consultas exatas que causam os atrasos podem ser determinados.

Tempo de resposta versus estatísticas convencionais

Ferramentas de monitoramento de desempenho de banco de dados típicas focam na saúde do servidor e taxas de execução. Mesmo com uma apresentação sofisticada essas estatísticas não refletem a experiência do usuário final ou revelam onde o problema se originou. Saber que uma operação ocorreu milhões de vezes não informa se isso foi realmente a causa de um atraso na aplicação.

Principais critérios para distinguir o Tempo de Resposta vs. os Métodos de Análise Convencional:

  • Medir o tempo de resposta para que uma ação ocorra, desde a recepção do pedido até o início da resposta.
  • Meça cada consulta SQL separadamente, para que os efeitos de tempo de resposta de um SQL específico possam ser isolados e avaliados. Medir o tempo total de resposta em toda a instância não fornece informações úteis.
  • Identificar as etapas internas discretas (Tipos / Eventos de Espera) que uma consulta SQL leva à medida que é processada. Tratar a instância como uma caixa-preta sem ver onde o tempo está sendo consumido internamente não ajuda a resolver os problemas.

Considerações práticas para a análise do tempo de resposta

A abordagem do Tempo de Resposta ao monitoramento de desempenho é apenas prática se puder ser implementada eficientemente em um ambiente de produção sensível ao desempenho. Por exemplo, o SolarWinds Database Performance Analyzer  utiliza tecnologia de baixo impacto e sem agentes para cumprir este requisito.

Aqui estão algumas considerações práticas ao avaliar uma solução de tempo de resposta:

 

Principais considerações Importância
Captura de dados de baixo impacto A captura de dados não deve colocar uma carga sobre seus sistemas de produção. As arquiteturas sem agente conduzem o processamento para um sistema separado, o que reduz o impacto no banco de dados de produção para menos de 1%.
Operação de banco de dados sem agente Elimine a necessidade de testar, instalar e manter o software em servidores de produção.
Monitoramento Passivo de Dados de Produção Monitorar sessões reais de produção, não simuladas.
Monitoramento Contínuo 24/7 Insista no monitoramento contínuo de todas as sessões em todos os servidores para garantir que qualquer operação possa ser examinada profundamente a qualquer momento. Os arquivos de rastreamento ocasionais não fornecerão cobertura contínua.

 

Com foco maior nos níveis de serviço como a medida mais importante na produtividade de TI, a análise do tempo de resposta emergiu como a técnica de monitoramento preferencial para as organizações voltadas para o cliente. A análise do tempo de resposta diz às empresas a origem exata do problema, o impacto que esse problema está provocando no usuário final e como a empresa pode corrigi-lo.