워크로드 관리 - Amazon Redshift

워크로드 관리

자동 WLM 또는 수동 WLM으로 실행되도록 Amazon Redshift WLM을 구성할 수 있습니다.

Amazon Redshift를 사용하면 동시 쿼리 및 사용자 워크로드를 관리하고 우선순위를 지정하여 성능 및 리소스 사용률을 최적화할 수 있습니다. 워크로드 관리(WLM)를 사용하면 대기열, 사용자 그룹 및 기타 구문을 정의하여 다양한 유형의 쿼리 또는 사용자에게 할당된 리소스를 제어할 수 있습니다.

다음 섹션에서는 Amazon Redshift의 특정 워크로드 관리 기능을 간략하게 설명하고 구성 및 모니터링에 대해 알아봅니다.

자동 WLM

시스템 처리량을 극대화하고 리소스를 효율적으로 사용하려면 Amazon Redshift가 자동 WLM을 통해 동시 쿼리를 실행하기 위해 리소스를 나누는 방법을 관리하게 할 수 있습니다. 자동 WLM는 쿼리를 실행하는 데 필요한 리소스를 관리합니다. Amazon Redshift는 동시에 실행되는 쿼리의 수와 디스패치된 각 쿼리에 할당되는 메모리의 양을 결정합니다. 동시 쿼리를 실행하기 위해 리소스가 분할되는 방식을 Amazon Redshift가 관리하도록 하려면 자동 WLM을 사용하세요. 자세한 내용은 자동 WLM 구현 단원을 참조하십시오.

동시성 확장과 자동 WLM을 사용하면 일관되게 빠른 쿼리 성능으로 동시 사용자 및 동시 쿼리를 사실상 무제한 지원할 수 있습니다. 자세한 내용은 동시성 확장 단원을 참조하십시오.

참고

대부분의 경우 자동 WLM을 사용하는 것이 좋습니다. 수동 WLM을 사용 중이고 자동 WLM으로 마이그레이션하려는 경우 수동 WLM에서 자동 WLM으로 마이그레이션 섹션을 참조하세요.

자동 WLM을 사용하면 대기열에 있는 워크로드의 쿼리 우선 순위를 정의할 수 있습니다. 쿼리 우선 순위에 대한 자세한 내용은 쿼리 우선 순위 섹션을 참조하세요.

수동 WLM

다수의 세션 또는 사용자가 동시에 쿼리를 실행할 수도 있습니다. 일부 쿼리는 장기간 클러스터 리소스를 소모하여 다른 쿼리의 성능에 영향을 미칠 수 있습니다. 특수한 사용 사례의 경우 수동 WLM을 통해 이를 관리할 수 있습니다. 동시성을 보다 세밀하게 제어하려면 수동 WLM을 사용하세요.

장기 실행 쿼리와 단기 실행 쿼리를 위한 별도의 대기열을 만들도록 WLM 구성을 수정하여 시스템 성능을 관리할 수 있습니다. 실행 시간에 쿼리를 사용자 그룹 또는 쿼리 그룹에 따라 이 대기열로 라우팅할 수 있습니다.

쿼리를 특정 대기열로 라우팅하는 규칙은 쿼리를 실행하는 사용자나 지정하는 레이블을 기준으로 설정할 수 있습니다. 또한 각 대기열에 할당되는 메모리 크기도 구성이 가능합니다. 따라서 대용량 쿼리를 실행하는 대기열에는 다른 대기열보다 많은 메모리를 할당하는 것이 좋습니다. 장기 실행 쿼리를 제한하기 위해 QMR(쿼리 모니터링 규칙)을 구성할 수도 있습니다. 자세한 내용은 수동 WLM 구현 단원을 참조하십시오.

참고

총 15개 이하의 쿼리 슬롯이 있는 수동 WLM 쿼리 대기열을 구성하는 것이 좋습니다. 자세한 내용은 동시성 레벨 단원을 참조하십시오.

