Exemplo do WLM dinâmico - Amazon Redshift

Exemplo do WLM dinâmico

Com o Amazon Redshift, é possível gerenciar automaticamente a distribuição de workloads e a alocação de recursos nos clusters do Amazon Redshift usando o gerenciamento de workloads dinâmico (WLM dinâmico). O WLM dinâmico é um exemplo de configuração do gerenciamento de workloads (WLM) que ajusta dinamicamente as alocações de memória com base nas demandas de workload, permitindo simultaneidade e desempenho ideais. A seção a seguir apresenta detalhes sobre a implementação e configuração do WLM dinâmico para clusters do Amazon Redshift.

Suponhamos que o WLM do cluster seja configurado com duas filas usando as propriedades dinâmicas a seguir.

Fila Simultaneidade % de memória a ser usada

1

4

50%

2

4

50%

Agora suponhamos que o cluster tenha 200 GB de memória disponível para processamento de consulta. (Esse número é arbitrário e usado somente para fins ilustrativos.) Como a equação a seguir mostra, cada slot recebe 25 GB.

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

Em seguida, você altera o WLM para usar as propriedades dinâmicas a seguir.

Fila Simultaneidade % de memória a ser usada

1

3

75%

2

4

25%

Como a equação a seguir mostra, a nova alocação de memória para cada slot na fila 1 é 50 GB.

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

Suponhamos que as consultas A1, A2, A3 e A4 estejam em execução quando a nova configuração for aplicada e as consultas B1, B2, B3 e B4 estejam enfileiradas. O WLM reconfigura dinamicamente os slots de consulta da maneira a seguir.

Etapa Execução de consultas Contagem de slots atual Contagem de slots de destino Memória alocada Memória disponível
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. O WLM recalcula a alocação de memória para cada slot de consulta. Originalmente, a fila 1 recebeu 100 GB. Como a nova fila tem uma alocação total de 150 GB, a nova fila tem imediatamente 50 GB disponíveis. Agora a fila 1 está usando quatro slots, e o novo nível de simultaneidade tem três slots, logo, nenhum slot novo é adicionado.

  2. Quando uma consulta é concluída, o slot é removido e 25 GB são liberados. Agora a fila 1 tem três slots e 75 GB de memória disponíveis. A nova configuração precisa de 50 GB para cada slot novo, mas o novo nível de simultaneidade tem três slots, logo, nenhum slot é adicionado.

  3. Quando uma segunda consulta é concluída, o slot é removido e 25 GB são liberados. Agora a fila 1 tem dois slots e 100 GB de memória livre.

  4. Um novo slot é adicionado usando-se 50 GB de memória livre. Agora a fila 1 tem três slots e 50 GB de memória livre. Agora as consultas enfileiradas podem ser roteadas para o novo slot.

  5. Quando uma terceira consulta é concluída, o slot é removido e 25 GB são liberados. Agora a fila 1 tem dois slots e 75 GB de memória livre.

  6. Um novo slot é adicionado usando-se 50 GB de memória livre. Agora a fila 1 tem três slots e 25 GB de memória livre. Agora as consultas enfileiradas podem ser roteadas para o novo slot.

  7. Quando uma quarta consulta é concluída, o slot é removido e 25 GB são liberados. Agora a fila 1 tem dois slots e 50 GB de memória livre.

  8. Um novo slot é adicionado usando-se os 50 GB de memória livre. Agora a fila 1 tem três slots com 50 GB cada, e toda a memória disponível foi alocada.

A transição foi concluída e todos os slots de consulta estão disponíveis para consultas enfileiradas.