Novo balanceador de carga da CPU do MIT

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


/ foto Marco Verch CC BY

Segundo 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 BY

Tecnologia 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:

Source: https://habr.com/ru/post/pt447058/


All Articles