View a markdown version of this page

Carga de banco de dados - Amazon Aurora

Carga de banco de dados

Carga do banco de dados mede o nível de atividade das sessões no banco de dados. DBLoad é a principal métrica do Database Insights, e o Database Insights coleta a carga do banco de dados a cada segundo.

Sessões ativas

Uma sessão de base de dados relacional representa o diálogo de uma aplicação com um banco de dados relacional. Uma sessão ativa é uma conexão que enviou trabalho para o mecanismo de banco de dados e está aguardando uma resposta.

Uma sessão fica ativa quando está em execução na CPU ou aguardando a disponibilidade de um recurso para que ela possa continuar. Por exemplo, uma sessão ativa pode esperar que uma página (ou um bloco) seja lida na memória e, depois, consumir CPU enquanto faz a leitura dos dados na página.

Média de sessões ativas

A média de sessões ativas (AAS) é a unidade da métrica DBLoad no Database Insights. Ele mede quantas sessões estão ativas simultaneamente no banco de dados.

A cada segundo, o Database Insights faz uma amostragem do número de sessões que executam uma consulta simultaneamente. Para cada sessão ativa, o Database Insights coleta os dados a seguir:

  • Declaração do SQL

  • Estado da sessão (em execução na CPU ou em espera)

  • Host

  • Usuário executando o SQL

O Database Insights calcula a AAS dividindo o número total de sessões pelo número de amostras de um período específico. Por exemplo, a tabela a seguir mostra cinco amostras consecutivas de uma consulta em execução em intervalos de um segundo.

Amostra Número de sessões que executam a consulta AAS Cálculo
1 2 2 2 sessões no total/1 amostra
2 0 1 2 sessões no total/2 amostras
3 4 2 6 sessões no total/3 amostras
4 0 1.5 6 sessões no total/4 amostras
5 4 2 10 sessões no total/5 amostras

No exemplo anterior, a carga do banco de dados para o intervalo de tempo foi de 2 AAS. Essa medida significa que, em média, duas sessões estavam ativas em determinado momento durante o intervalo em que as cinco amostras foram obtidas.

Média de execuções ativas

A média de execuções ativas (AAE) por segundo está relacionada ao AAS. Para calcular a AAE, o Database Insights divide o tempo total de execução de uma consulta pelo intervalo de tempo. A tabela a seguir mostra o cálculo de AAE para a mesma consulta na tabela anterior.

Tempo decorrido (s) Tempo de execução total (s) AAE Cálculo
60 120 2 120 segundos de execução/60 segundos decorridos
120 120 1 120 segundos de execução/120 segundos decorridos
180 380 2.11 380 segundos de execução/180 segundos decorridos
240 380 1,58 380 segundos de execução/240 segundos decorridos
300 600 2 600 segundos de execução/300 segundos decorridos

Na maioria dos casos, o AAS e o AAE de uma consulta são aproximadamente os mesmos. No entanto, como as entradas para os cálculos são diferentes fontes de dados, os cálculos geralmente variam ligeiramente.

Dimensões

A métrica db.load é diferente das outras métricas da série temporal, pois você pode fragmentá-la em subcomponentes chamados de dimensões. Você pode pensar em dimensões como “pedaços” de categorias para as diferentes características da métrica DBLoad.

Quando você está diagnosticando problemas de performance, as seguintes dimensões geralmente são as mais úteis:

Consulte uma lista completa de dimensões dos mecanismos do Aurora em Database Insights.

Eventos de espera

Um evento de espera faz com que uma instrução SQL aguarde que um evento específico aconteça antes que ele possa continuar a execução. Eventos de espera são uma dimensão, ou categoria, importante para a carga do banco de dados, pois indicam onde o trabalho está impedido.

Todas as sessões ativas estão em um estado de espera ou de execução na CPU. Por exemplo, sessões consomem CPU quando procuram um buffer na memória, realizam um cálculo ou executam um código processual. Quando as sessões não estão consumindo CPU, elas podem estar aguardando a liberação de um buffer de memória, a leitura de um arquivo de dados ou a gravação em um log. Quanto mais tempo uma sessão aguardar recursos, menos tempo ela será executada na CPU.

Ao ajustar um banco de dados, muitas vezes você tenta descobrir os recursos que as sessões estão aguardando. Por exemplo, dois ou três eventos de espera podem representar 90% da carga do banco de dados. Essa medida significa que, em média, as sessões ativas estão passando a maior parte do tempo aguardando um pequeno número de recursos. Se você conseguir descobrir a causa dessas esperas, poderá tentar uma solução.

Os eventos de espera variam de acordo com o mecanismo de banco de dados:

Principais consultas SQL

Enquanto eventos de espera mostram gargalos, o gráfico Top SQL (SQL principal) mostra quais consultas estão contribuindo mais para a carga do banco de dados. Por exemplo, muitas consultas podem estar em execução no banco de dados, mas uma única consulta pode consumir 99% da carga do banco de dados. Nesse caso, a carga alta pode indicar um problema com a consulta.

Por padrão, o console do Database Insights exibe as principais consultas SQL que contribuem para a carga do banco de dados. O console também mostra estatísticas relevantes para cada instrução. Para diagnosticar problemas de performance para uma instrução específica, você pode examinar seu plano de execução.