7.3 Modelo do planejamento de capacidade da nuvem
7.3.2 Formulação do modelo
Uma limitação da aproximação para filas G/GI/c/K descrita na Seção 7.3.1 em relação ao problema tratado nesta tese é que ela foi derivada para uma única classe de clientes [78], enquanto neste trabalho considera-se um provedor de nuvem oferecendo múltiplas classes de serviço, com diferentes demandas e SLOs. Desta forma, não é trivial aplicar diretamente a aproximação do modelo de filas neste contexto. Como a capacidade da nuvem disponível para classes de menor prioridade depende da demanda de classes de maior prioridade, o modelo não pode ser resolvido independentemente para cada uma das classes. Portanto, propõe-se uma abordagem hierárquica que soluciona o modelo iterativamente, iniciando com a classe de maior prioridade e finalizando com a de menor prioridade.
Neste trabalho foi elaborado um modelo analítico do planejamento de capacidade para responder questões do tipo what-if, que indicam o que aconteceria com métricas de de- sempenho da nuvem se houvessem diferentes cenários de entrada. Mais especificamente, o objetivo do modelo é estimar a taxa de admissão de requisições para cada classe, tendo como entrada a capacidade média da nuvem, a demanda esperada e os SLOs de disponibilidade de VMs para cada classe. Este modelo analítico também é usado para planejar a capacidade da nuvem, estimando a capacidade mínima necessária para atender metas para os SLOs de disponibilidade de VMs e de taxa de admissão para todas as classes.
Os parâmetros de entrada para o modelo analítico são os seguintes: • C : capacidade nominal da nuvem em CPU-cores.
• ¯A: disponibilidade média das máquinas.
• r: taxa de chegada para cada classe r em CPU-cores por unidade de tempo.
• µr : taxa de serviço para cada classe r em CPU-cores por unidade de tempo.
• c2
a,r: quadrado do coeficiente de variação (SCV) do intervalo entre chegadas para cada
7.3 Modelo do planejamento de capacidade da nuvem 118 • c2
s,r : quadrado do coeficiente de variação (SCV) do tempo de serviço para cada classe
r.
• min
r : mínima disponibilidade de VM permitida (SLO) para cada classe r.
Para um conjunto de valores de entrada, o modelo gera como saída uma estimativa para: • ✓r : taxa de admissão de requisições de VM para cada classe r, ao se usar o controle
de admissão baseado em quotas.
Uma outra limitação da aproximação para filas G/GI/c/K é que ela considera um nú- mero constante c de servidores. Porém, no contexto deste trabalho a quantidade de servidores pode mudar ao longo do tempo, fazendo com que a capacidade disponível na nuvem também varie. Além disso, as máquinas físicas e os tamanhos das VMs requisitadas na nuvem são tipicamente heterogêneas, enquanto o modelo de filas assume que a associação entre cliente e servidor é direta e homogênea. Para lidar com estas limitações, este modelo considera que o número de servidores c no sistema de filas é representado pela média da capacidade disponível na nuvem em CPU-cores, definido por
c = ¯A· C, (7.14)
onde ¯A é a disponibilidade média das máquinas e C é a capacidade nominal da nuvem em CPU-cores.
De acordo com a política de escalonamento preemptivo por prioridade descrito na Se- ção 6.4, cada classe r pode ter diferentes capacidades disponíveis para alocar requisições de VM. A capacidade média disponível para a classe r é calculada como a média da capacidade restante das classes de maior prioridade que r, e é definida por
cr = c r 1
X
k=1
nk (7.15)
onde nk é a quantidade média de clientes da classe k no sistema, que é igual à média da
capacidade requisitada por VMs da classe k em CPU-cores (nk 0,8k). Observe que
a capacidade disponível para uma classe nunca é maior que a capacidade disponível para classes de maior prioridade (cr ck,8r > k).
7.3 Modelo do planejamento de capacidade da nuvem 119 A intensidade do tráfego ⇢r para a classe r é estimada usando a Lei de Little [58] e é
definida por
⇢r = r
µr· cr
, (7.16)
O cálculo do número de clientes da classe r no sistema também se baseia na Lei de Little e é definido como
nr = r
µr
= cr· ⇢r. (7.17)
Considera-se que o número máximo de clientes para cada classe r permitidos no sistema com capacidade limitada é igual à quota definida para a classe. A partir do modelo de con- trole de admissão baseado em quotas proposto nesta tese (Equação 6.7), define-se o número máximo de clientes no sistema (quota) para a classe r como
Kr = cr min r , (7.18) onde min
r é o SLO de disponibilidade de VMs para a classe r.
Assumiu-se que a distribuição de tempo de serviço é uma combinação de distribuições exponenciais – ou seja, considerou-se p = 1 na aproximação descrita na Seção 7.3.1, já que este parâmetro é difícil de ser estimado na prática. Esta simplificação torna a solução mais simples e não afeta significativamente os resultados. Desta forma, a partir das Equações 7.8 e 7.9, pode-se definir os parâmetros de variação do modelo como
vr = zr=
c2
a,r+ c2s,r
2 . (7.19)
A taxa de admissão para a classe r é estimada como a probabilidade de uma requisição ser admitida (i.e., o inverso da blocking probability) de acordo com a aproximação para filas G/GI/c/K, definida por
✓r = 1 ⇡(r, ⌧r, r, vr, ⇢r, cr), (7.20)
onde ⇡(.) é a função de probabilidade de rejeição aproximada para filas G/GI/c/K, definida na Equação 7.12.
A seguir são apresentados os algoritmos que implementam o modelo de planejamento de capacidade proposto neste trabalho.
O Algoritmo 2 estima a taxa de admissão ✓r para cada classe r quando o mecanismo
7.3 Modelo do planejamento de capacidade da nuvem 120 proposto. Esta função recebe como entrada a capacidade da nuvem, assim como a taxa média de chegada, tempo médio de serviço, parâmetro de variação da demanda e SLO de disponibilidade de VMs para cada classe.
Algoritmo 2 Estima a taxa de admissão de requisições para múltiplas classes.
1: function ESTIMATEQOS(c, r, µr, vr, rmin)
2: p 1 3: c1 c .Eq. 7.14 4: R length( r) 5: for r 1, R do 6: ⇢r r/(µr⇤ cr) .Eq. 7.16 7: Kr cr/ rmin .Eq. 7.18 8: r pcr⇤ (1 ⇢r) .Eq. 7.6 9: r (Kr cr)/pcr .Eq. 7.7 10: zr p ⇤ vr .Eq. 7.8 11: ⌧r ↵( r/pzr, p⇤ r/pzr) .Eq. 7.11 12: nr cr⇤ ⇢r .Eq. 7.17 13: ✓r 1 ⇡(r, ⌧r, r, vr, ⇢r, cr) .Eq. 7.20 14: cr+1 cr nr .Eq. 7.15 15: end for 16: return ✓r 17: end function
O Algoritmo 3 é um método de busca simples, baseado em hill-climbing, para encontrar a capacidade mínima da nuvem necessária para cumprir os SLOs de disponibilidade de VMs e de taxa de admissão para cada classe. O procedimento é descrito da seguinte forma: inici- ando com capacidade zero, o método iterativamente incrementa a capacidade da nuvem em " unidades, e estima para cada cenário de capacidade a taxa de admissão a ser obtida por cada classe; a função então retorna a capacidade mínima que satisfaz os SLOs de taxa de admissão para todas as classes, com valor " para o parâmetro de acurácia. Como a taxa de admissão de requisições cresce monotonicamente ao se aumentar a capacidade da nuvem e a imple- mentação tem uma complexidade linear O(R ⇥ c), este método simples de hill-climbing foi eficiente e encontrou rapidamente soluções para o modelo. Outros métodos de busca mais
7.4 Validação do modelo 121