Alta carga de CPU, mas os principais processos estão entre os 0%

11

Temos um servidor com alta carga incomum e utilitário de CPU, mas não podemos descobrir o porquê. Quando corremos no topo, todos os procs parecem ter uma CPU muito baixa.

http://cl.ly/2d1g0K3q261r0R0K3e35

Existe uma maneira melhor de procurar o que está causando isso?

Ben
fonte
Devo notar que estou no Ubuntu 10.04
Ben

Respostas:

4

Eu acho que esse bug é o seu caso. Pelo que vejo da saída, você tem memória suficiente (observe os 14 GB em cache mais ou menos), sem problemas de E / S, mas você tem processos relacionados ao xen em execução. Isso me faz pensar que é um bug.

grs
fonte
Acabou sendo um bug no Ubuntu 10.04 e o hardware que a AWS estava usando
Ben
7

Carga é uma medida da carga de trabalho que um sistema teve em uma base de 1, 5 e 15 minutos.

O equívoco mais comum é que o Load Average está puramente conectado ao uso da CPU de um sistema.
No entanto, o Load incorpora medidas adicionais, como CPU aguardando E / S, o que eu acho que é seu problema.

Com base na imagem, acho que você ficou sem memória e começou a trocar dados para o disco.

Um simples free -mdirá a quantidade de RAM e troca usada.
A coluna interessante é a coluna livre além -/+ buffers/cache.
Se estiver próximo de zero, você ficou sem memória RAM e deve agir de acordo.

Marca
fonte
1
+1 para troca. Você pode usar iotopou vmstatpara tentar ver se é E / S.
Axel Knauf
1
- / + buffers / cache: 2933 14586
Ben
4

Percebeu que a média de carga é bastante alta (68, uau). É possível que existam muitos processos que ocupem um pouco da CPU, consumindo assim todo o tempo da CPU? Talvez esses processos sejam iniciados e finalizados muito rapidamente, portanto, o topo não pode capturar a existência deles, você pode tentar ver se o topo pode ver isso ou não.

Raymond Tau
fonte
3

Experimentar

iotop

OI era para mim a maior parte do tempo.

MarcoHager
fonte
2

Tente usar:

top -o cpu

O -osinalizador forçará o topo a ordenar os processos pelo uso da CPU em ordem decrescente.

Bandido
fonte
quando corri top -o cpu, obtive "top: argumento desconhecido 'o'"
Ben
Ok, tente correr em cima e bater oenquanto estiver em execução. Ele deve solicitar uma chave primária. Digite cpue pressione enter.
Bandit
1
mesmo quando classificado por CPU, não há nada no topo da lista acima de 1% e há apenas um punhado (2-3) a qualquer momento. O resto é 0%
Ben
No CentOS 7.2, pelo menos, o comando correto de fazer isso étop -o %CPU
siliconrockstar
2

Pode ser arquivos bloqueados no nfs ou qualquer outra coisa que bloqueie um arquivo ao qual outro processo precise acessar

também pode ser perdido o serviço configurado com muitos threads ativos

John
fonte
0

Parece que o uso da CPU vem de um thread. topparece não levar isso em conta. Vi recentemente isso em um servidor mysql. existem instruções INSERT em execução, mas não consegui obter as novas linhas com SELECT porque algum segmento do mysqld estava atualizando o índice da tabela. top mostra 100% de carga do usuário em um núcleo, mas todos os processos, incluindo mysqld, eram uma CPU de 0,0%. horas depois, o mesmo SELECT forneceu o conjunto de resultados esperado.

Veja também

Obtendo uma estatística de CPU por thread

processo 'htop' e uso de cpu de threads?

StefanKaerst
fonte