Load average

Jens Hardings Perl jhp en ing.puc.cl
Lun Mar 19 11:34:49 CLT 2007


On Mon, 2007-03-19 at 09:32 -0400, Ricardo Utreras Estrella wrote:
> Estimados:
> 
> Esta es una muestra de la carga de uno de los server que administro:
>    ...
>    1:16pm  up 10:13, 154 users,  load average: 4.76, 5.10, 5.41
>    2:16pm  up 11:13, 131 users,  load average: 6.47, 4.98, 4.03
>    3:16pm  up 12:13, 122 users,  load average: 7.47, 6.39, 5.24
>    4:16pm  up 13:13, 128 users,  load average: 4.91, 4.44, 3.74
>    5:16pm  up 14:13, 130 users,  load average: 7.31, 5.50, 4.23
>    6:16pm  up 15:13, 99 users,  load average: 3.35, 2.16, 1.93
>    7:16pm  up 16:13, 74 users,  load average: 5.39, 4.15, 3.12
>    8:16pm  up 17:13, 59 users,  load average: 6.06, 4.88, 3.60
>    9:16pm  up 18:13, 53 users,  load average: 2.84, 2.12, 1.92

Una máquina en la cual la carga nunca sube de 1 es un derroche, es como
tener un disco duro vacío. Pero al mismo tiempo, es posible que justo en
algún momento necesites mayor capacidad y valga la pena. Siempre es un
tema que depende de la máquina en particular.

Revisa por ejemplo qué es lo que hace subir la carga de la máquina: es
por I/O, uso intensivo de CPU, uso de memoria que hace requerir mucho
swap? En base a eso puedes ir determinando si es necesario agregarle
recursos (y cuáles!!). En la mayoría de los casos también es posible
evitar que la carga suba tomando medidas muy simples.

No hay valores específicos, solamente que con carga < 1 la máquina está
siendo sub-utilizada y con carga > 1 hay procesos que tienen que esperar
por los recursos. En mi caso, tuve problemas con una máquina que llegaba
a cargas mayores a 100. En este caso era por uso de memoria, y las
soluciones pasaron por bajar la cantidad de swap (para que el proceso
"glotón" se muera en vez de hacer trabajar los discos inútilmente) y la
máquina no llegue al estado en el cual no se puede recuperar de la
carga, y luego evitar que los procesos glotones fueran consumiendo
memoria. Eso último se logró mediante rlimit como medida inmediata y
configuración del servicio (spamassassin) para que no genere más de X
procesos en paralelo. Antes de eso obviamente se tuvo que revisar cuáles
eran los procesos que estaban generando el problema.

Tampoco tiene sentido mirar la carga de un momento en particular, si la
máquina tiene carga < 1 en promedio en un período de una semana o un
mes, quiere decir que solamente tiene peaks que en general pueden ser
controlados. Hay excepciones, como cuando hay procesos que se deben
realizar en cierto período de tiempo, y ahí el promedio no sirve. En los
casos en que sea relevante, usa algo como MRTG o su sucesor genérico
RRDTool para monitorearlo de manera automática con gráficos fáciles de
analizar. Aprovecha de monitorear otros aspectos útiles, como consumo de
memoria, I/O, estado de procesos críticos, etc.

Saludos,
-- 
Jens.



Más información sobre la lista de distribución Linux