El procesador marca cien por cien: la pregunta antes de leer un número
Tres números distintos llevan el mismo nombre: la media desde el arranque, el total acumulado y la diferencia entre dos muestras. Solo el último responde a "ahora mismo".
AtlasPVE ·
Esta entrada responde a
- proxmox uso de cpu alto
- proxmox qué proceso consume cpu
- qué es load average
- cómo leer la salida de top
- proxmox cpu al 100 por cien
Miras el panel y el procesador parece cargado. Antes de hacer nada hay una sola pregunta: qué periodo describe este número?
Porque tres números distintos llevan el mismo nombre, y los tres dicen cosas diferentes.
Tres números con el mismo nombre
La media desde el arranque. Si la máquina estuvo muy ocupada tres días hace dos meses, esa actividad sigue dentro de esta media. No responde a "ahora mismo".
El total acumulado. Nunca baja. Habla del pasado, no de hoy.
La diferencia entre dos muestras. Se toman dos medidas y se lee el cambio entre ellas. Solo esta responde a "ahora mismo".
La trampa clásica
La herramienta estándar que lista procesos muestra en su primera pantalla la media desde el arranque. Si miras esa primera pantalla y actúas, has intervenido en el pasado y no en el hoy.
Lo correcto es tomar al menos dos muestras y leer la segunda. La herramienta en sí no se equivoca; se equivoca la forma de leerla.
El mismo error toma la misma forma en todas partes
Esta forma ya la hemos visto dos veces en esta wiki.
En el desgaste de disco dijimos no el porcentaje sino la pendiente: ochenta y cinco por ciento restante significa diez años en un disco y ocho meses en otro.
En los paquetes perdidos dijimos no el total sino la velocidad: una máquina que tuvo una mala hora el año pasado queda señalada de por vida por su contador.
En el procesador vale no la media sino la diferencia. Tres sitios distintos, un solo error de lectura.
Se puede escribir como regla general: un número sin ventana de tiempo declarada no es una medición. Antes de actuar sobre un número, pregunta qué ventana cubre.
Cuando el procesador está de verdad alto
Entonces hace falta una segunda distinción: está ocupada una máquina, o no da abasto el servidor?
Que una máquina virtual use toda la parte que se le dio es normal. Si le diste dos núcleos y ha llenado esos dos núcleos, el sistema funciona exactamente como se diseñó.
El problema es el momento en que el servidor se satura: los invitados dejan de conseguir lo que piden y todos se ralentizan a la vez.
Y hay algo que se confunde a menudo: la carga no es el uso del procesador. La carga cuenta las cosas que esperan, y algunas de ellas no esperan al procesador sino al disco. Es posible que la carga sea alta con el procesador parado, y eso te dice que mires en otro sitio.
Qué hace Atlas
Cuando Atlas lista los procesos del servidor que más procesador consumen, toma a propósito dos muestras y lee la segunda.
El motivo es justo la trampa de arriba: la primera muestra lleva la media desde el arranque y mostrarla sería engañoso. La diferencia no es un detalle menor; una lista ordenada por la primera muestra presenta como culpable de hoy a un proceso que estuvo ocupado hace meses.
Otro detalle pequeño pero honesto: el resultado de esta medición se guarda un rato y las peticiones que llegan a la vez se atan a una sola medición. El motivo: mientras la ficha está abierta se refresca cada pocos segundos, y lanzar una medición nueva en cada refresco carga al servidor sin necesidad.
Es el mismo principio que en el artículo sobre el calor: lo que observa no debe ser lo que cuesta.
Fuentes
La documentación oficial de Proxmox. En inglés, y en este asunto es ella la que tiene la última palabra.