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?
Respostas:
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.
fonte
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 -m
dirá 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.
fonte
iotop
ouvmstat
para tentar ver se é E / S.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.
fonte
Experimentar
OI era para mim a maior parte do tempo.
fonte
Tente usar:
O
-o
sinalizador forçará o topo a ordenar os processos pelo uso da CPU em ordem decrescente.fonte
top -o cpu
, obtive "top: argumento desconhecido 'o'"o
enquanto estiver em execução. Ele deve solicitar uma chave primária. Digitecpu
e pressione enter.top -o %CPU
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
fonte
Parece que o uso da CPU vem de um thread.
top
parece 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?
fonte