Escalonamento orientado por qualidade de serviço em infraestruturas de computação na nuvem. - SILVA, Giovanni Farias da. (2020)
O modelo de Computação na Nuvem de infraestrutura como serviço (IaaS,do inglês Infraestructureas a Service) tem se tornado cada vez mais a principal escolha de provisionamento de infraestrutura de computação. Com isso, cresce também a diversidade das cargas de trabalho submetidas pelos usuários. Essa característica, juntamente com a heterogeneidade das complexas infraestruturas usadas para executar essas cargas de trabalho, tornando gerenciamento de recursos um dos principais desafios para provedores de computação na nuvem de larga escala. Para aumentar a utilização de recursos (consequentemente a lucratividade) e satisfazer as necessidades distintas dos usuários, os provedores podem oferecer múltiplas classes de serviço. Essas classes são diferenciadas pela qualidade de serviço (QoS,do inglês Quality of Service) prometida, que comumente é definida em termos de objetivos de nível de serviço (SLO,do inglês Service Level Objectives) estabelecidos em um contrato de nível de serviço (SLA, do inglês Service Level Agreement). Por outro lado, os provedores estão sujeitos ao pagamento de penalidades em caso de violações dos SLAs. O gerenciamento de recursos é dividido em etapas com responsabilidades bem definidas. Essas etapas operam em conjunto com o intuito de evitar cenários de superprovisionamento (mantendo os custos o mais baixo possível) e subprovisionamento (mantendo a QoSem níveis aceitáveis). A atividade de escalonamento é responsável por definir quais requisições devem ter recursos alocados em um dado instante e quais os servidores devem prover esses recursos. No contexto de provedores de larga escala, políticas de escalonamento base a das em prioridades geralmente são utilizadas para garantir que as requisições de diferentes classes de serviço receba maQoS prometida. Prioridades maiores são associadas com classes cujas QoSs prometidas são maiores. Caso seja necessário, recursos alocados para requisições com prioridades menores podem ser preemptados para permitir que requisições com prioridades maiores sejam executadas. Porém, nesse contexto, a QoS entregue às requisições durante períodos com contenção de recursos pode ser injusta para certas requisições. Em particular, requisições com prioridades mais baixas podem ter seus recursos preemptados para a como dar outras com prioridades mais altas, mesmo se a QoS entregue para as últimas esteja acima da desejada, e a QoS das primeiras esteja abaixo da esperada. Além disso, requisições com mesma prioridade e que competem pelo mesmo recurso podem experimentar QoSs bem diferentes, visto que algumas delas podem sempre executar enquanto outras permanecem sempre pendentes. Este trabalho apresenta uma política de escalonamento que é orientada pela QoS prometida para as requisições. Esta segue uma nova abordagem de preempção na qual qualquer requisição cuja QoS atual esteja excedendo sua respectiva meta pode ter seus recursos preemptados em benefício de outras com QoS abaixo da meta (ou que estejam mais próximas de ter seus SLOs não satisfeitos). Os benefícios de usar uma política orientada por QoS são :(i) ela mantém a QoS de cada requisição a mais alta possível, considerando suas respectivas metas e recursos disponíveis; e (ii) ela minimiza a variância da QoS entregue para requisições de uma mesma classe, promovendo o provisionamento justo. Essas características permitem a definição de SLAs que são mais apropriados e que estão de acordo com os principais provedores de nuvem pública. A política proposta foi avaliada através de comparações entre seus resultados e os obtidos com um escalonador que representa o estado-da-prática, baseado em prioridade. Esta comparação se deu por experimentos de simulação—validados por experimentos de medição alimentados por amostras de rastros de execução de um sistema em produção. No geral, o escalonamento orientado por QoS entrega um serviço melhor que o baseado em prioridade, especialmente quando a contenção de recursos não é tão alta. A similaridade da QoS entregue para requisições de uma mesma classe também foi muito mais alta quando o escalonamento orientado por QoS foi utilizado, particularmente quando nem todas as requisições receberam a QoS prometida. Além disso, com base na prática atual de grandes provedores públicos, os resultados mostraram que as penalidades incorridas pelo uso do escalonador baseado em prioridade podem ser, em média, até aproximadamente 2 vezes mais altas que aquelas incorridas pelo escalonador orientado por QoS. Por fim, o custo operacional do escalonador orientado por QoS foi aproximadamente 15 vezes maior. Porém, ainda há espaço para a implementação de otimizações, tal como um mecanismo de cache já implementado no escalonamento base a do em prioridade. A nova política ainda se mostrou viável de ser implementada em um sistema real. As métricas utilizadas por seu escalonador foram definidas de forma que a política opere no sistema sem interferir na forma como os usuários interagem como mesmo.