Como saber qual processo está sobrecarregando minha CPU quando eles não somam 100%?

9

O miniaplicativo System Monitor do Ubuntu mostra 100% de uso da CPU continuamente. Se eu clicar nele, a guia Recursos também mostrará 100% continuamente. Se eu for a processos, no entanto, para descobrir qual é o culpado, não há nada acima de 10%. Se eu correr no topo, não há nada acima de 10%. Os processos individuais não somam 100%. Eu tento matar muitos processos, mas o uso geral continua sendo 100%. Como posso descobrir o que está sobrecarregando a CPU?

texto alternativo

Essa é uma situação incomum em um computador que uso diariamente, que nunca chega perto de 100% da CPU, a menos que esteja fazendo algo que exija isso (como carregar 32 guias do Firefox), após o que volta ao nível normal de inatividade. Não é uma instalação nova nem nada. Não há razão para o processador estar no limite máximo. Não sei ao certo quando tudo começou ou se mudei algo que causou isso.

Normalmente, eu usaria o monitor superior ou do sistema e encontraria o processo que estava fora de controle, mas desta vez não consigo encontrar nada com essas ferramentas. Ele persiste após reinicializações e tudo.

E o processador está obviamente quente, por isso não é uma leitura incorreta.

Atualização: tentei matar todos os processos, um de cada vez, até que o problema desaparecesse, e matar o vino-server finalmente o corrigiu, mesmo que esse processo nunca tenha ultrapassado 5%. Eu havia habilitado a Área de Trabalho Remota há alguns dias (e obviamente a desabilitei agora).

Mas a questão permanece: como um único processo conseguiu usar 100% da CPU, enquanto o top apenas mostrou esse processo em 5%? Como identifico culpados como esse no futuro?

Parece que não sou o único que teve esse problema:

Ainda é um problema tanto alegre quanto cármico. Curiosamente, o System Monitor e o htop não mostram que a soma dos processos individuais esteja perto de 100% da CPU.

endólito
fonte
2
O seu sistema também está lento? Pode ser uma leitura falsa.
Bobby

Respostas:

9

Quando você diz "nada acima de 10%", você quer dizer "nada acima de 10%"? Leva apenas 11 coisas em ~ 9% para atingir 100% no total.

Além disso, parte do tempo medido da CPU usado pode ser o tempo de espera de E / S - tempo em que um processo pode estar fazendo algo, mas não é porque está aguardando a resposta de um dispositivo de E / S (ou seja, ele fez uma solicitação de disco e o disco ainda não encontrou o bit certo de dados e o retornou). No topo, isso pode ser visto nas linhas da CPU como a medida de% wa. O estado de espera de E / S é um pouco estranho - a CPU não está realmente ocupada fazendo qualquer coisa (por isso, se outro processo quisesse fazer alguma computação, seria capaz), mas conta para os valores de carga do sistema, já que a carga do sistema representa mais do que apenas a atividade da CPU.

Seria útil adicionar a saída de top -n 1sua pergunta.

