Desde Linux Darkcrizt  

bpftune, el nuevo sistema de optimización automático BPF para Linux

bpftune

bpftune tiene como objetivo proporcionar un ajuste automático ligero y siempre activo del comportamiento del sistema.

Hace poco Oracle dio a conocer mediante una publicación su nuevo sistema «bpftune» el cual esta diseñado para optimizar automáticamente la configuración del kernel de Linux en función de las tareas realizadas, la actividad del sistema y los patrones de carga.

bpftune se ejecuta en segundo plano y monitorea la utilización del sistema y la pila de red. El motivo de la creación del proyecto es la necesidad de optimizar sistemas autosuficientes diseñados para funcionar con una mínima intervención del administrador, así como el aumento de la complejidad del kernel moderno, lo que aumenta la laboriosidad de las optimizaciones manuales.

Y es que el kernel proporciona más de 1500 parámetros que afectan el rendimiento y el consumo de recursos, y a menudo el administrador simplemente copia recetas preparadas, sin profundizar en su esencia en detalle y con la esperanza de que ayuden).

Bpftune ajusta de forma automática y continua la configuración del kernel. El sistema se monitorea utilizando las funciones correspondientes del Berkeley Packet Filter (BPF).

El kernel de Linux contiene más de 1500 parámetros ajustables, ¡y configurar estos parámetros correctamente puede mejorar significativamente el rendimiento y la utilización del sistema! Durante años, hemos tratado de proporcionar las sugerencias correctas para estos parámetros ajustables, a través de notas de versión de software y valores predeterminados mejorados, pero muchas cargas del sistema se beneficiarán del ajuste dinámico de estos valores.

¡Presentamos bpftune, un configurador automático que monitorea sus cargas de trabajo y establece los valores correctos de los parámetros del kernel! bpftune es un proyecto de código abierto disponible en los repositorios de Oracle Linux

Sobre Bpftune

Bpftune monitorea continuamente el estado del sistema, ajusta de manera adaptativa los parámetros del kernel que afectan el rendimiento y evalúa el comportamiento cambiante para obtener resultados óptimos. Gracias a BPF, no solo se tienen en cuenta las estadísticas de todo el sistema, sino también los detalles del comportamiento de los componentes individuales, lo que, por ejemplo, permite ajustar la configuración a nivel de enchufes y dispositivos individuales.

La implementación de optimizaciones individuales se traslada a complementos que se cargan durante el inicio del proceso en forma de bibliotecas. Cada complemento que implementa una optimización particular contiene un controlador BPF que se ejecuta en el núcleo y un componente que se ejecuta en el espacio del usuario.

Los principales beneficios que proporciona son:

  • Supervisión y ajuste continuos del comportamiento del sistema mediante el uso de características de observabilidad BPF (Berkeley Packet Filter).
  • Ajustar el comportamiento del sistema en un nivel de grano fino, hecho posible porque podemos observar más detalles del estado del sistema usando BPF.

Todos los complementos utilizan un búfer de anillo BPF global común para pasar eventos del kernel al espacio del usuario. Los complementos se pueden seleccionar según las necesidades del administrador y también se pueden desactivar automáticamente si el administrador cambia manualmente la configuración del kernel asociada con ellos.

Durante el proceso de ajuste automático, bpftune intenta lograr el equilibrio óptimo entre el suministro y el consumo de recursos, teniendo en cuenta el impacto indirecto de los cambios. Por ejemplo, para aumentar el rendimiento, debe aumentar el tamaño del búfer de red, pero aumentarlo conduce a un mayor consumo de memoria y mayores retrasos en la transferencia de datos, por lo que estos parámetros deben tenerse en cuenta al aumentar el tamaño del búfer.

Los complementos disponibles para su uso incluyen:

  • bpftune-tcp-cong: selección automática del algoritmo de control de congestión de red óptimo
  • bpftune-neigh: selección automática del tamaño de la tabla de direcciones MAC de los hosts vecinos
  • bpftune-route: selección automática del tamaño de la tabla de enrutamiento.
  • bpftune-sysctl: supervisa la configuración de sysctl y desactiva el optimizador asociado en caso de conflicto con la configuración manual.
  • bpftune-tcp-buffer: selección automática de los tamaños máximo e inicial de los búfer TCP
  • bpftune-net-buffer: configuración automática de los búfer de red básicos
  • bpftune-netns: realiza un seguimiento de la adición y eliminación de espacios de nombres de red (espacio de nombres de red)

Finalmente si estás interesado en poder conocer más al respecto, debes saber que el código del proyecto está escrito en lenguaje C y se distribuye bajo la licencia GPLv2 y puedes consultar los detalles en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.