Por que minha consulta do Amazon Redshift continua excedendo o tempo limite do WLM que eu defini?

4 minuto de leitura
0

Defini um tempo limite de gerenciamento de workloads (WLM) para uma consulta do Amazon Redshift, mas a consulta continua em execução após a expiração desse período. Por que isso está acontecendo?

Descrição resumida

O tempo limite do WLM é aplicável a consultas somente durante a fase de execução da consulta. Quando o WLM não encerra uma consulta quando esperado, geralmente é porque a consulta passou algum tempo em estágios diferentes do estágio de execução. Por exemplo, a consulta pode esperar para ser analisada ou reescrita, esperar por um bloqueio, esperar por um lugar na fila do WLM, chegar ao estágio de retorno ou saltar para outra fila.

Resolução

Ao consultar STV_RECENTS, starttime é a hora em que a consulta entrou no cluster, e não a hora em que ela começa a ser executada. Quando a consulta está no estado Em execução em STV_RECENTS, ela está ativa no sistema. No entanto, a consulta não usa recursos do nó de computação até entrar no status STV_INFLIGHT. Para obter mais informações sobre planejamento de consultas, consulte Planejamento de consulta e fluxo de trabalho de execução.

Para visualizar o status de uma consulta em execução, consulte STV_INFLIGHT em vez de STV_RECENTS:

select * from STV_INFLIGHT where query = your_query_id;

Use essa consulta para obter mais informações sobre os estágios da consulta:

select * from SVL_QUERY_REPORT where query = your_query_id ORDER BY segment, step, slice;

Use a tabela STV_EXEC_STATE para o estado atual de todas as consultas que estão sendo executadas ativamente nos nós de computação:

select * from STV_EXEC_STATE where query = your_query_id ORDER BY segment, step, slice;

Conheça alguns motivos comuns pelos quais uma consulta pode parecer ser executada por mais tempo do que o período de tempo limite do WLM:

A consulta está na fase de “retorno”

Há duas etapas de “retorno”. Verifique STV_EXEC_STATE para ver se a consulta entrou em uma dessas fases de retorno:

  • O retorno ao nó líder a partir dos nós de computação
  • O retorno ao cliente a partir do nó líder

Uma reversão está em andamento

Se uma operação de linguagem de manipulação de dados (DML) encontrar um erro e reverter, ela não parecerá ter sido interrompida porque já estará em processo de reversão. Você pode visualizar as reversões consultando STV_EXEC_STATE. Você pode encontrar informações adicionais em STL_UNDONE.

A consulta passa tempo na fila antes de ser executada

Consulte STV_WLM_QUERY_STATE para ver o tempo de espera:

select * from STV_WLM_QUERY_STATE where query = your_query_id;

A consulta está aguardando um bloqueio

Se a consulta estiver visível em STV_RECENTS, mas não em STV_WLM_QUERY_STATE, talvez ela esteja aguardando um bloqueio e não tenha entrado na fila. Para obter mais informações sobre a verificação de bloqueios, consulte Como faço para detectar e liberar bloqueios no Amazon Redshift?

Uma consulta saltou para outra fila

Se uma consulta de leitura atingir o tempo limite na fila do WLM atual, ou se houver uma regra de monitoramento de consulta que especifique uma ação de salto, a consulta será enviada para a próxima fila do WLM. Para confirmar se a consulta saltou para a próxima fila:

Para evitar que as consultas saltem para outra fila, configure a fila do WLM ou as regras de monitoramento de consultas do WLM. Para obter mais informações sobre saltos de consulta, consulte Salto na fila de consultas do WLM.

Um problema de rede ou firewall

Se um servidor do Amazon Redshift tiver um problema de comunicação com seu cliente, talvez o servidor esteja preso no estado de “retorno ao cliente”. Verifique se há conflitos com componentes de rede, como configurações de firewall on-premises de entrada, regras de grupos de segurança de saída ou regras de lista de controle de acesso à rede (ACL da rede) de saída. Para obter mais informações, consulte Conexão de fora do Amazon EC2: problema de tempo limite do firewall.

Um problema com o cluster

Problemas no próprio cluster, como problemas de hardware, podem fazer com que a consulta congele. Quando isso acontece, o cluster está no status de “falha de hardware”. Para recuperar um cluster de nó único, restaure um snapshot. Em clusters de vários nós, os nós com falha são substituídos automaticamente.


Informações relacionadas

Ajustar a performance da consulta

Analisar e melhorar as consultas

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos