O sistema Shenango está sendo planejado para ser utilizado em data centers.
/ фото
De acordo com um dos provedores, os data centers utilizam apenas 20-40% dos recursos computacionais disponíveis. Em altas cargas, esse número . Essa distribuição de recursos leva à presença de chamados "servidores zumbis". São máquinas que ficam inativas a maior parte do tempo, consumindo eletricidade desnecessariamente. Atualmente, 30% dos servidores no mundo , consumindo eletricidade no valor de 30 bilhões de dólares por ano.
A luta contra o consumo ineficiente de recursos computacionais foi iniciada no MIT.
Uma equipe de engenheiros um sistema de balanceamento de carga para processadores chamado Shenango. Seu objetivo é monitorar o estado dos buffers de tarefas e redistribuir os processos "presa" (aqueles que não conseguem obter tempo de CPU) para máquinas livres.
Como funciona o Shenango
Shenango é uma biblioteca Linux escrita em C com bindings para Rust e C++. O código do projeto e os aplicativos de teste estão publicados no no GitHub.
A base da solução é um algoritmo IOKernel, que é executado em um núcleo dedicado de um sistema multiprocessador. Ele gerencia as demandas de CPU usando o framework , que permite que aplicativos interajam diretamente com dispositivos de rede.
O IOKernel decide a quais núcleos atribuir uma tarefa específica. O algoritmo também determina quantos núcleos serão necessários. Para cada processo, são definidos núcleos principais (garantidos) e adicionais (expansíveis) — os últimos são acionados em caso de um aumento repentino no número de solicitações de CPU.
A fila de solicitações do IOKernel é organizada na forma de . A cada cinco microsegundos, o algoritmo verifica se todas as tarefas atribuídas ao núcleo foram concluídas. Para isso, ele compara a posição atual da "cabeça" do buffer com a posição anterior de seu "rabo". Se for constatado que o rabo já estava na fila na verificação anterior, o sistema sinaliza uma sobrecarga do buffer e atribui um núcleo adicional ao processo.
Na distribuição de carga, a prioridade é dada aos núcleos onde esse mesmo processo já foi executado antes e parcialmente ficou em cache, ou a quaisquer núcleos ociosos.

O Shenango também utiliza a abordagem Os núcleos dedicados a um único aplicativo monitoram a carga de trabalho entre si. Se um núcleo termina sua lista de tarefas antes dos outros, ele "descarrega" parte do trabalho dos vizinhos.
Vantagens e desvantagens
De acordo com engenheiros do MIT, o Shenango pode processar cinco milhões de requisições por segundo e manter um tempo de resposta médio de 37 microssegundos. Especialistas afirmam que, em alguns casos, a tecnologia pode aumentar a taxa de utilização dos processadores em data centers para 100%. Como resultado, os operadores de DC poderão economizar na compra e manutenção de servidores.
Potencial da solução e especialistas de outras universidades. Segundo um professor de um instituto coreano, o sistema do MIT ajudará a reduzir a latência em serviços web. Por exemplo, será útil para lojas online. Em dias de promoção, até mesmo um segundo de atraso na carga da página em uma redução de 11% no número de visualizações do site. A distribuição eficiente da carga ajudará a atender mais clientes.
A tecnologia ainda apresenta desvantagens - não suporta sistemas - onde 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 o funcionamento de um grupo específico de processadores, mas não de todos os chips do servidor.

/ фото
Tecnologias análogas
Entre outros sistemas de balanceamento de carga para processadores, destacamos o Arachne. Ele calcula quantos núcleos serão necessários para o aplicativo no momento de seu lançamento e distribui os processos de acordo com esse parâmetro. Segundo os autores, a latência máxima do aplicativo 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 .
Outro balanceador de carga é o ZygOS. Assim como o Shenango, a tecnologia utiliza o método de roubo de trabalho para redistribuir os processos. De acordo com os autores do ZygOS, a latência média no funcionamento de aplicativos 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 .
Como resultado, obtemos um serviço de "monitoramento como serviço", automatizado na linha de produção de integração contínua. O desenvolvedor ou testador precisa apenas definir a lista de métricas em um arquivo JSON, e tudo o mais acontece automaticamente. Obtemos um controle de qualidade transparente dos lançamentos: todas as notificações sobre desempenho, consumo de recursos ou regressões arquitetônicas.
Data centers modernos continuam a se expandir. Especialmente visível é a tendência de crescimento no mercado de data centers hyperscale: atualmente, existem no mundo 430 data centers hipermassivos, mas já nos próximos anos esse número pode aumentar em 30%. Por esse motivo, as tecnologias de balanceamento de carga nos processadores serão muito demandadas. Sistemas como o Shenango já estão sendo por grandes corporações, e no futuro, a quantidade dessas ferramentas só irá aumentar.
Postagens do Primeiro blog sobre IaaS corporativo:
Fonte: habr.com
