Pode ser um encadeamento do kernel, esses estão ocultos por padrão na maioria dos monitores de desempenho. No htop você pode ocultar / mostrar tópicos do kernel com "K" (shift + k).
Problema realmente estranho aqui. Eu fico intermitentemente recebendo picos de CPU realmente desagradáveis, onde a CPU chega a 80-90% ocupada em todos os núcleos por cerca de 5 minutos. Quando eu olho para o conky, no htop ou no monitor do sistema, e classifico por% CPU, não consigo ver nenhum processo responsável por esse uso de CPU.
As únicas coisas que mudei desde o início são:
Agora, estou disposto a rebaixar um / ambos para encontrar o problema, mas prefiro fazer isso da forma mais científica possível e descobrir o que está causando a explosão da CPU antes de fazer o downgrade.
Edit: Meu problema preciso parece uma regressão nvidia em seu driver mais recente. Outras pessoas estão recebendo picos similares .
Pode ser um encadeamento do kernel, esses estão ocultos por padrão na maioria dos monitores de desempenho. No htop você pode ocultar / mostrar tópicos do kernel com "K" (shift + k).
"a CPU chega a 80-90% ocupada em todos os núcleos por cerca de 5 minutos"
Esse uso muito possivelmente permitiria identificar o culpado usando o pidstat disponível no pacote sysstat.
Basta executar pidstat -u | sort -nr -k 7,7 | head -10
e o processo que usou mais CPU deve ser a linha superior.
Eu tentaria encontrar a causa do problema com algum script de shell:
#!/bin/sh
MAXLOAD=100
CURRLOAD='uptime | sed 's@.*load average: \([^,]*\).*@@' | sed 's@0\?.0\?@@''
if [ $CURRLOAD -gt $MAXLOAD ]; then
ps -eo tid,pcpu,comm | sort -n -k 2 | tail -n 5 | \
mail -s "High load" -e [email protected]
fi
O script tem duas variáveis MAXLOAD
e CURRLOAD
. O primeiro deve ser uma carga alta multiplicada por 100. Portanto, se você encontrar um pico e ver o carregamento do sistema subir para 2 ou 3, deverá definir MAXLOAD
para algum valor em torno de 200. $CURRLOAD
obtém a saída de uptime
, procura a carga e remove o ponto, bem como os zeros à esquerda.
Se a carga em algum momento for alta, ela imprimirá os cinco processos com maior utilização de CPU e os enviará para [email protected]
.
Este script deve ajudá-lo a encontrar o motivo de um pico e, se você souber, poderá resolver o problema.
Para obter a saída do topo que você pode salvar: top -b -n1
Coloque isso em um cronjob e você poderá ver a minuciosa lista de processos mesmo depois que o problema desaparecer. Exemplo de entrada de crontab:
* * * * * top -b -n1 > /tmp/top_output_$(date +%Y-%m-%d_%H:%M:%S)
Isto irá salvá-lo em um arquivo por minuto em / tmp
Existem alguns bugs corrigidos recentemente que podem corrigir esse problema. Se você está rodando o Ubuntu, eu sugiro ficar com o kernel do Ubuntu para pegar os patches através de atualizações regulares. Eu recomendaria a instalação do Lucid para suporte e estabilidade. Você pode ir com o Maverick se houver recursos que você saiba que não estão no Lucid que você precisa.
Eu acho que isso é um problema no kernel. Eu voltaria para uma versão oficialmente testada.