Disponemos de un cluster con máquinas físicas HW
Cada máquina contiene 32 CPU
# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 32
On-line CPU(s) list: 0-31
Thread(s) per core: 2
Core(s) per socket: 8
Ahora queremos enviar una alarma cada vez que el promedio de carga desde el tiempo de actividad hasta los 5 minutos del tiempo de actividad alcance el umbral.
Tengo entendido que debemos preocuparnos cuando el valor promedio de carga (a los 5 minutos del tiempo de actividad) es superior a 32 (número de CPU).
Estoy en lo correcto ?
Respuesta1
El promedio de carga no muestra principalmente la carga de la CPU, es una aproximación de la longitud de la cola de elementos de trabajo. En la vida real, esto a menudo está mucho más influenciado por los ciclos de CPU desperdiciados en esperas de E/S que por los ciclos de CPU realmente utilizados (por supuesto, esto depende de la carga de trabajo).
Eche un vistazo a la top
herramienta para determinar una primera estimación de cómo emplean su tiempo sus CPU. Como regla general (ysolocomo tal) considerar
- Los porcentajes altos
User
son saludables: su máquina está en buen uso - Los porcentajes altos
Sys
pueden indicar una aplicación no muy eficiente (o invitados de VM que ejecutan una combinación de sistema operativo y controlador no optimizada) - Los tiempos altos
Wait
significan que su E/S (probablemente almacenamiento) no puede seguir el ritmo. Esto puede indicar nuevamente la necesidad de optimización dentro de su aplicación o simplemente pedir demasiado a su hardware de almacenamiento (Principales lugares para buscar: ¿Se utilizan discos giratorios para cargas de trabajo sensibles a la latencia? ¿Está utilizando RAID5 para escrituras pequeñas?)