¿Por qué mi consulta de Amazon Redshift sigue superando el tiempo de espera de WLM que he establecido?

4 minutos de lectura
0

He definido un tiempo de espera de administración de cargas de trabajo (WLM) para una consulta de Amazon Redshift, pero la consulta sigue ejecutándose una vez vencido el plazo. ¿Por qué ocurre esto?

Breve descripción

El tiempo de espera de WLM solo se aplica a las consultas durante la fase de ejecución. Si WLM no termina una consulta cuando se esperaba, normalmente se debe a que la consulta ha pasado tiempo en etapas distintas a la de ejecución. Por ejemplo, la consulta puede esperar a ser analizada o reescrita, esperar por un bloqueo, esperar a que haya hueco en la cola de WLM, llegar a la etapa de retorno o saltar a otra cola.

Resolución

Cuando se consulta STV_RECENTS, starttime es el momento de entrada de la consulta en el clúster, no el de inicio de la ejecución. Si el estado de la consulta en STV_RECENTS es En ejecución, está activa en el sistema. Sin embargo, la consulta no utilizará recursos del nodo de computación hasta que pase al estado STV_INFLIGHT. Para obtener más información sobre la planificación de consultas, consulte Flujo de trabajo de planificación y ejecución de consultas.

Para ver el estado de una consulta en ejecución, consulte STV_INFLIGHT en vez de STV_RECENTS:

select * from STV_INFLIGHT where query = your_query_id;

Utilice esta consulta para obtener más información sobre las etapas de una consulta:

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

Utilice la tabla STV_EXEC_STATE para el estado actual de cualquier consulta activa que se esté ejecutando en nodos de computación:

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

Estos son algunos de los motivos habituales por los que puede parecer que una consulta se ejecuta durante un período superior al tiempo de espera de WLM:

La consulta se encuentra en la fase de «retorno»

Hay dos pasos de «retorno». Compruebe STV_EXEC_STATE para ver si la consulta ha entrado en una de estas fases de retorno:

  • El retorno al nodo principal desde los nodos de computación
  • El retorno al cliente desde el nodo principal

Hay una restauración en curso

Si se produce un error en una operación de lenguaje de manipulación de datos (DML) y se restaura, no parecerá que se detiene porque ya se encontrará en proceso de restauración. Puede ver las restauraciones mediante la consulta STV_EXEC_STATE. Encontrará información adicional en STL_UNDONE.

La consulta está un tiempo en cola antes de la ejecución

Consulte STV_WLM_QUERY_STATE para ver el tiempo en cola:

select * from STV_WLM_QUERY_STATE where query = your_query_id;

La consulta está en espera por un bloqueo

Si la consulta está visible en STV_RECENTS, pero no en STV_WLM_QUERY_STATE, es posible que esté esperando por un bloqueo y no haya entrado en la cola. Para obtener más información sobre la comprobación de bloqueos, consulte ¿Cómo puedo detectar y liberar bloqueos en Amazon Redshift?

Una consulta ha saltado a otra cola

Si una consulta de lectura alcanza el límite de tiempo de espera de su cola de WLM actual, o si hay una regla de monitorización de consultas que especifique una acción de salto, la consulta se enviará a la siguiente cola de WLM. Para confirmar si la consulta ha saltado a la siguiente cola:

Para evitar que las consultas salten a otra cola, configure la cola de WLM o reglas de monitorización de consultas de WLM. Para obtener más información sobre los saltos de consultas, consulte Salto de cola de consultas de WLM.

Un problema de red o firewall

Si un servidor de Amazon Redshift tiene problemas para comunicarse con su cliente, es posible que el servidor se quede atascado en el estado de «retorno al cliente». Compruebe si hay conflictos con los componentes de la red, como la configuración del firewall local entrante, las reglas de los grupos de seguridad de salida o las reglas de la lista de control de acceso de la red (ACL de red) de salida. Para obtener más información, consulte Conexión desde fuera de Amazon EC2: problema con el tiempo de espera del firewall.

Un problema con el clúster

Los problemas en el clúster propiamente dicho, por ejemplo, de hardware, pueden congelar la consulta. Si esto ocurre, el clúster entra en el estado «hardware-failure». Para recuperar un clúster de un solo nodo, restaure una instantánea. En los clústeres de varios nodos, los nodos con errores se reemplazan automáticamente.


Información relacionada

Ajuste del rendimiento de las consultas

Análisis y mejora de las consultas

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años