Novo balanceador de carga de CPU do MIT

O sistema Shenango está planejado para ser usado em data centers.

Novo balanceador de carga de CPU do MIT
/ foto Marco Verch CC BY

De acordo com um dos fornecedores, data centers usar apenas 20–40% do poder de computação disponível. Em cargas elevadas este indicador pode chegar a 60%. Esta distribuição de recursos leva ao surgimento dos chamados “servidores zumbis”. São máquinas que ficam ociosas a maior parte do tempo, desperdiçando energia. Hoje 30% dos servidores no mundo estão sem trabalho, consumindo US$ 30 bilhões em eletricidade por ano.

O MIT decidiu combater o uso ineficiente de recursos computacionais.

Equipe de engenharia foi desenvolvido sistema de balanceamento de carga do processador chamado Shenango. Sua finalidade é monitorar o estado do buffer de tarefas e redistribuir processos travados (que não podem receber tempo de CPU) para máquinas livres.

Como funciona o Shenango

Shenango é uma biblioteca Linux em C com ligações Rust e C++. O código do projeto e os aplicativos de teste são publicados em repositórios no GitHub.

A solução é baseada no algoritmo IOKernel, que roda em um núcleo dedicado de um sistema multiprocessador. Ele gerencia solicitações de CPU usando uma estrutura DPDK, que permite que os aplicativos se comuniquem diretamente com os dispositivos de rede.

O IOKernel decide a quais kernels delegar uma tarefa específica. O algoritmo também decide quantos núcleos serão necessários. Para cada processo são determinados os núcleos principais (garantidos) e os adicionais (estável) - estes últimos são lançados em caso de aumento acentuado no número de solicitações à CPU.

A fila de solicitações do IOKernel é organizada como buffer de anel. A cada cinco microssegundos, o algoritmo verifica se todas as tarefas atribuídas ao núcleo foram concluídas. Para fazer isso, ele compara a localização atual da cabeça do buffer com a posição anterior de sua cauda. Se acontecer que a cauda já estava na fila no momento da verificação anterior, o sistema anota a sobrecarga do buffer e aloca um núcleo adicional para o processo.

Na distribuição da carga, é dada prioridade aos núcleos nos quais o mesmo processo foi executado anteriormente e permaneceu parcialmente no cache, ou a quaisquer núcleos ociosos.

Novo balanceador de carga de CPU do MIT

Shenango também adota a abordagem roubo de trabalho. Os núcleos alocados para executar um aplicativo monitoram o número de tarefas que cada um possui. Se um núcleo terminar sua lista de tarefas antes dos outros, ele “aliviará” parte da carga de seus vizinhos.

Vantagens e desvantagens

Em palavras engenheiros do MIT, o Shenango é capaz de processar cinco milhões de solicitações por segundo e manter um tempo médio de resposta de 37 microssegundos. Especialistas afirmam que em alguns casos a tecnologia pode aumentar a taxa de utilização dos processadores nos data centers para 100%. Como resultado, os operadores de data centers poderão economizar na compra e manutenção de servidores.

Potencial de solução celebrar e especialistas de outras universidades. Segundo um professor de um instituto coreano, o sistema do MIT ajudará a reduzir atrasos nos serviços web. Por exemplo, será útil em lojas online. Em dias de vendas há até um segundo atraso no carregamento da página приводит a uma diminuição no número de visualizações do site em 11%. A distribuição imediata da carga ajudará a atender mais clientes.

A tecnologia ainda tem desvantagens – não suporta multiprocessador NUMA-sistemas nos quais os chips estão conectados a diferentes módulos de memória e não “se comunicam” entre si. Nesse caso, o IOKernel pode regular a operação de um grupo separado de processadores, mas não de todos os chips do servidor.

Novo balanceador de carga de CPU do MIT
/ foto Tim Reckmann CC BY

Tecnologias semelhantes

Outros sistemas de balanceamento de carga do processador incluem Arachne. Ele calcula quantos núcleos um aplicativo precisará ao iniciar e distribui os processos de acordo com esse indicador. Segundo os autores, a latência máxima de uma aplicação no Arachne é de cerca de 10 mil microssegundos.

A tecnologia é implementada como uma biblioteca C++ para Linux e seu código-fonte está disponível em GitHub.

Outra ferramenta de balanceamento é o ZygOS. Assim como o Shenango, a tecnologia usa o método de roubo de trabalho para redistribuir processos. Segundo os autores do ZygOS, a latência média do aplicativo ao usar a ferramenta é de cerca de 150 microssegundos, e a máxima é de cerca de 450 microssegundos. O código do projeto também é é de domínio público.

Descobertas

Os data centers modernos continuam a se expandir. A tendência crescente é especialmente perceptível no mercado de data centers em hiperescala: agora no mundo 430 data centers em hiperescala, mas nos próximos anos seu número poderá aumentar em 30%. Por esse motivo, as tecnologias de balanceamento de carga do processador serão muito procuradas. Sistemas como o Shenango já estão disponíveis implemento grandes corporações, e o número dessas ferramentas só aumentará no futuro.

Postagens do primeiro blog sobre IaaS corporativo:

Fonte: habr.com

Adicionar um comentário