Por que / como o "tempo de atividade" mostra a carga da CPU> 1?

14

Eu tenho uma CPU de 1 núcleo instalada no meu PC. Às vezes, uptimemostra carga> 1. Como isso é possível e o que isso significa?

EDIT: Os valores vão até 2.4

Richard Rodriguez
fonte
Nota: loadé diferente de load average. Como @michas disse, a carga é um indicador da contagem de processos que estão aguardando para serem executados, mas a média da carga é a carga média do sistema calculada em um determinado período de 1, 5 e 15 minutos.
Mohammad Kholghi

Respostas:

20

A carga não é igual ao uso da CPU. É basicamente um indicador de quantos processos estão aguardando para serem executados.

Alguns links úteis:

michas
fonte
Oh, ok, isso faz sentido. Existe uma maneira de obter o uso da CPU, não carregar?
Richard Rodriguez
Bem, geralmente você pode ter muitas CPUs. Um pode estar totalmente ocupado e o outro apenas ocioso. Dê uma olhada em htopuma boa visão geral "gráfica".
precisa saber é
2
isso está incorreto. A média de carga é uma métrica para quantos processos estão prontos para serem executados. Isso inclui processos em espera, mas também processos em execução no momento . Portanto, se a média de carga for 1, significa que, em média (por um período determinado), uma CPU estava em uso; se for dois, isso significa que, em média, duas CPUs estavam em uso. Como tal, uma média de carga específica para um sistema de CPU única não é a mesma coisa que a mesma média de carga para um sistema com vários núcleos.
Wouter Verhelst
7

uptimemostra a carga do sistema (não exatamente o uso da CPU), descrito a man uptimeseguir:

As médias de carga do sistema são o número médio de processos que estão em um estado executável ou ininterrupto. Um processo em um estado executável está usando a CPU ou aguardando para usá-la. Um processo em estado ininterrupto está aguardando algum acesso de E / S, por exemplo, aguardando disco. As médias são calculadas ao longo dos três intervalos de tempo. As médias de carga não são normalizadas para o número de CPUs em um sistema, portanto, uma média de carga de 1 significa que um único sistema de CPU é carregado o tempo todo enquanto em um sistema de 4 CPUs significa que ficou ocioso 75% do tempo.

Contanto que a carga seja menor que o número de núcleos de CPU que você possui, tudo ficará bem. Se ficar acima, significa que seu sistema não pode lidar com sua carga de trabalho em "tempo real". Assim, alguns processos precisam esperar para obter tempo de CPU (ou acesso de E / S). Uma linha de espera é criada.

Se você tiver uma carga de 2,7, significa que, em média (nos últimos 1, 5 ou 15 minutos, dependendo do valor visualizado), 2,7 processos estão tentando executar em paralelo, mas você só tem 1 núcleo, portanto, seu sistema está sobrecarregado. Você está pedindo demais por isso.

No entanto, não entre em pânico, pode não ser um problema: quando o trabalho termina, as coisas geralmente voltam ao normal.

Totor
fonte
4

O tempo de atividade mostra a saída de /proc/loadavgpara cargas.

A página de manual man 5 procdiz

   /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) averaged over 1, 5, and 15  minutes. 

Assim, você pode ter altas cargas, mesmo se tiver 0% de uso da CPU. Um núcleo pode ganhar cargas de até 100% ou 1 em sistemas com vários processadores.

Consulte também Alta carga de CPU durante E / S

Comunidade
fonte
-2
 ps aux --sort -rss |head -15

Isso classificará 15 processos mais usados ​​pela memória rss

Além disso, isso classificará os processos mais usados ​​por CPU e memória

 ps aux --sort -pid |head -15

Se você tiver 1 carregamento de CPU, mais de 1 é um aviso, examine a lista de processos e veja quem deles usa mais CPU e RAM

Quando você vir os processos mais usados, tente ver com quais arquivos os arquivos estão abertos.

lsof -p [PID_most_used]

Também seria bom se você der ouptut from top command

klerk
fonte
1
rss não está relacionado à média de carga, o que você está falando?
Wouter Verhelst