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 쿼리 모니터링 규칙을 구성하세요. 쿼리 건너뛰기에 대한 자세한 내용은 WLM 쿼리 대기열 건너뛰기를 참조하세요.
네트워킹 또는 방화벽 문제
Amazon Redshift 서버가 클라이언트와 통신하는 데 문제가 있는 경우 서버가 “클라이언트로 복귀” 상태로 멈출 수 있습니다. 인바운드 온프레미스 방화벽 설정, 아웃바운드 보안 그룹 규칙 또는 아웃바운드 네트워크 액세스 제어 목록(네트워크 ACL) 규칙과 같은 네트워킹 구성 요소와의 충돌을 확인하세요. 자세한 내용은 Amazon EC2 외부에서 연결 --방화벽 시간 초과 문제를 참조하세요.
클러스터 관련 문제
하드웨어 문제와 같은 클러스터 자체의 문제로 인해 쿼리가 중단될 수 있습니다. 클러스터 문제로 인해 쿼리가 중단되면 클러스터는 “하드웨어 고장” 상태가 됩니다. 단일 노드 클러스터를 복구하려면 스냅샷을 복원하십시오. 다중 노드 클러스터에서는 고장이 발생한 노드가 자동으로 교체됩니다.
관련 정보
쿼리 성능 조정
쿼리 분석 및 개선