- Herramienta liviana diseñada para ajustar automáticamente y de forma continua el rendimiento del sistema aprovechando las capacidades de observación de BPF (eBPF)
Problemas que busca resolver
- Demasiadas opciones de ajuste: el kernel de Linux tiene más de 1600 parámetros
sysctl ajustables. Encontrar una configuración adecuada para distintos entornos es complejo y difícil
- Menor intervención del administrador: en los sistemas modernos en la nube se necesita una gestión automatizada más que ajustes manuales. La mayoría de los sistemas casi no requieren intervención del administrador después de la configuración inicial
- Límites de la configuración estática: como el entorno del sistema cambia constantemente, ajustar con valores fijos puede ser ineficiente
Principios clave de diseño
- Sobrecarga mínima: evita rastrear eventos de alta frecuencia y usa observabilidad solo cuando es realmente necesario
- Claridad en la explicación de políticas: registra en syslog “qué” cambió y “por qué” cambió
- Prioridad para el administrador: si el administrador configura un valor, se desactiva la función de ajuste automático
- Principio de cero configuración: ajusta automáticamente sin configuración adicional. Evita los números mágicos en la medida de lo posible
- Ajuste dinámico: si aumenta el uso de memoria TCP, reduce el tamaño de los búferes para mantener el equilibrio del sistema
Conceptos principales
- Ajustador (tuner): cada ajustador procesa los eventos generados por programas BPF y administra los elementos ajustables relacionados
- Estrategia (strategy): un ajustador puede tener varias estrategias, y cada una selecciona la más efectiva mediante una función de evaluación
- Evento (event): incluye ID del ajustador, escenario e información del espacio de nombres de red, y el ajustador realiza la acción adecuada con base en esos datos
Arquitectura
bpftune funciona como un daemon y carga y administra varios ajustadores plugin en formato .so.
- Cada ajustador tiene un ID único y procesa eventos en BPF y en espacio de usuario.
- El componente BPF incluye
bpftune.bpf.h y usa variables compartidas y definiciones de mapas.
Lista de ajustadores compatibles
- TCP connection tuner: ajuste automático del algoritmo de control de congestión
- neighbour table tuner: expansión automática del tamaño de la tabla de vecinos
- route table tuner: expansión automática del tamaño de la tabla de rutas
- sysctl tuner: desactiva el ajustador si los valores
sysctl ajustados entran en conflicto con una configuración manual
- TCP buffer tuner: ajuste automático del tamaño de los búferes TCP
- net buffer tuner: ajuste automático de parámetros clave de red del sistema
- netns tuner: detección de adición y eliminación de espacios de nombres de red
2 comentarios
Comentarios de Hacker News
bpftunefue diseñado como una herramienta que no requiere configuraciónCachyOSCachyOS Hello->Apps/Tweaks