Pular para o conteúdo

bpftune - Ajuste Automático de Kernel com eBPF - Guia de Referência

bpftune - Ajuste Automático de Kernel com eBPF - Guia de Referência

bpftune (by Oracle) é um daemon leve que automaticamente ajusta parâmetros de kernel Linux usando eBPF. Em vez de exigir um admin adivinhar valores de sysctl, ele observa comportamento real do sistema através de sondas eBPF — pressão de buffer TCP, saturação de tabela de conexão, reclamação de memória — e ajusta os parâmetros relevantes continuamente conforme carga muda. Seu princípio guia é ser invisível: overhead quase zero, nenhuma configuração necessária, e deliberadamente retrocede qualquer parâmetro que um administrador tenha definido manualmente.

Ajuste automático muda comportamento de kernel em um sistema ao vivo. Teste-o em hosts não-críticos e observar os logs antes de lançamento amplo.

Requisitos

  • Kernel Linux com suporte BPF e BTF (5.15+ recomendado)
  • Privilégios raiz (carrega programas eBPF, escreve sysctls)

Instalação

PlataformaComando
Oracle Linux / Fedorasudo dnf install bpftune
Do código-fontegit clone https://github.com/oracle/bpftune && make && sudo make install
Serviçosudo systemctl enable --now bpftune
Verificarbpftune -h

Executando

ComandoDescrição
sudo bpftuneExecutar em foreground
sudo bpftune -dExecutar como daemon
sudo systemctl start bpftuneIniciar via systemd
sudo bpftune -sMostrar resumo de ajustadores e estado atual
journalctl -u bpftune -fObservar decisões de ajuste ao vivo

Opções Principais

FlagEfeito
-dModo daemon
-sSaída de resumo/status
-SSuprimir (dry-run) — registrar o que ajustaria
-LModo de aprendizado / comportamento legado
-rReverter mudanças ao sair
-l LEVELNível de verbosidade de log
# Ver o que ajustaria sem mudar nada
sudo bpftune -S -l debug

O Que Ajusta

AjustadorAjusta
Buffer TCPtcp_rmem / tcp_wmem sob pressão de throughput
Congestionamento TCPSeleção de algoritmo de controle de congestionamento
Limites de conexãosomaxconn, tamanhos de backlog quando filas transbordam
Tabela de vizinhosTamanhos de tabela ARP/ND quando entradas são dropadas
Tabela de rotaDimensionamento de cache de rota
Netns / sysctlEquivalentes por namespace onde aplicável

Como o Ciclo de Feedback Funciona

PassoDetalhe
ObservarSondas eBPF contam drops, transboramentos, eventos de pressão
DecidirSe um threshold é repetidamente atingido, o parâmetro é um gargalo
AjustarElevar o limite incrementalmente (nunca ilimitado)
Re-observarConfirmar que o sintoma limpou
RetrocederSe um admin definiu o valor manualmente, deixar sozinho

Este ciclo “observar, empurrar, verificar” é por que consegue executar continuamente sem oscilar.

Verificando Seu Efeito

# O que bpftune mudou?
sudo bpftune -s

# Confirmar um sysctl que reportou ajustando
sysctl net.ipv4.tcp_rmem net.core.somaxconn

# Correlacionar com o sintoma que estava fixando
ss -s                      # stats de socket/fila
netstat -s | grep -i drop  # drops que dispararam ajuste

Quando Usar

CenárioFit
Cargas de trabalho variáveis/desconhecidasForte — adapta conforme carga muda
Instâncias de nuvem de tamanhos diferentesForte — sem ajuste por instância
Carga de trabalho altamente ajustada, fixaFraco — seus valores manuais provavelmente são melhores
Controle de mudança rigorosoUsar dry-run -S, ou pular

bpftune vs Ajuste Manual/Perfil

AspectobpftuneTuneDSysctl manual
ModeloContínuo, feedback-drivenPerfis estáticosValores únicos
Adapta-se a cargaSimNãoNão
Config necessáriaNenhumaEscolher um perfilExpertise completo
Respeita configurações manuaisSim (retrocede)SobrescreveN/A

Complementa TuneD (perfis estáticos amplos) e ferramentas diretas como cpupower; bpftune alvo limites de rede/kernel especificamente.

Recursos