Esempio di WLM dinamico - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempio di WLM dinamico

Con Amazon Redshift puoi gestire automaticamente la distribuzione dei carichi di lavoro e l’allocazione delle risorse nei cluster Amazon Redshift utilizzando la gestione dei carichi di lavoro dinamica. WLM dinamica è un esempio di configurazione della gestione dei carichi di lavoro che regola dinamicamente le allocazioni di memoria in base alle richieste dei carichi di lavoro, garantendo una simultaneità e prestazioni ottimali. Nella sezione seguente vengono forniti i dettagli sull’implementazione e sulla configurazione di WLM dinamica per i cluster Amazon Redshift.

Supponiamo che il WLM del cluster sia configurato con due code tramite le seguenti proprietà dinamiche.

Queue Simultaneità % di memoria da usare

1

4

50%

2

4

50%

Ora supponiamo che il tuo cluster abbia 200 GB di memoria disponibile per l'elaborazione delle query. Questo numero è arbitrario e viene utilizzato solo a scopo illustrativo. Come mostra la seguente equazione, a ogni slot sono allocati 25 GB.

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

Successivamente, modifichi WLM per utilizzare le seguenti proprietà dinamiche.

Queue Simultaneità % di memoria da usare

1

3

75%

2

4

25%

Come mostra la seguente equazione, la nuova allocazione di memoria per ogni slot nella coda 1 è di 50 GB.

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

Supponiamo che le query A1, A2, A3 e A4 siano in esecuzione quando viene applicata la nuova configurazione e le query B1, B2, B3 e B4 siano in coda. WLM riconfigura dinamicamente gli slot delle query come segue.

Fase Esecuzione di query Conteggio slot corrente Conteggio slot target Memoria allocata Memoria disponibile
1 A1, A2, A3, A4 4 0 100 GB 50 GB
2 A2, A3, A4 3 0 75 GB 75 GB
3 A3, A4 2 0 50 GB 100 GB
4 A3, A4, B1 2 1 100 GB 50 GB
5 A4, B1 1 1 75 GB 75 GB
6 A4, B1, B2 1 2 125 GB 25 GB
7 B1, B2 0 2 100 GB 50 GB
8 B1, B2, B3 0 3 150 GB 0 GB
  1. WLM ricalcola l'allocazione della memoria per ogni slot di query. Originariamente, alla coda 1 erano allocati 100 GB. La nuova coda ha una allocazione totale di 150 GB e pertanto ha immediatamente 50 GB disponibili. La coda 1 ora utilizza quattro slot e il nuovo livello di simultaneità è tre slot, quindi non vengono aggiunti nuovi slot.

  2. Al termine di una query, lo slot viene rimosso e vengono liberati 25 GB. La coda 1 ora ha tre slot e 75 GB di memoria disponibile. La nuova configurazione richiede 50 GB per ogni nuovo slot, ma il nuovo livello di simultaneità è tre slot, quindi non vengono aggiunti nuovi slot.

  3. Al termine di una seconda query, lo slot viene rimosso e vengono liberati 25 GB. La coda 1 ora ha due slot e 100 GB di memoria disponibile.

  4. Viene aggiunto un nuovo slot utilizzando 50 GB di memoria disponibile. La coda 1 ora ha tre slot e 50 GB di memoria disponibile. Le query in coda possono ora essere indirizzate al nuovo slot.

  5. Al termine di una terza query, lo slot viene rimosso e vengono liberati 25 GB. La coda 1 ora ha due slot e 75 GB di memoria disponibile.

  6. Viene aggiunto un nuovo slot utilizzando 50 GB di memoria disponibile. La coda 1 ora ha tre slot e 25 GB di memoria disponibile. Le query in coda possono ora essere indirizzate al nuovo slot.

  7. Al termine di una quarta query, lo slot viene rimosso e vengono liberati 25 GB. La coda 1 ora ha due slot e 50 GB di memoria disponibile.

  8. Viene aggiunto un nuovo slot utilizzando 50 GB di memoria disponibile. La coda 1 ora ha tre slot con 50 GB ciascuno e tutta la memoria disponibile è stata allocata.

La transizione è completa e tutti gli slot di query sono disponibili per le query in coda.