Analisar árvores de bloqueio para o Amazon Aurora PostgreSQL com o CloudWatch Database Insights
Para solucionar problemas de performance causados por bloqueios, é possível analisar árvores de bloqueio para bancos de dados Amazon Aurora PostgreSQL com o CloudWatch Database Insights usando as opções a seguir.
Menu suspenso Dividido por: escolha as dimensões Objeto de bloqueio, Sessão de bloqueio ou SQL de bloqueio no gráfico Carga do banco de dados para ver como os principais bloqueadores diferentes contribuem para a carga do banco de dados ao longo do tempo. Com o gráfico de carga do banco de dados, é possível analisar se os principais bloqueadores são constantes ou mudam com frequência. Em seguida, avance para o processo de solução de problemas dos bloqueadores.
Guia Análise de bloqueio: escolha Análise de carga do banco de dados e depois a guia Análise de bloqueio para visualizar informações sobre a contenção de bloqueios no banco de dados.
nota
O CloudWatch Database Insights é compatível com a análise de bloqueio para todas as versões do Aurora PostgreSQL. Para analisar árvores de bloqueio, você deve ter o modo Avançado do Database Insights habilitado. Para obter informações sobre como ativar o modo Avançado, consulte Ativação do modo Avançado do Database Insights para Amazon Aurora e Turning on the Advanced mode of Database Insights for Amazon Relational Database Service.
A guia de análise de bloqueios fornece informações sobre a contenção de bloqueios para seu banco de dados. A visualização da árvore de bloqueio mostra os relacionamentos e dependências entre as solicitações de bloqueio de diferentes sessões.
O Database Insights captura snapshots a cada 15 segundos. Os snapshots mostram os dados de bloqueio do seu banco de dados em um determinado momento.
nota
Quando o CloudWatch detecta um alto nível de bloqueio, ele exibe o banner Alto bloqueio detectado para a guia Análise de bloqueio. O CloudWatch detectará um alto nível de bloqueio se capturar um snapshot de bloqueio para cada intervalo de 15 segundos por 15 minutos consecutivos.
Cada nó na árvore representa uma sessão específica. O nó pai é uma sessão que está bloqueando seus nós filhos.
Para analisar árvores de bloqueio, use o procedimento a seguir.
Para analisar árvores de bloqueio
Faça login no AWS Management Console e abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/
. Escolha Insights.
Escolha Database Insights.
Escolha a visualização Instância de banco de dados.
Escolha uma instância de banco de dados.
Escolha a guia Análise de carga do banco de dados.
Escolha a guia Análise de bloqueio.
Para visualizar os dados de bloqueio de uma instância de banco de dados, escolha um período de 1 dia ou menos.
Escolha uma janela de snapshot. Por padrão, o Database Insights escolhe a janela de snapshot com o maior número de sessões bloqueadas.
Para visualizar os dados de bloqueio de um snapshot, escolha a hora em que o Database Insights capturou o snapshot.
Para expandir uma árvore de bloqueio, escolha a seta ao lado do ID da sessão.
Dados de snapshot de bloqueio
O Database Insights fornece as seguintes informações para cada solicitação de bloqueio. Para ver as colunas que não estão habilitadas por padrão, escolha o ícone Configurações da tabela Árvores de bloqueio e habilite outras colunas.
Nome da coluna | Definição | Padrão de coluna | Observações |
---|---|---|---|
|
O identificador exclusivo da sessão. |
Sim |
O |
|
O PID deste backend. |
Sim |
|
|
O número de sessões bloqueadas por este bloqueio. |
Sim |
O |
|
A última consulta executada por esta sessão. Para bloqueadores, não pode ser a consulta que mantém o bloqueio ativo. |
Sim |
|
|
O nome do evento de espera se o backend estiver aguardando no momento; caso contrário, o valor será NULL. |
Sim |
|
|
O tempo (em segundos) desde o início deste bloqueio. |
Sim |
O |
|
O modo de bloqueio mantido pela sessão bloqueadora. |
Não |
|
|
O modo de bloqueio solicitado pela sessão em espera. |
Não |
|
|
O nome da aplicação que está conectada a este backend. |
Não |
|
|
A hora de início da transação de bloqueio ou null se nenhuma transação estiver ativa. |
Não |
|
|
A hora em que uma sessão de usuário em espera começou a esperar por esse bloqueio, ou null se o bloqueio for mantido. |
Não |
|
|
A hora em que uma sessão de usuário foi iniciada. |
Não |
|
|
O estado de um backend. |
Não |
|
|
O tipo de evento de espera pelo qual esta sessão está aguardando. |
Não |
|
|
O momento em que a última consulta foi iniciada. |
Não |
|
|
O nome do usuário conectado a esse backend. |
Não |
|
|
O nome do host do cliente conectado, conforme relatado por uma pesquisa de DNS reversa de |
Não |
|
|
O número da porta TCP que o cliente está usando para comunicação com esse backend, ou |
Não |
|
|
O endereço IP do cliente conectado a esse backend. Quando o campo é nulo, indica que o cliente está conectado por meio de um socket Unix na máquina do servidor ou que esse é um processo interno, como autovacuum. |
Não |
|
|
O valor será verdadeiro se o bloqueio for mantido e falso se o bloqueio estiver sendo aguardado. |
Não |
|
|
O número da tupla alvo do bloqueio dentro da página, ou nulo se o alvo não for uma tupla. |
Não |
|
|
O número da página alvo do bloqueio dentro da relação, ou nulo se o alvo não for uma página de relação ou tupla. |
Não |
|
|
O ID da transação alvo do bloqueio, ou nulo se o alvo não for um ID de transação. |
Não |
|
|
O OID da relação alvo do bloqueio, ou nulo se o alvo não for uma relação ou parte de uma relação. |
Não |
|
|
O OID do alvo do bloqueio em seu catálogo do sistema, ou nulo se o alvo não for um objeto geral do banco de dados. |
Não |
|
|
O OID do banco de dados no qual o alvo do bloqueio existe, zero se o alvo for um objeto compartilhado ou nulo se o alvo for um ID de transação. |
Não |
|
|
O nome do banco de dados em que o alvo do bloqueio existe. |
Não |
|
|
O tipo do objeto bloqueável: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, advisory ou applytransaction. |
Não |
|
|
O valor será verdadeiro se o bloqueio foi obtido pelo caminho rápido e falso se obtido da tabela de bloqueio principal. |
Não |
|
Para obter mais informações sobre os valores nas visualizações pg_stat_activity
e pg_locks
, consulte os tópicos a seguir na documentação do PostgreSQL.