¿Qué tan alto puede ir la carga del sistema?

12

Cada vez que inicio sesión en mis servidores a través de SSH, me muestra un poco de información del servidor. Dirección IP de IE, uso de intercambio, uso de memoria, etc. Una de las otras cosas que me parpadea es la carga del sistema. Ahora, la mayoría de las veces el número de carga del sistema es <0.10, pero otras veces lo he visto subir a 0.89 (generalmente alrededor del arranque).

Esto plantea la pregunta, ¿qué tan alto puede ir la carga del sistema? Por ejemplo, ¿es posible que suba hasta 2.00, incluso 100.00?

Hunter Dolan
fuente
La parte fraccionaria indica el uso de la CPU, la parte decimal es el número de procesos en espera. Algo así 100.89sería más probable que100.00
Lekensteyn
posible duplicado del promedio de carga aceptable
Caleb
@Caleb, no estoy de acuerdo con que sea un duplicado. Es posible que el OP intención de pedir algo similar, como "cómo van carga del sistema de alta lata (y todavía funcionar aceptablemente)?". Pero como lo expresó, no es la misma pregunta.
Cíclope
@ Cyclops: Si el OP no tuviera la intención de preguntar acerca de los niveles aceptables en los servidores y estuviera haciendo una pregunta puramente teórica sobre cómo funcionaban los sistemas * nix, ¿no estaría fuera de tema aquí y sería un candidato para migrar a Unix.SE?
Caleb

Respuestas:

17

Esto plantea la pregunta, ¿qué tan alto puede ir la carga del sistema? Por ejemplo, ¿es posible que suba hasta 2.00, incluso 100.00?

Absolutamente. Mirando la uptimepágina del manual:

   System load averages is the average number of processes that are either
   in a runnable or uninterruptable state.  A process in a runnable  state
   is  either  using the CPU or waiting to use the CPU. A process in unin‐
   terruptable state is waiting for some I/O access, eg waiting for  disk.
   The  averages  are  taken over the three time intervals.  Load averages
   are not normalized for the number of CPUs in a system, so a load  aver‐
   age  of 1 means a single CPU system is loaded all the time while on a 4
   CPU system it means it was idle 75% of the time.

Entonces, si tiene muchos procesos esperando para ejecutarse (o muchos procesos bloqueados esperando E / S), tendrá un promedio de carga alto. Este artículo habla de ello con más detalle y tiene enlaces útiles a otros recursos.

En un sistema descargado, el promedio de carga generalmente estará en el rango 0 <= load_average <= n , donde n es el número de núcleos en su sistema.

larsks
fuente
1
Sí, esperar E / S es una manera fácil de crear mucha carga: montar un recurso compartido nfs, apagar el servidor nfs, iniciar 10.000 procesos que intentan tocar algo en el recurso compartido nfs: auge, carga de 10.000
Jens Timmerman
5

He visto sistemas vivos llegar a los miles. Promedio de carga, una medida relativa basada en los procesos de espera de cuánta competencia hay para llamar la atención del núcleo y obtener cierto tiempo en la CPU. Si la máquina está inundada de trabajos o fallas, eso puede llevar mucho tiempo.

El nivel aceptable depende de la máquina, el número de núcleos, el tipo de programador de trabajos de kernel en uso y los trabajos que espera que realice. Tengo algunas máquinas que están bastante contentas en el rango de ~ 10 pero se atascan si alcanzan ~ 40-50. Otros se vuelven notablemente retrasados ​​a los 2 y serían inutilizables a los 10.

No es inusual que la carga sea alta durante el arranque, ya que se están haciendo muchas cosas a la vez y la máquina está funcionando. Consideraría ~ 1 una carga bastante normal para golpear el arranque durante un Linux de escritorio, luego establecerme en ~ 0.1 sin hacer nada.

Caleb
fuente
3
Corrección menor: el promedio de carga no es una medida de tiempo. Es el número promedio de procesos en espera. No hay forma de distinguir entre 1) un proceso que acapara una CPU y otro que nunca lo consigue, y 2) dos procesos que se intercambian continuamente. Ambos serían cargas de 1.0.
Plutor
1
He visto más de 1500 en una caja de Linux seriamente fubared. Entonces murió.
Tom O'Connor
3

En Linux, los valores promedio de carga del sistema están compuestos por procesos en uno de tres estados diferentes. En general, se podría decir que el promedio de carga es la cantidad de procesos que esperan el tiempo de CPU o que consumen tiempo de CPU. Los tres valores en el resumen de promedio de carga son el promedio de carga durante el último minuto, los últimos 5 minutos y los últimos 15 minutos.

Los tres estados diferentes de procesos contados para el promedio de carga son: (1) procesos que se ejecutan en la CPU, (2) procesos que esperan el tiempo de la CPU y (3) procesos en suspensión ininterrumpida. La última categoría, aunque no genera carga de CPU, puede aumentar significativamente el promedio de carga del sistema.

Por ejemplo, una docena de procesos que esperan lecturas de un disco que está muy ocupado o no disponible generará un promedio de carga de 12 como procesos en suspensión ininterrumpida, pero su CPU puede estar perfectamente inactiva mientras tanto.

Entonces, sí, el promedio de carga puede subir fácilmente a dos dígitos. Lo malo que es depende de su hardware. Si tiene 16 núcleos, tener 16 procesos esperando el tiempo de CPU no es tan malo. En una máquina de un solo núcleo, tener 3 procesos esperando el tiempo de CPU puede ser muy malo.

wzzrd
fuente
Creo que es malo solo si son procesos vinculados a la CPU, lo cual es raro. La mayoría de los procesos grandes están vinculados a IO o / y vinculados a RAM.
peterh - Restablece a Monica el
3

Realice un proceso C simple ejecutando bucles infinitos en 10000 hilos. Dale una prioridad muy baja (+20). Su carga será de 10000, mientras que su sistema seguirá siendo utilizable. Solo usará muy poca RAM (como máximo algunos megabytes).

Aunque es una configuración bastante poco común, en los sistemas reales no encontrará esto.

La carga del sistema significa solo el número medio de procesos que esperan un intervalo de tiempo de CPU, ni menos ni más. Aquí hay otra respuesta sobre la forma correcta de interpretar la carga del sistema .

En la experiencia diaria, una carga de más de 30 significa mayormente algún problema.

peterh - Restablece a Monica
fuente
2

Unos segundos después de matar un proceso que estaba comiendo una vieja CPU de 450Mhz:

ingrese la descripción de la imagen aquí

petrus
fuente
1

Cuando inicia repetidamente procesos que se bloquean inmediatamente, la carga será tan alta como la cantidad de procesos que logre iniciar. Suponiendo que tiene suficiente RAM para que el sistema no se intercambie, el sistema incluso responderá, ya que la carga debido a los procesos de bloqueo no es realmente dañina.

Peter G.
fuente
1

He visto un servidor funcionando a> 200 de carga.

Me gustaría hacer una prueba de esfuerzo y ver.

Kedare
fuente