동적 WLM 예제 - Amazon Redshift

동적 WLM 예제

Amazon Redshift를 사용하면 동적 WLM(워크로드 관리)을 사용하여 Amazon Redshift 클러스터 전반에서 워크로드 배포 및 리소스 할당을 자동으로 관리할 수 있습니다. 동적 WLM은 워크로드 요구 사항에 따라 메모리 할당을 동적으로 조정하여 최적의 동시성과 성능을 제공하는 워크로드 관리(WLM) 구성의 예제입니다. 다음 섹션에서는 Amazon Redshift 클러스터에서 동적 WLM을 구현하고 구성하는 방법에 대한 세부 정보를 제공합니다.

클러스터 WLM이 다음과 같은 동적 속성을 사용하여 2개의 대기열로 구성되어 있다고 가정하겠습니다.

대기열 동시성 사용할 메모리 비율(%)

1

4

50%

2

4

50%

이번에는 클러스터에 쿼리 처리에 사용할 수 있는 메모리가 200GB 있다고 가정하겠습니다. 이 수치는 임의적인 것으로 이해를 돕기 위해 사용되었습니다. 다음 방정식과 같이 각 슬롯에 할당되는 메모리는 25GB입니다.

(200 GB * 50% ) / 4 slots = 25 GB

이번에는 다음과 같은 동적 속성을 사용하도록 WLM을 변경합니다.

대기열 동시성 사용할 메모리 비율(%)

1

3

75%

2

4

25%

다음 방정식과 같이 대기열 1에서는 각 슬롯마다 새롭게 할당되는 메모리는 50GB입니다.

(200 GB * 75% ) / 3 slots = 50 GB

새로운 구성을 적용할 때 쿼리 A1, A2, A3 및 A4가 실행 중이고, 쿼리 B1, B2, B3 및 B4가 대기 중이라고 가정하겠습니다. WLM이 쿼리 슬롯을 다음과 같이 동적으로 재구성합니다.

단계 실행 중인 쿼리 현재 슬롯 수 목표 슬롯 수 할당되는 메모리 사용할 수 있는 메모리
1 A1, A2, A3, A4 4 0 100GB 50GB
2 2 3 0 75GB 75GB
3 A3, A4 2 0 50GB 100GB
4 A3, A4, B1 2 1 100GB 50GB
5 5 1 1 75GB 75GB
6 6 1 2 125GB 25GB
7 7 0 2 100GB 50GB
8 8 0 3 150GB 0GB
  1. WLM이 쿼리 슬롯마다 메모리 할당을 재계산합니다. 처음에 대기열 1에 할당된 메모리는 100GB였습니다. 하지만 새로운 대기열에 할당되는 총 메모리는 150GB이기 때문에 50GB를 즉시 사용할 수 있습니다. 현재 대기열 1에서 사용하는 슬롯 수는 4개이고, 새로운 동시성 레벨은 3슬롯이므로 새로운 슬롯이 추가되지는 않습니다.

  2. 하나의 쿼리가 종료되면 슬롯이 제거되고 25GB가 비워집니다. 대기열 1은 이제 슬롯이 3개이며, 75GB의 메모리를 사용할 수 있습니다. 새로운 구성에서는 각 슬롯마다 50GB가 필요하지만 동시성 레벨이 3슬롯이기 때문에 슬롯이 새롭게 추가되지는 않습니다.

  3. 두 번째 쿼리가 종료되면 슬롯이 제거되고 25GB가 비워집니다. 대기열 1은 이제 슬롯이 2개이며, 100GB가 사용할 수 있는 여유 메모리입니다.

  4. 여유 메모리 50GB를 사용하여 새로운 슬롯이 추가됩니다. 대기열 1은 이제 슬롯이 3개이며, 50GB가 사용할 수 있는 여유 메모리입니다. 이제 대기열에서 대기 중이던 쿼리가 새로운 슬롯으로 라우팅될 수 있습니다.

  5. 세 번째 쿼리가 종료되면 슬롯이 제거되고 25GB가 비워집니다. 대기열 1은 이제 슬롯이 2개이며, 75GB가 사용할 수 있는 여유 메모리입니다.

  6. 여유 메모리 50GB를 사용하여 새로운 슬롯이 추가됩니다. 대기열 1은 이제 슬롯이 3개이며, 25GB가 사용할 수 있는 여유 메모리입니다. 이제 대기열에서 대기 중이던 쿼리가 새로운 슬롯으로 라우팅될 수 있습니다.

  7. 네 번째 쿼리가 종료되면 슬롯이 제거되고 25GB가 비워집니다. 대기열 1은 이제 슬롯이 2개이며, 50GB가 사용할 수 있는 여유 메모리입니다.

  8. 여유 메모리 50GB를 사용하여 새로운 슬롯이 추가됩니다. 대기열 1은 이제 슬롯이 3개이며 각각 50GB씩 사용할 수 있는 메모리가 모두 할당되었습니다.

전환이 완료되어 대기 중이던 쿼리가 모든 쿼리 슬롯을 사용할 수 있습니다.