O sistema Shenango está planejado para ser usado em data centers.
/ foto Marco Verch CC BYSegundo um dos provedores, os data centers
usam apenas 20 a 40% da capacidade de computação disponível. Em cargas altas, esse número
pode chegar a 60% . Essa 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 do mundo
estão sem trabalho , consumindo eletricidade a US $ 30 bilhões por ano.
O MIT decidiu lidar com o uso ineficiente de recursos de computação.
Uma equipe de engenheiros
desenvolveu um sistema de balanceamento de carga para processadores chamado Shenango. Seu objetivo é monitorar o status do buffer de tarefas e redistribuir os processos "travados" (que não podem receber tempo do processador) para liberar máquinas.
Como o Shenango funciona
Shenango é uma biblioteca Linux baseada em C com ligações Rust e C ++. O código do projeto e os aplicativos de teste são publicados no
repositório no GitHub.
A base da solução é o algoritmo IOKernel, que roda em um núcleo dedicado de um sistema multiprocessador. Ele gerencia solicitações de CPU usando a estrutura
DPDK , que permite que os aplicativos interajam diretamente com os dispositivos de rede.
O IOKernel decide quais kernels devem passar uma tarefa específica. O algoritmo também decide quantos núcleos são necessários. Para cada processo, são definidos os principais kernels (garantidos) e adicionais (expansíveis) - os segundos são lançados em caso de um aumento acentuado no número de solicitações à CPU.
A fila de pedidos do IOKernel é organizada como um
buffer de anel . A cada cinco microssegundos, o algoritmo verifica se todas as tarefas atribuídas ao kernel 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 a cauda já estava na fila no momento da verificação anterior, o sistema observa a sobrecarga do buffer e aloca um kernel adicional para o processo.
Ao distribuir a carga, é dada prioridade aos kernels nos quais o mesmo processo foi executado anteriormente e permaneceu parcialmente no cache, ou a quaisquer kernels inativos.

Shenango também adota uma abordagem de
roubo de trabalho . Os kernels alocados para a operação de um aplicativo monitoram o número de tarefas entre si. Se um núcleo termina sua lista de tarefas mais cedo que os outros, ele "remove" parte da carga de seus vizinhos.
Vantagens e desvantagens
Segundo os 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 dizem que, em alguns casos, a tecnologia pode aumentar a utilização de processadores em data centers para 100%. Como resultado, os operadores de data center poderão economizar na compra e manutenção de servidores.
O potencial da solução também é
observado por especialistas de outras universidades. Segundo um professor do Instituto Coreano, o sistema do MIT ajudará a reduzir os atrasos no trabalho dos serviços da web. Por exemplo, é útil na operação de lojas online. Nos dias de vendas, mesmo um segundo atraso no carregamento da página
leva a uma redução no número de visualizações do site em 11%. O balanceamento de carga online ajudará a atender mais clientes.
A tecnologia ainda apresenta desvantagens - ela não suporta sistemas
NUMA de multiprocessadores 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 nem todos os chips de servidor.
/ foto Tim Reckmann CC BYTecnologia semelhante
Entre outros sistemas de balanceamento de carga do processador, a Arachne pode ser distinguida. Ele calcula quantos núcleos o aplicativo precisará no momento de seu lançamento e distribui os processos de acordo com este indicador. Segundo os autores, a latência máxima de aplicação em Arachne é de cerca de 10 mil microssegundos.
A tecnologia é implementada como uma biblioteca C ++ para Linux, e seu código fonte está no
GitHub .
Outra ferramenta de balanceamento é o ZygOS. Como o Shenango, a tecnologia usa o método de roubo de trabalho para redistribuir processos. Segundo os autores do ZygOS, o atraso médio no aplicativo ao usar a ferramenta é de cerca de 150 microssegundos e o máximo é de cerca de 450 microssegundos. O código do projeto também é de
domínio público .
Conclusões
Os data centers modernos continuam a se expandir, especialmente a tendência ascendente é perceptível no mercado de data centers em hiperescala: agora no mundo
existem 430 data centers em hiperescala, mas nos próximos anos esse número pode aumentar em 30%. Por esse motivo, as tecnologias de balanceamento de carga da CPU estarão em grande demanda. Sistemas como o Shenango já estão
sendo implementados por grandes empresas e, no futuro, o número dessas ferramentas só aumentará.
Publicações do primeiro blog corporativo de IaaS: