동적 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씩 사용할 수 있는 메모리가 모두 할당되었습니다.

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