Aperfeiçoando o kernel do Linux com IA, de acordo com a ByteDance

Melhorando o kernel do Linux com IA, seguindo a abordagem da ByteDance

Pinguim com IA aprimorada

Richmond, Virgínia: Na Linux Plumbers Conference, a reunião exclusiva para os principais desenvolvedores do kernel Linux, o Engenheiro de Kernel Linux da ByteDance, Cong Wang, propôs que utilizemos inteligência artificial (IA) e aprendizado de máquina (AM) para ajustar o kernel Linux para obtermos os melhores resultados em cargas de trabalho específicas.

Também: Rust no Linux: Onde estamos e para onde vamos

Em termos gerais, o kernel Linux funciona perfeitamente para a maioria das tarefas. No entanto, para obter o máximo dele em um trabalho específico, é necessário ajustar seus parâmetros para obter os melhores resultados possíveis. Há apenas um pequeno problema com essa abordagem. Existem milhares de parâmetros. Mesmo para um especialista em Linux, ajustá-los para obter um desempenho ideal é um trabalho árduo e demorado. E, é claro, cargas de trabalho diferentes exigem ajustes distintos para diferentes conjuntos de parâmetros do kernel Linux. Portanto, como disse Wang, “Em data centers de grande escala, como o da ByteDance, tornou-se quase impossível ajustar manualmente os parâmetros do kernel Linux para centenas de cargas de trabalho diferentes.”

Ferramentas como System Management Interface Tool (SMIT), Sysctl e TuneD podem ajudar. No entanto, elas apenas facilitam as alterações manuais de ajuste do kernel. Existem também programas “inteligentes”, como o BayOp da Red Hat, que usam AM para otimizar a eficiência de aplicativos de rede especificamente, mas não é um programa de IA/AM de uso geral, é destinado a um tipo específico de ajuste do Linux.

Também: Garuda KDE Dr460nized pode ser a distribuição Linux mais elegante disponível

O que a ByteDance está buscando é uma primeira tentativa de automatizar todo o processo de ajuste dos parâmetros do kernel Linux com o mínimo de esforço de engenharia. Especificamente, a ByteDance está trabalhando no ajuste da gerência de memória do Linux. A ByteDance descobriu que, com algoritmos de aprendizado de máquina, como a otimização bayesiana, o ajuste automatizado pode superar até mesmo a maioria dos engenheiros de kernel Linux.

Por que isso? Bem, a ideia, como disse Wang com ironia, “não é tirar o sustento dos engenheiros de kernel Linux”. Não, o objetivo é “libertar os engenheiros humanos de ajustarem o desempenho para cada carga de trabalho individual. Enquanto tomamos decisões melhores com dados históricos, o que os humanos frequentemente têm dificuldade em fazer. E, por último, mas não menos importante, encontrar soluções melhores do que aquelas que chegamos usando apenas nosso método de tentativa e erro atual, baseado em heurísticas.

Também: Se você quer experimentar o BSD, vá com o GhostBSD

Como? O sistema de ajuste automático é projetado para ajustar automaticamente as configurações internas do kernel Linux com base na carga de trabalho específica e na configuração de hardware. Esse ajuste dinâmico garante desempenho ótimo, abordando um desafio de longa data na comunidade Linux de ajustar manualmente o kernel para cenários específicos. Para fazer isso, o framework de IA/AM utiliza vários algoritmos, como a Otimização Bayesiana, Algoritmo Genético e o Algoritmo de Recozimento Simulado/Evolução.

O resultado?

  • Otimização Dinâmica: O sistema monitora continuamente o desempenho do kernel, fazendo ajustes em tempo real em configurações como escalonamento de frequência da CPU e gerenciamento de memória.

  • Efficiência Aprimorada: Ao otimizar o uso de recursos, o sistema de ajuste automático melhora significativamente a eficiência dos sistemas Linux, especialmente em ambientes com cargas de trabalho variáveis.

  • Interface Amigável ao Usuário: O sistema inclui uma interface amigável, permitindo que até mesmo pessoas com conhecimentos técnicos limitados se beneficiem do desempenho aprimorado do kernel.

  • Configurações Personalizáveis: Usuários avançados podem personalizar os parâmetros de ajuste automático, adaptando o sistema às suas necessidades específicas.

Ainda é cedo, mas a ByteDance já está vendo algum sucesso. Por exemplo, usando DAMON, um subsistema do kernel Linux para monitoramento e otimização de acesso à memória, eles conseguiram encontrar o melhor esquema para uma aplicação MySQL. Isso foi feito executando diferentes esquemas do DAMON e comparando seu desempenho. Eles descobriram que poderiam reduzir o uso de memória da aplicação em 30%. Para aplicações massivas, isso representa uma economia real.

Também: Linux pode ser a melhor escolha para aumentar a segurança do seu computador desktop

Em outro caso, a ByteDance conseguiu otimizar a latência da rede HTTP em um servidor NGINX otimizando a configuração de 16 parâmetros de sysctl do kernel. No melhor cenário, a otimização de ML proporcionou um aumento de desempenho de rede do NGINX de 12% em comparação com a otimização manual realizada por especialistas. Novamente, isso representa uma melhoria significativa.

A ByteDance não está afirmando que sua abordagem de IA/ML funcionará para todos os ajustes no Linux, mas Wang disse: “Embora existam limitações, acreditamos que o aprendizado de máquina do kernel não é apenas possível, mas também necessário.”

Eu? Eu acredito que isso pode mudar o jogo para aplicações Linux. Ao simplificar a otimização do kernel, tornará o Linux mais acessível e eficiente para uma variedade maior de usuários e aplicações. Em particular, acredito que o sistema de ajuste automático irá aumentar o desempenho em quase todos os servidores, computação em nuvem e aplicações de data center.