¿Qué significa cargar promedio en Unix / Linux?

68

Si corro uptime, obtengo algo como esto:

10:50:30 up 366 days, 23:27,  1 user,  load average: 1.27, 2.06, 1.54

¿Qué significan esos números al final? La página de manual me dice que es "el promedio de carga del sistema en los últimos 1, 5 y 15 minutos". ¿Pero cuál es la escala? ¿Es 1.27 alto? ¿Bajo? ¿Depende de mi sistema?

John Fouhy
fuente
2
Me pregunto cómo se debe interpretar el promedio de carga en un sistema de CPU de múltiples núcleos.
nagul
3
Como regla general, debe dividir el promedio de carga por el número de CPU para sistemas multinúcleo. Entonces, una carga de 2.0 en un sistema de doble núcleo es aproximadamente equivalente a 1.0 en un sistema de un solo núcleo. Esto no es totalmente cierto, debido a cosas como la E / S de disco y el tráfico de red, pero de todos modos la carga es una estimación aproximada.
Mike Cooper
1
Encontré este blog realmente útil: Comprensión de la carga de CPU de Linux
atmaish el

Respuestas:

59

El promedio de carga es un indicador de cuántos procesos hay en promedio, al mismo tiempo que exige la atención de la CPU.

En general, si tiene un proceso ejecutándose al 100%, y se mantiene así por toda la eternidad, puede esperar que todos los valores se acerquen a '1'.

En general, esta es la informática más eficiente que puede obtener, sin pérdidas debido a los cambios de contexto.

Sin embargo, en los sistemas operativos multitarea modernos, hay más de una cosa que necesita atención de la CPU, por lo que, bajo una cantidad moderada de carga de un solo proceso, el promedio de carga debería flotar entre 0.8 y 2.

Si decide hacer algo loco, como construir un núcleo con make -j 60, a pesar de tener solo un procesador lógico, el promedio de carga se precipitará hacia 60, y su computadora sería increíblemente inútil para usted (muerte por cambio de contexto).

También para tener en cuenta, esta métrica es independiente de cuántos núcleos / CPU hay. Para un sistema de dos núcleos, ejecutar un proceso que consume un núcleo completo (dejando el otro inactivo) da como resultado un promedio de carga de 1.0. Para decidir qué tan cargado está un sistema, necesitará saber la cantidad de núcleos y hacer la división usted mismo.

Kent Fredric
fuente
1
Entonces, ¿una carga promedio de menos de 1 significa que "los procesos generalmente nunca tienen que esperar"? ¿Puedo interpretar un promedio de carga de 2 como "Cada proceso lleva aproximadamente el doble de tiempo que en condiciones ideales"? (Sé que también hay que preocuparme por las E / S)
John Fouhy
Sí, eso tiene sentido, ignorando el IO que es;)
Kent Fredric
@KentFredric "En general, esta es la informática más eficiente que puede obtener, sin pérdidas debido a los cambios de contexto" ... ¿se está ejecutando 1 proceso al 100% todo el tiempo? Seguramente me estoy perdiendo algo fundamental aquí. ¿Podría explicar a qué se refería? Estoy confundido porque ¿cómo se puede describir un proceso que acapara todos los recursos de la CPU como eficiente?
Geek
2
Sé que un proceso que se ejecuta al 100% no suena muy "eficiente", pero si el proceso se limita arbitrariamente a usar solo el 20%, tomaría 5 veces más tiempo. Entonces, aquí eficiencia significa "utilización óptima de los recursos".
Kent Fredric
1
Entonces, para un sistema con núcleo n, un promedio de carga de n significa que cada núcleo está / estaba manejando un proceso el 100% del tiempo y, por lo tanto, ¿es más eficiente?
joshreesjones
9

hombre 5 proc:

/ proc / loadavg Los primeros tres campos en este archivo son cifras de promedio de carga que dan el número de trabajos en la cola de ejecución (estado R) o esperando la E / S de disco (estado D) promediada durante 1, 5 y 15 minutos . Son los mismos que los números promedio de carga dados por el tiempo de actividad (1) y otros programas.

fho
fuente
3

En general, mide el número de procesos activos en un momento dado, pero las métricas utilizadas para calcularlo difieren en algunos sistemas. El único artículo que he encontrado que lo explica bastante bien es este .

John T
fuente
2
Ese enlace está fechado '03. Linux 2.6 salió desde entonces. (Notará que están utilizando 2.0, ¡ay!) Las métricas parecen ser ahora algo diferentes en la práctica de las que se indican en esa página.
Kent Fredric
Aquí hay uno de finales del '06, que no es tan diferente del artículo vinculado: linuxjournal.com/article/9001
nagul
Su enlace todavía funciona y su salida de terminal es de 2001 😂 Qué increíble
MS Berends
2

Cito de una referencia de un curso:

El promedio de carga es el promedio del número de carga para un período de tiempo determinado. Tiene en cuenta procesos que son:

  • Activamente ejecutándose en una CPU.
  • Considerado ejecutable, pero esperando que una CPU esté disponible.
  • Dormir: es decir, esperar que algún tipo de recurso (típicamente, E / S) esté disponible.

Cito más sobre la interpretación del promedio de carga :

El promedio de carga se muestra usando tres conjuntos diferentes de números, como se muestra en el siguiente ejemplo:

La última información es la carga promedio del sistema. Suponiendo que nuestro sistema es un sistema de CPU única, el 0.25 significa que durante el último minuto, en promedio, el sistema se ha utilizado en un 25%. 0.12 en la siguiente posición significa que en los últimos 5 minutos, en promedio, el sistema ha sido utilizado en un 12%; y 0.15 en la posición final significa que en los últimos 15 minutos, en promedio, el sistema ha sido utilizado en un 15%. Si viéramos un valor de 1.00 en la segunda posición, eso implicaría que el sistema de CPU simple se utilizó al 100%, en promedio, durante los últimos 5 minutos; Esto es bueno si queremos utilizar completamente un sistema. Un valor superior a 1.00 para un sistema de CPU simple implica que el sistema se sobreutilizó: había más procesos que necesitaban CPU que CPU disponible.

Si tuviéramos más de una CPU, digamos un sistema de cuatro CPU, dividiríamos los números promedio de carga por la cantidad de CPU. En este caso, por ejemplo, ver un promedio de carga de 1 minuto de 4.00 implica que el sistema en su conjunto se utilizó al 100% (4.00 / 4) durante el último minuto.

Los aumentos a corto plazo generalmente no son un problema. Un pico alto que ve es probable que sea una explosión de actividad, no un nuevo nivel. Por ejemplo, al inicio, se inician muchos procesos y luego se establece la actividad. Si se observa un pico alto en los promedios de carga de 5 y 15 minutos, podría ser motivo de preocupación.

Ely
fuente
Sería útil agregar un enlace a su referencia.
Pierz
Eso es difícil. Es un curso en línea de la Fundación Linux para prepararse para el examen LFCS.
Ely