- Ferramenta leve projetada para ajustar automaticamente e continuamente o desempenho do sistema usando os recursos de observabilidade do BPF (eBPF)
Problemas que busca resolver
- Muitas opções de ajuste: o kernel Linux possui mais de 1600 parâmetros
sysctl ajustáveis. Encontrar configurações adequadas para diferentes ambientes é complexo e difícil
- Menor intervenção do administrador: em sistemas modernos de nuvem, é necessário gerenciamento automatizado em vez de ajuste manual. A maioria dos sistemas quase não recebe intervenção do administrador após a configuração inicial
- Limitações de configurações estáticas: como o ambiente do sistema muda continuamente, ajustar com valores fixos pode ser ineficiente
Princípios centrais de design
- Overhead mínimo: evita rastrear eventos de alta frequência e usa recursos de observabilidade apenas quando realmente necessário
- Clareza na explicação das políticas: registra no syslog “o que” foi alterado e “por que”
- Administrador em primeiro lugar: se o administrador definir um valor, a função de ajuste automático é desativada
- Princípio sem configuração: ajusta automaticamente sem configurações adicionais. Evita números mágicos sempre que possível
- Ajuste dinâmico: quando o uso de memória TCP aumenta, reduz o tamanho dos buffers para equilibrar o sistema
Conceitos principais
- Tuner: cada tuner processa eventos gerados por programas BPF e gerencia os itens ajustáveis relacionados
- Strategy: um tuner pode ter várias strategies, e cada uma escolhe a mais eficaz por meio de uma função de avaliação
- Event: inclui ID do tuner, cenário, informações de namespace de rede etc., e o tuner executa ações apropriadas com base nessas informações
Arquitetura
bpftune funciona como um daemon e carrega e gerencia vários tuners em formato de plugin .so.
- Cada tuner possui um ID exclusivo e processa eventos no BPF e no espaço do usuário.
- O componente BPF inclui
bpftune.bpf.h e usa variáveis compartilhadas e definições de mapas.
Lista de tuners suportados
- TCP connection tuner: ajuste automático do algoritmo de controle de congestionamento
- neighbour table tuner: expansão automática do tamanho da tabela de vizinhos
- route table tuner: expansão automática do tamanho da tabela de rotas
- sysctl tuner: desativa o tuner quando os valores
sysctl ajustados entram em conflito com configurações manuais
- TCP buffer tuner: ajuste automático do tamanho dos buffers TCP
- net buffer tuner: ajuste automático de parâmetros centrais relacionados à rede
- netns tuner: detecta adição e remoção de namespaces de rede
2 comentários
Opiniões do Hacker News
bpftunefoi projetado como uma ferramenta que não exige configuraçãoCachyOSCachyOS Hello->Apps/Tweaks