Como ponto de esclarecimento, a carga não está diretamente ligada à CPU. Este é um dos equívocos mais comuns sobre carga. O fato de você mencionar o disco parece reconhecer que você está ciente disso, mas eu só queria mencioná-lo quando vejo comentários que indicam que alguns acreditam no contrário.
O carregamento é definido como o número de processos aguardando recursos do sistema. Isso geralmente é CPU, disco ou rede, mas pode ser qualquer coisa de hardware.
Um "processo" também não é necessariamente um processo completo. Um encadeamento é definido como um "processo leve", e cada encadeamento aguardando aumenta a contagem de carga.
Para descobrir quais processos são um problema:
Executar top -H
(o -H
permite mostrar segmentos)
Os atalhos de teclado variam por versão.
Com o novo topo (3.3 e depois):
Pressione f para exibir as opções de campo.
Use as teclas de seta para ir para S = Process Status
e pressione s .
Pressione q para voltar à página principal.
Pressione Shift + R para inverter a classificação.
Com o topo mais antigo (antes de 3.3):
Pressione Shift + o para abrir as opções de classificação.
Então w para classificar pelo status do processo.
Então Digite para voltar para a página principal.
Então Shift + R para reverter a classificação.
Em seguida, na coluna S
, procure por processos que tenham D
ou R
(agora eles devem estar no topo). Estes serão processos que contribuem para o carregamento do sistema.
Se o processo mostrar um D
, isso significa "ininterrupto sleep". Geralmente isso é causado quando o processo está esperando na E / S (disco, rede, etc).
Se o processo mostrar um R
, isso significa que está apenas fazendo computação normal.
Para saber mais sobre o que esses processos estão fazendo:
Com o novo topo (3.3 e depois):
Pressione f para exibir as opções de campo.
Use as teclas de seta para ir para WCHAN = Sleeping in Function
e pressione d para ativá-lo.
Então q para voltar para a página principal.
Com o topo mais antigo (antes de 3.3):
Pressione f e y para ativar o campo WCHAN
.
Se o seu sistema tiver as opções de kernel necessárias e o arquivo wchan estiver presente em seu sistema (eu esqueci onde está e como é chamado) , o campo WCHAN
deve mostrar o kernel função que o processo está executando atualmente (se o campo mostrar apenas -
ou ?
em tudo, você não tem suporte).
Um pouco de google aqui e você deve estar no seu caminho.
Se você não tem suporte, você pode sempre tentar um strace
nos processos para descobrir o que eles estão fazendo, mas essa é a maneira difícil.