Como diagnosticar picos de CPU do Ubuntu / espera de E / S?


19

Estou usando o Ubuntu e, a cada dois minutos, ele não responde por meio segundo a um segundo inteiro, o que normalmente não é um problema, mas torna a tentativa de codificar extremamente frustrante quando você tenta acessar o backspace ou navegar pelo código e nada está acontecendo. O problema é que os congelamentos são tão breves que o top não tem tempo para me mostrar o que está disparando na CPU (supondo que algo ocorra, mas não sei o que mais poderia causar isso).

Alguém sabe como solucionar esse problema de desempenho?

Edit: Eu tentei fazer login com o Gnome Classic (sem efeitos) em vez do Unity, mas ele ainda congela de vez em quando.

Edit: O gráfico da CPU não parece estar mostrando picos reais, então parece que você estava certo e meu diagnóstico original de picos de CPU por ser o problema estava incorreto, agora eu suspeito que o IO aguarde. Não me lembro disso acontecendo nas poucas semanas em que o Windows 7 Starter estava sendo executado, o que me leva a acreditar que não é (apenas?) O hardware. Há algo que eu possa ajustar para melhorar isso? Estou usando um Acer Aspire One D257, com o Ubuntu 11.10.

Edit: A saída de dmesgestá em http://paste.ubuntu.com/1060054/ e o kern.log está em http://paste.ubuntu.com/1060055/


Esta questão é interessante tanto no caso geral quanto no seu caso particular.
Rafał Cieślak 28/03

11
Ao ativar um gráfico de CPU, você pode ter certeza se é um pico de CPU que está causando a desaceleração. A E / S pode ser outro culpado ou atraso na rede em alguns casos. Isso acontece independentemente do programa que você está usando ativamente no momento?
David Oneill 28/03

Excelente ponto David, eu farei isso. Eu só uso o Vim e o Firefox nesta máquina, eles estão sempre abertos e isso acontece independentemente do que esteja em primeiro plano. No começo, pensei que era a geração automática de ctag do Vim, mas depois de comentar essa seção e apagar todo o meu arquivo vimrc, o problema ainda ocorre. Vou tentar o gráfico para ver se é realmente um pico de CPU ou espera de E / S.
21412 Jeff Welling

Como não responde? O ponteiro do mouse para de atualizar?
31412 AdamKG

Desculpe pela resposta atrasada, acho que congela o ponteiro também, mas parou de acontecer ou não tenho percebido isso ultimamente. Curiosamente, também tive minha unidade de backup USB criptografada conectada e montada a maior parte do tempo ultimamente, o que me fez pensar se isso poderia estar relacionado. Estou tentando fazer mais alguns testes com e sem a unidade conectada para determinar se A) está relacionado e B) o ponteiro pára de responder durante esses congelamentos.
30812 Jeff Welling

Respostas:


12

Existem duas ferramentas adicionais que você pode conferir:

Se você não conseguir o que deseja dessas duas ferramentas, poderá precisar usar ferramentas de desenvolvedor como OProfile ou Sysprof .

Todas as ferramentas listadas estão disponíveis nos repositórios do ubuntu

Com relação à sua observação com usb, pelo que ouvi dizer, alguns controladores usb se comportam um pouco esquisitos com certos hardwares que podem causar tempestades de interrupção, isso pode causar o que você está descrevendo. Tente procurar por tempestade de interrupção usb e você receberá alguns hits.


Hm, certamente analisarei tempestades de interrupção, mas o problema continuou a ocorrer mesmo depois que parei de usar dispositivos USB neste sistema com tanta regularidade. Na maioria das vezes, estarei programando no caminho para o trabalho (trânsito) e é quando notarei.
precisa

5

Eu usei o htop por anos e finalmente descobri como obter a utilização da CPU por números e porcentagens. Estou surpreso por ter perdido isso.

imagem de htop iowait

Pressione F2

Seta para "Medidores disponíveis"

Realçar média da CPU

F5 ou F6 para adicionar à coluna

Seta para o item "CPU [Bar]"

Pressione F4 até obter "CPU [Text]"

Você também pode obter IORates

F2-> Colunas-> Disponível

Adicionar IO_RATE, IO_READ_RATE, IO_WRITE_RATE


2

A melhor maneira de ver isso é usar um aplicativo de linha de comando como topou htop Instalar htop .

topo
topo

htop
htop

Você precisaria observá-lo por um tempo até ver o que causa o pico (se é realmente um pico no uso da CPU e não na espera de E / S, que pode não ser detectada em todos os casos).


11
Estou familiarizado com o top, mas não com o htop, o htop indica a espera de IO / como interpreto essa parte da saída? Verifiquei o FAQ no site htop, mas ele não mencionou a espera de IO.
22412 Jeff Welling

@ JefWelling: não afaik. Ambos o mostrarão como uso da CPU, no entanto.
RolandiXor

Há um monitor adicional para atividades de E / S. Chama-se iotop (veja a resposta de danjo133s).
FuzzyQ 02/07/12

2

Uma ferramenta nova e muito útil é o cpustat . Possui uma interface gráfica que permite monitorar vários pids ao longo do tempo.

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.