Microsoft optimiza el kernel de Linux para ARM del servidor





En la Linux Plumbers Conference 2020, los desarrolladores de Microsoft hablaron sobre su proyecto experimental: optimizar el kernel de Linux para procesadores de servidor ARM. El director de desarrollo de software, Jan Birman, hizo una presentaci贸n.



Seg煤n el especialista, el proyecto se inici贸 por solicitud interna de la empresa. Linux ya se est谩 utilizando en proyectos como Azure Cloud, Azure Sphere y Windows Subsystem para Linux. El equipo de Bierman ten铆a la tarea de maximizar el rendimiento del servicio en la nube en Linux mediante procesadores ARM o x86 de 64 bits. A los desarrolladores se les permiti贸 compilar el kernel para el sistema operativo con sus propios par谩metros y banderas.







La distribuci贸n original es Ubuntu 19.10 con GCC 9.2.1, binutils 2.33 y kernel 5.3 preinstalados. Procesador de servidor: ARM Marvell Thunder X2 de 64 bits. Despu茅s de una lluvia de ideas, el equipo decidi贸 utilizar optimizaciones LTO y PGO para construir el kernel.







La optimizaci贸n de perfiles (PGO o FDO) y la optimizaci贸n del tiempo de comunicaci贸n (LTO o LTCG) ralentizan significativamente el proceso de compilaci贸n y requieren m谩s RAM para que el compilador funcione, pero en teor铆a dan un aumento en la velocidad de ejecuci贸n de comandos en un 10-20%. Los desarrolladores rara vez utilizan PGO, y LTO se ha utilizado recientemente para crear n煤cleos y otros paquetes. Anteriormente, los desarrolladores desconfiaban de utilizar la optimizaci贸n del tiempo de enlace debido a problemas de compatibilidad en los compiladores GCC y LLVM. El equipo de Birman pidi贸 ayuda al experimentado desarrollador de kernel de Linux, Andy Kleen, quien lanz贸 un parche para que LTO funcionara correctamente con procesadores ARM. Para que PGO funcione, los desarrolladores estudiaron la documentaci贸n y la establecieron mediante prueba y error.







Despu茅s de completar la compilaci贸n del kernel, el equipo prob贸 el rendimiento en el sistema de administraci贸n de base de datos residente redis NoSQL de c贸digo abierto. Despu茅s de ejecutar varios comandos, los desarrolladores informaron un aumento en la velocidad de ejecuci贸n de los comandos en un 5-20%. Datos obtenidos de la prueba comparativa interna de redis.











Por cierto, no hace mucho, Microsoft lanz贸 la actualizaci贸n KB4566116 para Windows 10. La actualizaci贸n agrega soporte para el Subsistema de Windows para Linux 2 (WSL 2) en las versiones de SO 1909 y 1903. Esto hace posible utilizar un kernel de Linux completo. En WSL2, no es parte de Windows de forma predeterminada, pero se carga din谩micamente y se actualiza utilizando las herramientas integradas en el sistema operativo.



All Articles