El kernel Linux rinde cada vez peor ¿O tal vez no?
La evolución del kernel es algo que suele preocupar mucho a los usuarios de GNU/Linux, que en muchas ocasiones son tendentes a utilizar lo último de forma un tanto indiscriminada.
En los últimos años ha habido bastantes factores que han aumentado la preocupación en torno a la evolución del rendimiento del kernel Linux, con especial mención a Meltdown y Spectre. Si bien un porcentaje muy importante de los procesadores modernos se vieron afectados, Intel fue la más golpeada de todas, siendo de las muy contadas marcas que se vieron afectadas por Meltdown. La aplicación de parches contra dichas vulnerabilidades tuvo como consecuencias las quejas de Linus Torvalds y hasta encontronazos entre Intel y los máximos encargados del desarrollo de Linux. Pero además de toda la vorágine provocada Meltdown y Spectre, ¿cuál ha sido la evolución del kernel a nivel de rendimiento?
Para saber cuál ha sido la evolución del kernel en cuanto a rendimiento vamos a tomar prestados, una vez más, los resultados de las pruebas de benchmarks realizadas por el incansable Michael Larabel, jefazo de Phoronix y desarrollador principal de la suite de pruebas de rendimiento del mismo nombre, pero en esta ocasión no vamos a publicar todos los resultados, sino a exponer una visión general. En esta ocasión Michael ha comparado sobre un procesador Intel Core i9 7960X de 4GHz montado en una placa MSI X299 SLI PLUS los siguientes kernels ejecutados en Ubuntu 19.10:
- Linux 4.16 genérico
- Linux 4.17 genérico
- Linux 4.18 genérico
- Linux 4.19 genérico
- Linux 5.0 genérico
- Linux 5.1 genérico
- Linux 5.2 genérico
- Linux 5.3 genérico
- Linux 5.4 genérico (en desarrollo)
Aunque en muchas pruebas los resultados son relativamente parejos, lo que más sorprende es ver que el kernel 4.16, el más antiguos de todos los comparados, se erige como claro vencedor. Especial mención tiene la prueba realizada con Facebook RockDB, en la que la mencionada versión de Linux consigue situarse muy por encima del resto.
La prueba con ctx_rock es otra digna de mención, y es que aquí las versiones más recientes salen claramente peor paradas que las más veteranas. Mientras que los kernels 5.4, 5.3 y 5.2 muestran un tiempo por encima de 700, el resto queda por debajo de los 450, siendo el ganador la versión 5.1 con una puntuación de 402.
La prueba Octane de Selenium realizada con Google Chrome vuelve a mostrar que los kernels más veteranos rinden mejor sobre un Intel Core i9 7960X. Aquí todas las versiones anteriores a la 5 muestran puntuaciones por encima de los 44.000, superando Linux 4.16 los 46.000, mientras que de los más recientes ninguno ha conseguido llegar a la puntuación de 37.000. Sí, otra diferencia abultada a favor de “los viejos”.
Si se cuenta la cantidad de veces que cada kernel ha quedado en primer lugar, tenemos a Linux 4.16 como claro ganador, habiendo si el mejor en 25 ocasiones.
Mientras que si se cuenta la cantidad de veces que cada kernel ha quedado en último lugar, y posiblemente para sorpresa de los aficionados más extremos de la “versonitis”, Linux 5.4 ha sido el perdedor tras haber quedado último en 25 ocasiones, seguido muy de cerca por el kernel 5.3, que se ha mostrado como el peor en 24 pruebas.
Que software más reciente no significa mejor rendimiento es algo que ya pudimos ver en la comparativa entre Windows 10 y Linux sobre un Intel Core i9 7980XE, de la que el sistema de Microsoft quedó como claro perdedor. Pero quizá la noticia estaba sobre todo en cómo CentOS Stream y Debian 10 se mostraron como los mejores, derrotando a distribuciones que incluyen software bastante más reciente, pero probablemente menos pulido.
Mi experiencia con un Ryzen 7 1700
Poco después de publicar la derrota de Windows 10 frente sistemas GNU/Linux de distinta índole, decidí exponer una opinión aclarando que las pruebas de benchmarks no tienen que ser tomadas como una realidad absoluta, sino más bien como una referencia de un momento concreto, y que los resultados podrían ser diferentes si se cambia al menos parcialmente el contexto. De cara a los usuarios finales puse dos ejemplos muy sencillos de esto: el hardware reciente, que puede funcionar peor con un kernel antiguo, y los videojuegos, cuya ejecución se recomienda hacer con drivers recientes.
Estas pruebas comparando distintas versiones de Linux en un Intel Core i9 7960X pueden hacer pensar que el kernel rinde cada vez peor, sin embargo, mi experiencia con un Ryzen 7 1700 montado en un placa ASUS ROG STRIX X370-F GAMING es prácticamente la opuesta. A lo largo de los meses he utilizado los kernels 4.18, 5.0, 5.2 y 5.3 con la misma versión de la BIOS y he podido notar una mejora del rendimiento cada vez que actualizaba. Parece que todavía queda o al menos quedaba bastante por exprimir de la primera generación de Ryzen destinada escritorio de consumo.
Además de la respuesta en general, donde más he notado la mejora utilizando Linux 5.0 y posteriores ha sido con Borderlands Pre-Sequel. No se puede decir que el port de Aspyr brille a nivel de rendimiento, pero la mejora en la fluidez ha sido muy notable y el framerate es ahora mucho más estable.
¿Te has comprado un ordenador nuevo y este incluye hardware reciente? Aquí Arch Linux, Manjaro y Fedora posiblemente muestren un mejor desempeño que Debian o CentOS, ya que el fuerte de los últimos está en ejecutarlos en una configuración de hardware que lleve tiempo consolidado.