Amazon Redshift 쿼리가 내가 설정한 WLM 제한 시간을 계속 초과하는 이유는 무엇인가요?

3분 분량
0

Amazon Redshift 쿼리에 대해 워크로드 관리(WLM) 제한 시간을 설정했지만 이 기간이 만료된 후에도 쿼리가 계속 실행됩니다. 이유가 무엇인가요?

간략한 설명

WLM 제한 시간은 쿼리 실행 단계 중에만 쿼리에 적용됩니다. WLM이 예상대로 쿼리를 종료하지 않는 경우 일반적으로 쿼리가 실행 단계 이외의 단계에서 시간을 소모했기 때문입니다. 예를 들어 쿼리는 구문 분석 또는 다시 쓰기를 기다리거나, 잠금을 기다리거나, WLM 대기열의 스팟을 기다리거나, 반환 단계에 도달하거나, 다른 대기열로 건너뛰기 위해 대기할 수 있습니다.++

해결 방법

STV_RECENTS를 쿼리할 때 starttime은 쿼리가 실행되기 시작한 시간이 아니라 쿼리가 클러스터에 진입한 시간입니다. 쿼리가 STV_RECENTS에서 실행 중 상태이면 시스템에서 실시간으로 활성화됩니다. 하지만 쿼리는 STV_INFLIGHT 상태로 전환될 때까지 컴퓨팅 노드 리소스를 사용하지 않습니다. 쿼리 계획에 대한 자세한 내용은 쿼리 계획 및 실행 워크플로를 참조하세요.

실행 중인 쿼리의 상태를 보려면 STV_RECENTS 대신 STV_INFLIGHT를 쿼리합니다.

select * from STV_INFLIGHT where query = your_query_id;

쿼리 단계에 대한 자세한 내용을 알아보려면 이 쿼리를 사용합니다.

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

컴퓨팅 노드에서 활성으로 실행 중인 쿼리의 현재 상태에 대해서는 STV_EXEC_STATE 테이블을 사용합니다.

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

다음은 쿼리가 WLM 제한 시간보다 오래 실행되는 것처럼 보이는 몇 가지 일반적인 이유입니다.

쿼리가 "반환" 단계에 있습니다.

두 가지 "반환" 단계가 있습니다. STV_EXEC_STATE를 확인하여 쿼리가 다음 반환 단계 중 하나에 들어왔는지 확인합니다.

  • 컴퓨팅 노드에서 리더 노드로 반환
  • 리더 노드에서 클라이언트로 반환

롤백이 진행 중입니다.

데이터 조작 언어(DML) 작업에 오류가 발생하여 롤백하는 경우, 작업이 이미 롤백 중이기 때문에 종료된 것으로 보이지 않습니다. STV_EXEC_STATE를 쿼리하여 롤백을 볼 수 있습니다. STL_UNDONE에서 추가 정보를 확인할 수 있습니다.

쿼리가 실행 전에 대기하는 데 시간을 소비합니다.

STV_WLM_QUERY_STATE를 쿼리하여 대기열 시간을 확인합니다.

select * from STV_WLM_QUERY_STATE where query = your_query_id;

쿼리가 잠금 대기 중입니다.

쿼리를 STV_RECENTS에서는 볼 수 있지만 STV_WLM_QUERY_STATE에서는 볼 수 없는 경우 쿼리가 잠금 대기 중이고 대기열에 들어가지 않았을 수 있습니다. 잠금 확인에 대한 자세한 내용은 Amazon Redshift에서 잠금을 감지하고 해제하려면 어떻게 해야 하나요?를 참조하세요.

쿼리가 다른 대기열로 건너뛰었습니다.

읽기 쿼리가 현재 WLM 대기열의 제한 시간 한도에 도달하거나 건너뛰기 작업을 지정하는 쿼리 모니터링 규칙이 있는 경우 쿼리가 다음 WLM 대기열로 푸시됩니다. 쿼리가 다음 대기열로 건너뛰는지 여부를 확인하려면 다음을 수행합니다.

쿼리가 다른 대기열로 건너뛰지 않도록 하려면 WLM 쿼리 또는 WLM 쿼리 모니터링 규칙을 구성합니다. 쿼리 건너뛰기에 대한 자세한 내용은 WLM 쿼리 대기열 건너뛰기를 참조하세요.

네트워킹 또는 방화벽 문제

Amazon Redshift 서버가 클라이언트와 통신하는 데 문제가 있는 경우 서버는 "클라이언트로 반환(return to client)" 상태에서 멈출 수 있습니다. 인바운드 온프레미스 방화벽 설정, 아웃바운드 보안 그룹 규칙 또는 아웃바운드 네트워크 액세스 제어 목록(네트워크 ACL) 규칙과 같은 네트워킹 구성 요소와의 충돌을 확인합니다. 자세한 내용은 Amazon EC2 외부에서 연결할 때 — 방화벽 제한 시간 문제를 확인하세요.

클러스터 관련 문제

하드웨어 문제와 같은 클러스터 자체의 문제로 인해 쿼리가 중단될 수 있습니다. 이 경우 클러스터는 “hardware-failure(하드웨어 장애)” 상태가 됩니다. 단일 노드 클러스터를 복구하려면 스냅샷을 복원합니다. 다중 노드 클러스터에서 장애가 발생한 노드는 자동으로 대체됩니다.


관련 정보

쿼리 성능 튜닝

쿼리 분석 및 개선

AWS 공식
AWS 공식업데이트됨 3년 전