O que significa média de carga no Unix / Linux?

65

Se eu executar uptime , obtenho algo assim:

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

O que significam esses números no final? A página man me diz que é "a média de carga do sistema nos últimos 1, 5 e 15 minutos". Mas qual é a escala? 1,27 de altura? Baixo? Depende do meu sistema?

    
por John Fouhy 17.08.2009 / 01:03

4 respostas

57

A média de carga é um indicador de quantos processos estão em média, exigindo simultaneamente atenção da CPU.

Geralmente, se você tem um processo rodando a 100%, e ele fica assim por toda a eternidade, você pode esperar que todos os valores se aproximem de '1'.

Geralmente, essa é a computação mais eficiente possível, sem perdas devido a interrupções de contexto.

No entanto, nos sistemas operacionais multitarefa modernos, há mais de uma coisa que requer atenção da CPU, portanto, sob uma carga moderada de um único processo, a média de carga deve flutuar entre 0,8 e 2.

Se você decidir fazer algo insano, como construir um kernel com make -j 60 , apesar de ter apenas um processador lógico, a média de carga se aproximará de 60 e seu computador será incrivelmente inútil para você (morte por alternância de contexto) .

Note também que esta métrica é independente de quantos núcleos / CPUs existem. Para um sistema de dois núcleos, a execução de um processo que consome um núcleo inteiro (deixando o outro ocioso) resulta em uma média de carga de 1,0. Para decidir o quão carregado é um sistema, você precisará saber o número de núcleos e fazer a divisão sozinho.

    
por 17.08.2009 / 01:15
9

man 5 proc:

/proc/loadavg The first three fields in this file are load average figures giving the number of jobs in the run queue (state R) or waiting for disk I/O (state D) aver‐ aged over 1, 5, and 15 minutes. They are the same as the load average numbers given by uptime(1) and other programs.

    
por 24.07.2013 / 15:51
3

Em geral, ele mede o número de processos ativos em um determinado momento, mas as métricas usadas para calculá-lo diferem em alguns sistemas. O único artigo que eu encontrei que explica bem é este .

    
por 17.08.2009 / 01:11
2

Eu cito de uma referência de um curso:

Load average is the average of the load number for a given period of time. It takes into account processes that are:

  • Actively running on a CPU.
  • Considered runnable, but waiting for a CPU to become available.
  • Sleeping: i.e., waiting for some kind of resource (typically, I/O) to become available.

Eu cito mais sobre interpretando a média de carga :

The load average is displayed using three different sets of numbers, as shown in the following example:

The last piece of information is the average load of the system. Assuming our system is a single-CPU system, the 0.25 means that for the past minute, on average, the system has been 25% utilized. 0.12 in the next position means that over the past 5 minutes, on average, the system has been 12% utilized; and 0.15 in the final position means that over the past 15 minutes, on average, the system has been 15% utilized. If we saw a value of 1.00 in the second position, that would imply that the single-CPU system was 100% utilized, on average, over the past 5 minutes; this is good if we want to fully use a system. A value over 1.00 for a single-CPU system implies that the system was over-utilized: there were more processes needing CPU than CPU was available.

If we had more than one CPU, say a quad-CPU system, we would divide the load average numbers by the number of CPUs. In this case, for example, seeing a 1 minute load average of 4.00 implies that the system as a whole was 100% (4.00/4) utilized during the last minute.

Short term increases are usually not a problem. A high peak you see is likely a burst of activity, not a new level. For example, at start up, many processes start and then activity settles down. If a high peak is seen in the 5 and 15 minute load averages, it would may be cause for concern.

    
por 14.05.2015 / 08:22