Quão alta pode ser a carga do sistema?

12

Toda vez que faço login nos meus servidores via SSH, ele exibe um pouco das informações do servidor. Endereço IP do IE, uso de swap, uso de memória, etc. Uma das outras coisas que ele pisca é carga do sistema. Agora, na maioria das vezes, o número de carga do sistema é <0,10, mas outras vezes eu o vi subir para 0,89 (geralmente na inicialização).

Isso levanta a questão: qual a alta carga do sistema? Por exemplo, é possível subir para 2,00 e até 100,00?

Hunter Dolan
fonte
A parte fracionária indica o uso da CPU, a parte decimal o número de processos em espera. Algo como 100.89seria mais provável do que100.00
Lekensteyn
possível duplicata de carga média Aceitável
Caleb
@ Caleb, eu discordo que é uma duplicata. É possível que o OP pretendesse perguntar algo semelhante, como "até que ponto a carga do sistema pode subir (e ainda funcionar de forma aceitável)?". Mas, como foi dito, não é a mesma pergunta.
Ciclope
@ Cyclops: Se o OP não pretendesse perguntar sobre níveis aceitáveis ​​em servidores e estivesse fazendo uma pergunta puramente teórica sobre como os sistemas * nix funcionavam, isso não seria o tópico aqui e um candidato à migração para o unix.SE?
Caleb

Respostas:

17

Isso levanta a questão: qual a alta carga do sistema? Por exemplo, é possível subir para 2,00 e até 100,00?

Absolutamente. Olhando para a uptimepágina do manual:

   System load averages is the average number of processes that are either
   in a runnable or uninterruptable state.  A process in a runnable  state
   is  either  using the CPU or waiting to use the CPU. A process in unin‐
   terruptable state is waiting for some I/O access, eg waiting for  disk.
   The  averages  are  taken over the three time intervals.  Load averages
   are not normalized for the number of CPUs in a system, so a load  aver‐
   age  of 1 means a single CPU system is loaded all the time while on a 4
   CPU system it means it was idle 75% of the time.

Portanto, se você tiver muitos processos aguardando para serem executados (ou muitos processos bloqueados aguardando E / S), terá uma média de carga alta. Este artigo fala sobre isso em mais detalhes e possui links úteis para outros recursos.

Em um sistema descarregado, a média de carga normalmente estará no intervalo 0 <= load_average <= n , em que n é o número de núcleos em seu sistema.

larsks
fonte
1
Sim, a espera de E / S é uma maneira fácil de criar muita carga: monte um compartilhamento nfs, ligue o servidor nfs, inicie 10.000 processos que tentam tocar em algo no compartilhamento nfs: boom, carga de 10.000
Jens Timmerman
5

Eu já vi sistemas vivos atingirem milhares. Carga Média: uma medida relativa com base nos processos de espera de quanta concorrência existe para chamar a atenção dos núcleos e receber algum tempo na CPU. Se a máquina estiver inundada de trabalhos ou travando, isso pode levar um longo tempo.

O nível aceitável depende da máquina, do número de núcleos, do tipo de agendador de tarefas do kernel em uso e das tarefas que você espera que elas realizem. Eu tenho algumas máquinas que são bastante felizes na faixa de ~ 10, mas atolam se atingirem ~ 40-50. Outros ficam visivelmente atrasados ​​em 2 e seriam inutilizáveis ​​em 10.

Não é incomum que a carga seja de alta durabilidade, pois muitas coisas estão sendo feitas ao mesmo tempo e a máquina está terminando. Eu consideraria ~ 1 uma carga bastante normal para acertar durante a inicialização de um Linux para desktop, estabelecendo-se em ~ 0,1 sem fazer nada.

Caleb
fonte
3
Correção menor: Load Average não é uma medida de tempo. É o número médio de processos aguardando. Não há como distinguir entre 1) um processo que monopoliza uma CPU e outro que nunca a consegue e 2) dois processos que são negociados continuamente. Ambos teriam um monte de 1,0.
Plutor
1
Eu já vi mais de 1500 em uma caixa linux seriamente distorcida. Então morreu.
Tom O'Connor
3

No Linux, os valores médios de carga do sistema são compostos de processos em um dos três estados diferentes. Em geral, pode-se dizer que a média de carga é a quantidade de processos aguardando pelo tempo da CPU ou consumindo o tempo da CPU. Os três valores na visão geral da média de carga são a média de carga do último minuto, dos últimos 5 minutos e dos últimos 15 minutos.

Os três estados diferentes de processos contados para a média de carga são: (1) processos em execução na CPU, (2) processos aguardando tempo da CPU e (3) processos em suspensão ininterrupta. A última categoria, embora não gere carga da CPU, pode aumentar significativamente a média de carga do sistema.

Por exemplo, uma dúzia de processos que aguardam leituras de um disco muito ocupado ou indisponível gera uma média de carga de 12 como processos em suspensão ininterrupta, mas sua CPU pode ficar perfeitamente inativa nesse meio tempo.

Portanto, sim, a carga média pode facilmente subir para dois dígitos. Quão ruim é isso depende bastante do seu hardware. Se você tem 16 núcleos, ter 16 processos aguardando o tempo da CPU não é tão ruim. Em uma máquina de núcleo único, ter 3 processos aguardando o tempo da CPU pode ser muito ruim.

wzzrd
fonte
Eu acho que é ruim apenas se forem processos ligados à CPU, o que é raro. A maioria dos grandes processos é vinculada a IO ou / e RAM.
peterh - Restabelece Monica
3

Faça um processo C simples executando loops infinitos em 10000 threads. Dê uma prioridade muito baixa (+20). Sua carga será 10000, enquanto seu sistema ainda poderá ser utilizado. Ele usará apenas muito poucas RAM (no máximo alguns megabytes).

Embora seja uma configuração bastante incomum, em sistemas reais você não encontrará isso.

A carga do sistema significa apenas o número médio de processos aguardando um intervalo de tempo da CPU, nem menos nem mais. Aqui está outra resposta sobre a maneira correta de interpretar a carga do sistema .

Na experiência diária, uma carga acima de 30 ou mais significa principalmente algum problema.

peterh - Restabelecer Monica
fonte
2

Alguns segundos depois de matar um processo que estava consumindo uma antiga CPU de 450Mhz:

insira a descrição da imagem aqui

petrus
fonte
1

Quando você inicia repetidamente processos que bloqueiam imediatamente, a carga será tão alta quanto o número de processos que você gerencia iniciar. Supondo que você tenha RAM suficiente para que o sistema não esteja trocando, o sistema permanecerá responsivo, pois a carga devido aos processos de bloqueio não é realmente prejudicial.

Peter G.
fonte
1

Eu vi um servidor rodando a> 200 de carga.

Eu testaria o estresse e veria.

Kedare
fonte