Além disso, se o seu kernel é recente o suficiente para ter o recurso de contabilidade de E / S (se você estiver usando uma versão recente do Ubuntu) e estiver ativado, você poderá ver quais processos estão executando ativamente operações de E / S executando iotop -n 1 -ob(iotop pode não ser instalado por padrão, se você não tiver, tente instalar com apt-get install iotopou localizando-o no gerenciador de pacotes da GUI.

David Spillett
fonte
11
+1 para pedir para adicionar top -n 1à pergunta
Tarnay Kálmán
2

Eu tive um problema parecido. O processador estava funcionando completamente e nenhum dos processos no System Monitor mostrou nada. Encontrei uma resposta usando o comando "top" em uma janela do terminal. Ele mostrou que o apt estava monopolizando minha CPU sem um bom motivo. Então, por que o System Manager não mostrou isso? Acontece que há uma opção em Exibir todos os processos; o meu foi verificado como Meus processos, então nunca vi o culpado. Espero que isto ajude.

Ike Hall
fonte
0

Eu tenho o mesmo problema, mas descobri que Xorg estava usando 50% da CPU quando este mostrou que ele [este bug] poderia ser corrigido com o comando sudo rmmod ums_realtek. Dessa vez, o Xorg usou apenas cerca de 5 a 10% da CPU no monitor do sistema, mas na guia recursos ainda mostrou 100%.

Enquanto eu monitorava o monitor do sistema, vi um piscar de uma raiz usando 100% da CPU! Não tive tempo de ver o que era, mas tenho certeza de que isso tem algo a ver com isso.

NatureShade
fonte
-1

A primeira pergunta é se o seu sistema parece lento ou não responde. Afinal, é sua CPU que você pagou por ela e tem o direito de executá-la a todo vapor para seus objetivos. A segunda pergunta é se você está apenas tentando fazer muito com o seu sistema e deve considerar a atualização, se possível. Minha primeira caixa Linux tinha 486 lentos e era muito fácil finalizá-la. Se você estiver executando em um OLPC XO, por exemplo, seus recursos são realmente limitados.

Sério, é improvável que você esteja executando vários porcos excessivos em recursos simultaneamente. Se nenhum processo estiver assumindo mais de 10%, seu sistema estará sendo mordiscado até a morte por patos, e você não poderá reduzir a carga sem reduzir o que está fazendo.

Dito isto, confira os serviços do sistema e desative os que você não deseja. Considere desinstalar os que você tem certeza de que não deseja ( sudo apt-get remove foo). Especialmente se você estiver sobrecarregando o sistema, qualquer redução na carga só pode ajudar. Tente sair dos programas que você não está usando.

Se houver um processo que use toda a CPU disponível, tente encontrá-lo executando o top e observando qual% de recursos os principais processos estão usando. Quando você mata alguns, veja se um sobe mais rapidamente que os outros. Obviamente, matar um processo desse tipo não comprará muito, já que não é mais do que 10% da carga.

David Thornley
fonte
Se eu estivesse usando a CPU, eu saberia. Ele não funciona 100% continuamente durante a operação normal, e certamente não deveria quando fechei tudo o que consigo pensar em usá-lo.
Endolith 04/11/2009
-1
  1. apt-get install cpufrequtils
  2. aberto /etc/rc.conf
  3. adicione o seguinte aos MODULES: MODULES=(# your-modules-don't-touch #acpi-cpufreq cpufreq_ondemand cpufreq_performance)
  4. Reiniciar

Após a reinicialização, você deve executar cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governorspara ver quais módulos estão carregados.

Durante o trabalho, você pode mudar os governadores para o que for mais adequado às suas necessidades. Por exemplo:

  • cpufreq-set -r -g ondemand

Você pode usar um dos seguintes governadores:

  • desempenho : corre-se o CPU no relógio max (módulo: cpufreq_performance)
  • ondemand : muda dinamicamente entre a CPU (s) velocidades de clock disponíveis com base na carga sys (módulo: cpufreq_ondemand)
  • conservadora : Semelhante a ondemand, mas CPU (s) de velocidade de relógio muda gradualmente através de todas as frequências disponíveis (com base na carga sys) (módulo: cpufreq_conservative)
  • Economia de energia : CPU (s) é executado em velocidade mínima (módulo: cpufreq_powersave)
  • espaço de usuário : permite que o usuário defina manualmente a velocidade do clock da CPU. (módulo: cpufreq_userspace)

Se você estiver usando o GNOME2, há um applet, o que é incrível.

  1. Clique com o botão direito do mouse no seu painel
  2. Adicionar applet
  3. comece a digitar:, CPUvocê poderá vê-lo :)
  4. Clique Add

Ao usar este applet, você pode alternar entre os governadores disponíveis (você os adicionou /etc/rc.confanteriormente).

Por exemplo, estou usando ondemando tempo todo, porque não preciso de desempenho total para executar o eclipse e o emulador do Android no meu ArchLinux: P

Summa Summarum - pesquise no google por cpufrequtils e aprenda como usá-lo :) Esse pckg economizou meu tempo e dinheiro; D

Felicidades!

Nikola
fonte