Como pode uma média de carga de 0.00 existir?

12

Eu entendo que o balanceamento de carga é uma maneira de medir o quão ocupado o processador é. No entanto, não entendo como uma média de carga de 0.00 pode existir. O kernel não funciona sempre? Isso não faz parte da carga da CPU?

    
por NerdOfLinux 23.11.2017 / 03:19

3 respostas

16

A média de carga ao longo de um período de tempo é o número médio de processos que estavam competindo pela CPU durante esse período de tempo. O "kernel" não funciona se não houver nada a ser feito; mais especificamente, se não há nada a ser feito, a CPU é dada a um segmento "ocioso" especial que não é contado (e que pode fazer coisas como colocar a CPU em um estado onde ela aguarda uma interrupção).

Assim, por exemplo, uma média de carga de 0,6 em 5 minutos normalmente significa que durante esses 5 minutos a CPU foi usada por um total de 3 minutos por alguns processos (ou pelo kernel), e por um total de 2 minutos estava ocioso. Mas, como o @UKMonkey observa, pode significar que após 4 minutos e meio sem fazer nada, 6 processos competiram pela CPU nos últimos 30 segundos ...

A CPU está inativa, pois não há processo que queira usá-la para executar o código, porque todos os processos estão aguardando uma operação de entrada ou saída para serem concluídos ou estão aguardando para serem despertados em um determinado momento futuro. / p>

@ Os links da Panther fornecem discussões mais detalhadas sobre as médias de carga.

    
por AlexP 23.11.2017 / 03:42
13

Uma média de carga é uma medida da sobrecarga de um núcleo da CPU em termos de número de processos que desejam usá-lo de uma só vez.

O seguinte assume uma CPU de núcleo único (thread único):

  • 0.0

    A CPU não está fazendo nada. Se um processo começasse a usar a CPU, então seria o único a usá-lo.

    Uma CPU inativa não significa que não haja processos em execução. Por exemplo, os serviços de segundo plano e o kernel ainda estão em execução e ainda ocupam memória. Eles simplesmente não estão usando nenhuma CPU, porque não estão fazendo nada.

  • 1,0

    A CPU está no uso máximo, mas não há contenção zero entre os processos para uso da CPU. Ou seja, apenas um único processo está em execução, portanto, ele pode reivindicar 100% do tempo da CPU para si mesmo. Como alternativa, vários processos estão em execução, mas nenhum está reivindicando 100% da CPU e seu uso combinado de CPU soma 100%. Eles ainda estão sendo executados tão rápido quanto funcionariam, mesmo que tivessem a CPU para eles mesmos.

  • Maior que 1,0

    A CPU está no uso máximo, e há vários processos que querem usá-la simultaneamente, de forma que eles sejam efetivamente executados mais lentamente do que seriam capazes de rodar em uma CPU inativa. Por exemplo, uma média de carga de 3,0 indica que os processos estão executando em um terço da velocidade que desejam executar. Uma carga média de 50,0 indica que os processos estão sendo executados a 1/50 da velocidade que desejam executar, devido a todos os outros processos em execução. Ou seja, valores maiores que 1,0 indicam que a CPU disponível está sendo estendida entre mais e mais processos.

Ter uma CPU com vários núcleos não altera o significado das figuras, mas pode alterar sua interpretação. Por exemplo, se você tem uma CPU de 4 núcleos, então uma carga de 1,0 ainda é equivalente a um processo usando 100% da CPU em um núcleo, mas há outros três núcleos. Portanto, em uma CPU de 4 núcleos, o ponto de eficiência máxima é 4.0, não 1.0 - e o ponto em que tudo está funcionando com 1/3 de eficiência é 12.0, não 3.0. Para aumentar a complexidade, um único processo pode ter mais de um encadeamento cada um reivindicando CPU própria. Portanto, um único processo pode usar 100% de todos os 4 núcleos, se for multi-threaded.

Nota importante

O uso da CPU é apenas um recurso que pode limitar o desempenho de um processo. E / S é outra e não é fatorada na carga da CPU. Um processo que usa uma certa quantidade de CPU não necessariamente será capaz de usar mais em uma máquina mais leve, já que eles podem atingir outros gargalos.

Qual é a melhor média de carga

Isso realmente depende do que você está fazendo e se você prefere a capacidade de resposta ou se a CPU trabalha o máximo possível.

Para algo que precisa ser feito o máximo possível, a média de carga deve estar no mesmo nível ou ligeiramente acima do número de núcleos. Qualquer coisa muito maior do que isso indica que você poderia fazer mais, mais rapidamente, se você separasse as tarefas em mais computadores / servidores.

Para algo que precisa ser o mais responsivo possível (reagir rapidamente), a média de carga deve ser uma margem confortável menor que o número de núcleos, como metade ou um terço, o que permite alguma variação intermitente antes que ocorram lentidões.

Para um convidado de virtualização (por exemplo, KVM) quanto menor a média de carga, melhor, porque você está realmente compartilhando a CPU com outros convidados no mesmo host.

    
por thomasrutter 23.11.2017 / 06:03
2

Uma média de carga de 0,00 basicamente significa que seu sistema está ocioso e que não há atraso ou estresse ou gargalos na sua CPU ao longo do tempo medido.

Isso não significa que sua CPU está inativa, apenas significa que, se um processo quiser tempo de CPU, não há espera.

É difícil dizer mais do pouco que você postou, pois pode depender de como você mediu sua carga (sistema, por usuário?) e ao longo do tempo.

Para alguns detalhes e leitura interessante, consulte

link

link

link

    
por Panther 23.11.2017 / 03:31

Tags