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 |
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.