A carga do sistema está vinculada diretamente ao uso da CPU?

3

É uma máquina dual-core e a carga está em torno de 24, mas o uso da CPU está saltando de 60 a 80% e nunca atingindo 100%, então como pode haver tantos processos esperando? OI / O é praticamente nulo, pois tudo está sendo lido a partir de bancos de dados de memória e a rede está usando apenas cerca de 7mbit de uma conexão gigabit. A adição de núcleos adicionais reduziria a carga ou a CPU não é o problema, uma vez que não está chegando ao máximo?

    
por Ryan Detzel 23.11.2009 / 23:16

3 respostas

3

Não.

Tente executar nada além do Seti @ Home (ou qualquer que seja sua encarnação atual), e você verá a carga do seu servidor indexada em 1.0, embora sua CPU esteja vinculada a 100% de uso.

Na página do manual UPTIME (1):

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 uninterruptable 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 average 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.

Por exemplo, temos um servidor que não faz nada além de executar o Spamassassin com dois processadores Xeon (para um total de 4 CPUs virtuais). Às vezes, ele alcança 100% da utilização da CPU, mas mais frequentemente usa muito disco IO lendo e escrevendo para o banco de dados Bayes. Como tal, a carga do sistema é geralmente muito alta, por volta de 20-40, porque há muitos processos que estão aguardando um pouco pelo disco.

    
por 24.11.2009 / 00:19
1

A média de carga é o número de processos em estado executável: pressione "i" na parte superior para limitá-lo a estes. Isso inclui processos que estão (R) em execução e (D) aguardando pelo disco. Não está realmente fazendo nenhum IO? Não foi para troca?

    
por 26.01.2010 / 17:28
0

Um número não trivial desses processos é pesado para usuários de memória? Porque você pode estar vendo os efeitos de falhas pesadas no cache.

A memória é lenta, então a CPU tem um (ou mais frequentemente vários níveis) de cache. Agora, se o processo A está na CPU e carregou a maior parte do cache com sua própria memória, então o processo B aparece e quer preencher o cache com sua memória, há uma série de esperas enquanto isso acontece causando redução de CPU. Então, mais cedo ou mais tarde, o Processo A aparece e você passa por tudo novamente ...

    
por 24.11.2009 / 05:49

Tags