Ajustando el kernel de Linux con IA, según ByteDance

Ajustando el núcleo de Linux con IA, de acuerdo a ByteDance

Pingüino mejorado con IA

Richmond, Virginia: En la Conferencia de Plumbers de Linux, la reunión exclusiva para los principales desarrolladores del kernel de Linux, el ingeniero del kernel de Linux de ByteDance, Cong Wang, propuso que utilicemos inteligencia artificial (IA) y aprendizaje automático (ML) para ajustar el kernel de Linux para obtener los resultados máximos en cargas de trabajo específicas.

También: Rust en Linux: dónde estamos y hacia dónde vamos

En general, el kernel de Linux funciona muy bien para la mayoría de las tareas. Pero, para obtener el máximo rendimiento en un trabajo particular, debes ajustarlo ajustando sus parámetros. Solo hay un pequeño problema con este enfoque. Hay miles de parámetros. Incluso para un experto en Linux, ajustarlos para un rendimiento óptimo es un trabajo largo y difícil. Y, por supuesto, las diferentes cargas de trabajo requieren ajustes diferentes para diferentes conjuntos de parámetros del kernel de Linux. Como dijo Wang, “En los centros de datos a gran escala como el de ByteDance, se ha vuelto casi imposible ajustar manualmente los parámetros del kernel de Linux para cientos de cargas de trabajo diferentes”.

Herramientas como System Management Interface Tool (SMIT), Sysctl y TuneD pueden ayudar. Pero solo te permiten hacer cambios de ajuste manual en el kernel más fácilmente. También existen programas “inteligentes”, como BayOp de Red Hat, que utilizan ML para optimizar específicamente la eficiencia de las aplicaciones de red, pero no es un programa de IA/ML de uso general; está destinado a un tipo específico de ajuste de Linux.

También: Garuda KDE Dr460nized podría ser la distribución Linux con el aspecto más genial

Lo que está trabajando ByteDance es un primer intento de automatizar todo el proceso de ajuste de parámetros del kernel de Linux con un esfuerzo de ingeniería mínimo. Específicamente, ByteDance está trabajando en ajustar la gestión de memoria de Linux. ByteDance ha descubierto que con algoritmos de aprendizaje automático, como optimización bayesiana, el ajuste automatizado podría incluso superar a la mayoría de los ingenieros del kernel de Linux.

¿Por qué? Bueno, la idea, como dijo Wang con ironía, “no es dejar sin trabajo a los ingenieros del kernel de Linux”. No, el objetivo es “liberar a los ingenieros humanos de ajustar el rendimiento para cada carga de trabajo individual. Mientras se toman mejores decisiones con datos históricos, con los que los humanos a menudo tienen dificultades. Y, por último, pero no menos importante, encontrar mejores soluciones que las que obtenemos con nuestros métodos actuales de prueba y error, heurísticos”.

También: Si quieres probar BSD, elige GhostBSD

¿Cómo? El sistema de ajuste automático está diseñado para ajustar automáticamente las configuraciones internas del kernel de Linux en función de la carga de trabajo específica y la configuración de hardware. Este ajuste dinámico garantiza un rendimiento óptimo, abordando un desafío de larga data en la comunidad de Linux de ajustar manualmente el kernel para escenarios específicos. Para esto, el marco de IA/ML utiliza varios algoritmos como la optimización bayesiana, el algoritmo genético y el algoritmo de recocido simulado/evolutivo.

¿El resultado?

  • Optimización dinámica: El sistema monitorea continuamente el rendimiento del kernel, realizando ajustes en tiempo real en configuraciones como la escala de frecuencia de la CPU y la gestión de memoria.

  • Mayor eficiencia: Al optimizar el uso de recursos, el sistema de ajuste automático mejora significativamente la eficiencia de los sistemas Linux, especialmente en entornos con cargas de trabajo variables.

  • Interfaz fácil de usar: El sistema incluye una interfaz fácil de usar, lo que permite a aquellos con conocimientos técnicos limitados beneficiarse del rendimiento mejorado del kernel.

  • Configuración personalizable: Los usuarios avanzados pueden personalizar los parámetros de ajuste automático, adaptando el sistema a sus necesidades específicas.

Todavía es temprano, pero ByteDance ya está viendo algo de éxito. Por ejemplo, utilizando DAMON, un subsistema del kernel de Linux para monitoreo y optimización de acceso a memoria, con el marco de trabajo, lograron encontrar el mejor esquema para una aplicación de MySQL. Lo hicieron ejecutando diferentes esquemas de DAMON y comparando su rendimiento. Descubrieron que podían reducir el uso de memoria de la aplicación en un 30%. Para aplicaciones masivas, eso supone un ahorro real.

También: Linux podría ser tu mejor opción para aumentar la seguridad de tu computadora de escritorio

En otro caso, ByteDance pudo optimizar la latencia de red HTTP en un servidor NGINX mediante la optimización de la configuración de 16 parámetros de sintonización del kernel. En el mejor escenario, la sintonización de ML proporcionó un aumento del 12% en el rendimiento de la red de NGNIX en comparación con la optimización manual experta. Nuevamente, eso supone una mejora significativa.

ByteDance no afirma que su enfoque de IA/ML funcione para cada tarea de ajuste de Linux, pero Wang dijo: “Aunque hay limitaciones, creemos que el aprendizaje automático del kernel no solo es posible, sino también necesario”.

En mi opinión, esto podría cambiar el panorama para las aplicaciones de Linux. Al simplificar la optimización del kernel, se hará que Linux sea más accesible y eficiente para un rango más amplio de usuarios y aplicaciones. En particular, veo que el sistema de ajuste automático mejorará el rendimiento en casi todos los servidores, la computación en la nube y las aplicaciones de centros de datos.