수동 WLM 구성과 관련하여 대기열에 할당할 수 있는 최대 슬롯은 50개라는 점에 유의하세요. 그러나 이는 자동 WLM 구성에서 Amazon Redshift 클러스터가 항상 50개의 쿼리를 동시에 실행한다는 의미는 아닙니다. 이는 클러스터의 메모리 요구 사항이나 기타 유형의 리소스 할당에 따라 변경될 수 있습니다.

WLM 모드 전환

Amazon Redshift 콘솔을 사용하여 자동 또는 수동 WLM을 활성화할 수 있습니다.

  1. Switch WLM mode(WLM 모드 전환)를 선택합니다.

  2. 자동 WLM으로 설정하려면 자동 WLM을 선택합니다. 그러면 최대 8개의 대기열이 쿼리를 관리하는 데 사용되고, 메모리Concurrency on main(기본의 동시성) 필드가 모두 Auto(자동)로 설정됩니다. 또한 쿼리의 기본 우선 순위는 정상으로 설정됩니다.

  3. Amazon Redshift 콘솔을 사용하여 수동 구성을 사용하려면 수동 WLM으로 전환합니다. 그런 다음 쿼리를 관리하는 데 사용되는 대기열과, Memory(메모리)Concurrency on main(기본의 동시성) 필드 값을 지정합니다. 수동 구성에서는 쿼리 대기열을 최대 8개까지 구성하고, 각 대기열에서 동시에 실행할 수 있는 쿼리 수를 설정할 수 있습니다.

WLM 구성 수정

WLM 구성을 수정하는 가장 쉬운 방법은 Amazon Redshift 콘솔을 사용하는 것입니다. AWS CLI 또는 Amazon Redshift API를 사용할 수도 있습니다.

클러스터를 자동 WLM과 수동 WLM 간에 전환하면 클러스터가 pending reboot 상태가 됩니다. 변경 사항은 다음번 클러스터 재부팅까지 적용되지 않습니다.

WLM 구성 수정에 대한 자세한 내용은 Amazon Redshift 관리 가이드워크로드 관리 구성 섹션을 참조하세요.

수동 WLM에서 자동 WLM으로 마이그레이션

시스템 처리량을 극대화하고 리소스를 최대한 효율적으로 사용하려면 해당 쿼리에 자동 WLM을 설정하는 것이 좋습니다. 수동 WLM에서 자동 WLM으로 원활하게 전환하도록 설정하려면 다음 접근 방식을 취하는 것을 고려하십시오.

수동 WLM에서 자동 WLM으로 마이그레이션하고 쿼리 우선 순위를 사용하려면 새로운 파라미터 그룹을 생성한 후 이 파라미터 그룹을 해당 클러스터에 연결하는 것이 좋습니다. 자세한 내용은 Amazon Redshift 관리 가이드Amazon Redshift 파라미터 그룹 섹션을 참조하세요.

중요

파라미터 그룹을 변경하거나 수동 WLM에서 자동 WLM으로 전환하려면 클러스터 재부팅이 필요합니다. 자세한 내용은 WLM 동적 및 정적 구성 속성 단원을 참조하십시오.

예를 들어 세 개의 수동 WLM 대기열이 있는 경우를 살펴보겠습니다. 즉 ETL 워크로드, 분석 워크로드 및 데이터 과학 워크로드에 각각 한 개씩 있는 경우를 말합니다. ETL 워크로드는 6시간마다 실행되고, 분석 워크로드는 하루종일 실행되며, 데이터 과학 워크로드는 언제든지 급증할 수 있습니다. 수동 WLM을 사용해 비즈니스에 대한 각 워크로드의 중요도에 따라 각 워크로드 대기열이 차지할 메모리 및 동시성을 지정할 수 있습니다. 메모리 및 동시성을 지정하는 것은 까다로울 뿐만 아니라 클러스터 리소스가 통계적으로 분할되기 때문에 워크로드의 하위 집합만 실행되고 있을 때는 낭비되는 결과를 낳기도 합니다.

