Hay muchas razones por las que no deberías creerte el porcentaje de uso de la CPU; pero la cosa va a peor, hasta el punto de que es un dato irrelevante.
Seguro que en más de una ocasión has notado que tu ordenador iba lento, que los programas tardaban en cargar, o que un juego de repente iba a saltos. Y es muy posible que inmediatamente hayas buscado cuánto está siendo usada la CPU, para saber si realmente está a tope o si ocurre algo más.
Qué significa el porcentaje de uso de la CPU
En Windows, esto es tan fácil como pulsar Ctrl+Alt+Supr, y pulsar en “Administrador de tareas”; este programa muestra todo lo que está ocurriendo en el sistema, y en concreto, en la pestaña “Rendimiento” podemos ver cómo se están usando los recursos.
Este no es el único método para obtener estos datos, pero es el más popular. Otros sistemas operativos como Linux y macOS tienen sus propias herramientas, que cumplen funciones parecidas. En todos los casos, los datos se muestran igual: en porcentajes.
La idea es simple: cuanto mayor sea el porcentaje, es que el procesador está trabajando más. Es un concepto fácil de comprender por todo el mundo, y nos permite contar con una medición estandarizada en todos los equipos. Excepto que es completamente errónea.
Qué pasa realmente cuando Windows te dice que el procesador está al 90%
Brandon Gregg, ingeniero de Netflix, lo sabe muy bien, y lo ha explicado en una conferencia que se ha vuelvo viral, y no solo entre programadores.
El porcentaje de uso de la CPU se calcula midiendo el tiempo entre que un hilo empieza a ejecutarse en el procesador, y termina. De esta manera, en un momento determinado podemos saber cómo de ocupado estaba el procesador, mostrándolo en un porcentaje. Por ejemplo, si el sistema nos dice que el procesador está al 90%, lo podemos interpretar así:
El problema es que los ordenadores ya no funcionan así. Los hilos no ocupan el procesador, hacen lo que tienen que hacer, y se van; en muchas ocasiones, tienen que esperar a otros recursos, como datos de la memoria, o a que otros hilos les devuelvan un resultado. Así que, en realidad, un 90% de uso es algo más parecido a esto:
Es decir, el procesador sólo está siendo usado durante un tiempo, el 20% aproximadamente; el 70% restante es tiempo ocupado por hilos que están esperando a algo. Estos son datos reales sacados de la nube de Netflix, donde este tipo de información “falsa” de uso de recursos es un problema.
La cosa va a peor. Comparando dos servidores ejecutando las mismas peticiones en la base de datos, Gregg se dio cuenta de que el rendimiento de uno era un 27% inferior; sin embargo, al analizar ambos sistemas, no consiguió encontrar esas diferencias.
Por qué el porcentaje de uso de la CPU es una mentira
Por lo tanto, la explicación es que hay algo que ocurre a nivel de hardware, a nivel de CPU. Analizando la cantidad de instrucciones por ciclo de reloj, es cuando se dio cuenta de que algo ocurría dentro del procesador. Y siguiendo este camino, descubrió que problemas en la gestión de la memoria caché provocaba un aumento del 16% en el tiempo de espera de cada hilo.
Y esto le llevó a los verdaderos culpables: Spectre y Meltdown. Más concretamente, los parches que los fabricantes han lanzado para evitar estos exploits.
Recordemos que Spectre y Meltdown fueron dos exploits descubiertos en la inmensa mayoría de procesadores actuales; afectan al procesador, así que no se pueden solucionar a nivel de software, sólo es posible mitigarlos.
Y esta “mitigación” ha añadido ese aumento en el tiempo de espera a nivel de la memoria caché, que a su vez se ha convertido en una bola de nieve hasta que, finalmente ha llegado a un hecho innegable: el porcentaje de uso de la CPU es mentira.
Los procesadores multihilo confunden a los sistemas operativos
El problema revelado por Gregg no es el único. Al fin y al cabo, los sistemas operativos ya nos engañan con otro aspecto fundamental de nuestros procesadores: la cantidad de núcleos.
Los procesadores multihilo actuales de AMD e Intel no son reconocidos como tal en el porcentaje de uso de la CPU. Por ejemplo, con un procesador de 4 núcleos y 8 hilos, Windows nos mostrará ocho gráficas de uso de CPU; y eso no es así, ya que los cuatro hilos adicionales no son “reales” al no estar asignados en exclusiva a un sólo núcleo.
Tal vez va siendo hora de pensar en un nuevo método para calcular el uso de un procesador; y sobre todo, de tener en cuenta el impacto que tienen parches como los de Meltdown y Spectre en usos reales.
Noticias relacionadas
- Airbus presenta un avión con las alas de un ave de presa, ¿el futuro de la aviación?
- Mira cómo una estación espacial china cae a la Tierra destruyéndose en la reentrada
- Una estación espacial china va a caer a la Tierra, aquí es donde ocurrirá
- Crean una computadora dentro de un juego de construir ciudades... y funciona a base de caca