cpu usage é 100% mas top não mostra nenhum processo usando

1

Primeiro, esqueci de salvar a lista de processos. Eu tive que reiniciar o servidor, então não posso dar muita informação.

Eu tenho um pequeno VPS. O uso da CPU foi de 100% no topo e nos gráficos do painel de controle, e foi alto durante todo o dia (notei esta manhã que o servidor não estava respondendo às solicitações). Depois de reiniciar o VPS, a CPU está de volta abaixo de 4% (é só eu usando o servidor web, então não há carga real).

Qual poderia ser a causa? Como posso investigar isso se acontecer de novo?

    
por m fran 04.02.2016 / 13:02

1 resposta

1

Pode ser consumido pela CPU dentro de um processo de kernel, driver ou interrupções.

Esta não é uma resposta, mas uma maneira de abordar a solução. Alguns detalhes dessa abordagem são específicos do Linux. Instale o pacote sysstat aka sar e modifique ou adicione um crontab do sar-collection (em sistemas RedHat, /etc/cron.d/sysstat ):

* * * * * root /usr/lib64/sa/sa1 -L -F -S XALL 10 6

Esteja preparado para acumular 3 GB ou mais durante o mês em /var/lib/sa . Se a sua versão não suportar -L nem -F , adicione a seguinte entrada cron:

 57 23 * * * root rm -f /var/log/sa/sa'date --date=tomorrow +\%d'

Após um dia, use sar -f /var/log/sa/saXX -C , em que XX é o dia do mês anterior de ontem como um número inteiro 0 (ou seja, 01, 02, ... 10, 11 ... 31). Quando você encontrar uma janela de tempo em que a CPU estava alta, você pode verificar o relatório do sar para essa janela de tempo para:

  • interrupções ( -I ALL )
  • uso da rede ( -n DEV )
  • E / S de disco
  • ( -b )

Digamos que você veja o salto da CPU entre 10:15 e 10:18. Execute sar nesse dia (05) da seguinte forma:

sar -f /var/log/sa/sa05 -s 10:14:00 -e 10:19:00 -I ALL -n DEV -b | less

Adicionamos um minuto de cada lado para que você possa observar antes / durante / depois, não apenas durante.

Se você ainda não vê nada, e você já olhou para outros parâmetros do sar e você ainda não vê nada, tente adicionar isto ao cron:

* * * * * { date; /bin/ps -A --sort tty,comm,pid -ww -o pgrp:8,tty:7,pid,c,pmem:5,rss:8,sz:8,size:8=TSIZE,vsz:8,nlwp,lstart,args ;} >>/var/log/procscan

Esse arquivo vai ficar muito grande, então gire-o ou desative o cronjob no dia seguinte. Mas desta saída, você pode encontrar seu culpado.

Para resolver alguns dos problemas com este cronjob, criei um script wrapper e um conjunto de arquivos de suporte e os coloquei no github. Você pode encontrá-los aqui (link para o projeto no github)

    
por 04.02.2016 / 13:28

Tags