쿼리 우선 순위가 있는 자동 WLM을 사용하여 워크로드의 상대적 우선 순위를 나타냄으로써 이러한 문제를 피할 수 있습니다. 이와 같은 예의 경우 다음 절차를 따르십시오.

  • 새로운 파라미터 그룹을 생성하고 Auto WLM(자동 WLM) 모드로 전환합니다.

  • 세 가지 워크로드, 즉 ETL 워크로드, 분석 워크로드 및 데이터 과학 워크로드 각각에 대기열을 추가합니다. 수동 WLM 모드와 함께 사용된 각 워크로드에 동일한 사용자 그룹을 사용합니다.

  • ETL 워크로드는 High, 분석 워크로드는 Normal, 데이터 과학 워크로드는 Low로 우선 순위를 설정합니다. 이러한 우선 순위는 다양한 워크로드 또는 사용자 그룹에 대한 비즈니스 우선 순위를 반영합니다.

  • 선택적으로 ETL 워크로드가 6시간마다 실행되는 경우에도 이 대기열에 있는 쿼리가 일관된 성능을 발휘하도록 분석 또는 데이터 과학 대기열에 대해 동시성 확장을 활성화할 수 있습니다.

쿼리 우선 순위를 사용하면 분석 워크로드만 클러스터에서 실행 중인 경우 이 워크로드가 전체 시스템을 차지할 수 있습니다. 이렇게 하면 처리량이 많아지고 시스템 활용도가 향상됩니다. 그러나 ETL 워크로드가 시작하면 이 워크로드가 우선 순위가 더 높으므로 우선권을 얻습니다. ETL 워크로드의 일부로 실행되는 쿼리는 승인된 후에 우선적인 리소스 할당을 받을 뿐만 아니라 승인 중에도 우선권을 얻습니다. 결과적으로 ETL 워크로드는 시스템에서 다른 워크로드가 실행 중이어도 이와 상관없이 예상대로 성능을 발휘합니다. 우선 순위가 높은 워크로드가 예상대로 성능을 발휘하는 것은 더 오래 실행되는 더 낮은 우선 순위의 기타 워크로드로 인해 가능합니다. 이러한 워크로드의 쿼리는 더 중요한 쿼리가 완료되기를 뒤에서 기다리고 있거나 우선 순위가 더 높은 쿼리와 동시에 실행 중일 때 더 작은 리소스 조각을 얻기 때문입니다. Amazon Redshift에서 사용하는 예약 알고리즘을 통해 우선 순위가 더 낮은 쿼리가 리소스 결핍 없이 느린 속도로라도 계속 진행되도록 할 수 있습니다.

참고
  • 제한 시간 필드는 자동 WLM에서 사용할 수 없습니다. 대신에 QMR 규칙인 query_execution_time을 사용합니다. 자세한 내용은 WLM 쿼리 모니터링 규칙 단원을 참조하십시오.

  • QMR 작업인 HOP는 자동 WLM에 적용할 수 없습니다. 대신에 change priority 작업을 사용합니다. 자세한 내용은 WLM 쿼리 모니터링 규칙 단원을 참조하십시오.

  • 클러스터는 자동 WLM과 수동 WLM 대기열을 서로 다르게 사용하므로 구성에 혼동이 발생할 수 있습니다. 예를 들어, 자동 WLM 대기열에서는 우선 순위 속성을 구성할 수 있지만 수동 WLM 대기열에서는 구성할 수 없습니다. 따라서 파라미터 그룹 내에서 자동 WLM 대기열과 수동 WLM 대기열을 섞지 마세요. 대신에 자동 WLM으로 마이그레이션할 때 새로운 파라미터 그룹을 생성하십시오.