Entendo que o equilíbrio de carga é uma maneira de medir o quão ocupado a CPU está. No entanto, não entendo como uma média de carga 0.00
pode existir. O kernel nem sempre roda? Isso não faz parte da carga da CPU?
Entendo que o equilíbrio de carga é uma maneira de medir o quão ocupado a CPU está. No entanto, não entendo como uma média de carga 0.00
pode existir. O kernel nem sempre roda? Isso não faz parte da carga da CPU?
Respostas:
A média de carga ao longo de um período é o número médio de processos que estavam competindo pela CPU durante esse período. O "kernel" não roda se não houver nada a ser feito; mais especificamente, se não há nada a ser feito, a CPU é atribuída a um encadeamento "inativo" especial que não é contado (e que pode fazer coisas como colocar a CPU é um estado em que aguarda uma interrupção).
Portanto, por exemplo, uma média de carga de 0,6 ao longo de 5 minutos geralmente 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, depois de 4 minutos e meio sem fazer nada, 6 processos competiram pela CPU nos últimos 30 segundos ...
A CPU está ociosa, não há processo que queira usá-la para executar o código, porque todos os processos aguardam a conclusão de uma operação de entrada ou saída ou estão aguardando a espera de serem acordados em um determinado momento futuro.
Os links do @ Panther fornecem discussões mais aprofundadas sobre as médias de carga.
Uma média de carga é uma medida de quão sobrecarregado um núcleo de CPU está em termos de número de processos que desejam usá-lo de uma só vez.
A seguir, assuma 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, seria o único a usá-la.
Uma CPU ociosa não significa que não há processos em execução. Por exemplo, os serviços em 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 entre processos para o uso da CPU. Ou seja, apenas um único processo está em execução para poder reivindicar 100% do tempo da CPU. Como alternativa, vários processos estão em execução, mas nenhum está reivindicando 100% da CPU, e seu uso combinado da CPU é de até 100%. Todos eles ainda estão rodando o mais rápido possível, mesmo que tivessem a CPU para si.
Maior que 1,0
A CPU está em uso máximo e há vários processos que desejam usá-la simultaneamente, para que estejam efetivamente executando mais lentamente do que seriam capazes de executar em uma CPU ociosa. Por exemplo, uma média de carga de 3,0 indica que os processos estão sendo executados em um terço da velocidade que eles desejam executar. Uma média de carga de 50,0 indica que os processos estão sendo executados a 1/50 da velocidade que eles desejam, devido a todos os outros processos em execução. Ou seja, valores acima de 1,0 indicam que a CPU disponível está sendo expandida entre mais e mais processos.
Ter uma CPU com múltiplos núcleos não altera o significado das figuras, mas pode mudar sua interpretação. Por exemplo, se você possui uma CPU de 4 núcleos, uma carga de 1,0 ainda é equivalente a um processo usando 100% da CPU em um núcleo, mas existem outros três núcleos. Portanto, em uma CPU de 4 núcleos, o ponto de eficiência máxima é 4,0, e não 1,0 - e o ponto em que tudo está sendo executado com eficiência de 1/3 é 12,0, e não 3,0. Para aumentar a complexidade, um único processo pode ter mais de um encadeamento, reivindicando CPU própria. Portanto, um único processo pode usar 100% de todos os 4 núcleos se for multiencadeado.
Nota importante
O uso da CPU é apenas um recurso que pode limitar o desempenho de um processo. A E / S é outra e não é fatorada na carga da CPU. Um processo que utiliza uma certa quantidade de CPU não necessariamente pode usar mais em uma máquina com carregamento mais leve, pois pode atingir outros gargalos.
Qual é a melhor média de carga
Realmente depende do que você está fazendo e se 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 carga média deve estar igual ou ligeiramente acima do número de núcleos. Qualquer coisa muito maior que isso indica que você poderia fazer mais, mais rapidamente, se 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 meio ou um terço, o que permite alguma variação intermitente antes que ocorram lentidão.
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.
D
os processos de estado sempre são incluídos na média de carga no Linux. Sim, é confuso. Sim, devemos olhar principalmente para outras métricas que não sejam a média de carga.
Uma média de carga de 0,00 significa basicamente que o sistema está ocioso e que não há atraso, estresse ou gargalo na CPU durante o tempo medido.
Isso não significa que sua CPU está inativa, apenas significa que, se um processo deseja tempo de CPU, não há espera.
É difícil dizer mais sobre o pouco que você postou, pois pode depender de como você mediu sua carga (sistema, por usuário?) E em que período.
Para alguns detalhes e leituras interessantes, consulte
https://www.tecmint.com/understand-linux-load-averages-and-monitor-performance/
http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html