porcentaje cpu 4

porcentaje cpu 4

Software

Los porcentajes de uso de CPU son una gran mentira, y cada vez es más gorda

El porcentaje de uso de la CPU es un dato que suele usar todo el mundo; sin embargo, deberías saber que es una mentira total.

2 mayo, 2018 18:39

Noticias relacionadas

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.

porcentaje cpu 5

porcentaje cpu 5

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.

porcentaje cpu 1

porcentaje cpu 1

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í:

porcentaje cpu 2

porcentaje cpu 2

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:

porcentaje cpu 3

porcentaje cpu 3

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.

meltdown spectre

meltdown spectre

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.

porcentaje cpu 6

porcentaje cpu 6

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.