it-swarm-pt.tech

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

Se eu executar o 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 alta? Baixo? Depende do meu sistema?

67
John Fouhy

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

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

Geralmente, isso é uma computação tão eficiente quanto você pode obter, sem perdas devido a comutadores de contexto.

No entanto, em 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 somente um processador lógico, então a média de carregamento será Rush para 60, e seu computador seria incrivelmente inútil para você (morte por switch de contexto).

Também para notar, 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ê precisa saber o número de núcleos e fazer a divisão sozinho.

57
Kent Fredric

man 5 proc:

/ proc/loadavg Os primeiros três campos neste arquivo são valores médios de carga que fornecem o número de trabalhos na fila de execução (estado R) ou que esperam por E/S de disco (estado D) com média de 1, 5 e 15 minutos . Eles são os mesmos que os números médios de carga fornecidos pelo uptime (1) e outros programas.

9
fho

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 isso muito bem é esse aqui .

3
John T

Eu cito de uma referência de um curso:

A média de carga é a média do número de carga para um determinado período de tempo. Leva em conta processos que são:

  • Ativamente rodando em uma CPU.
  • Considerado executável, mas aguardando a disponibilização de uma CPU.
  • Dormir: ou seja, esperando que algum tipo de recurso (normalmente I/O) esteja disponível.

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

A média da carga é exibida usando três conjuntos diferentes de números, conforme mostrado no exemplo a seguir:

A última informação é a carga média do sistema. Assumindo que nosso sistema é um sistema com uma única CPU, o 0.25 significa que, no último minuto, em média, o sistema foi utilizado em 25%. 0,12 na posição seguinte significa que nos últimos 5 minutos, em média, o sistema foi 12% utilizado; e 0,15 na posição final significa que nos últimos 15 minutos, em média, o sistema foi utilizado em 15%. Se vimos um valor de 1,00 na segunda posição, isso implicaria que o sistema de CPU única foi 100% utilizado, em média, nos últimos 5 minutos; isso é bom se quisermos usar totalmente um sistema. Um valor acima de 1,00 para um sistema com uma única CPU indica que o sistema foi superutilizado: havia mais processos precisando de CPU do que a CPU disponível.

Se tivéssemos mais de uma CPU, digamos, um sistema de quatro CPUs, dividiríamos os números médios de carga pelo número de CPUs. Nesse caso, por exemplo, ver uma média de carga de 1 minuto de 4,00 indica que o sistema como um todo foi 100% (4,00/4) utilizado durante o último minuto.

Aumentos de curto prazo geralmente não são um problema. Um pico alto que você vê é provavelmente uma explosão de atividade, não um novo nível. Por exemplo, na inicialização, muitos processos iniciam e, em seguida, a atividade é encerrada. Se um pico alto é visto nas médias de carga de 5 e 15 minutos, isso pode ser motivo de preocupação.

2
Ely