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

9

O applet Monitor do sistema do Ubuntu mostra 100% de uso da CPU continuamente. Se eu clicar nele, a guia Recursos mostrará 100% continuamente também. Se eu for aos processos, entretanto, para descobrir qual processo é o culpado, não há nada acima de 10%. Se eu corro, não há nada acima de 10%. Os processos individuais não somam 100%. Eu tento matar muitos processos, mas o uso geral continua a ser de 100%. Como posso descobrir o que está sobrecarregando a CPU?

Estaéumasituaçãoincomumemumcomputadorqueusodiariamente,quenuncaestápertode100%daCPU,amenosqueeuestejafazendoalgoqueexija(comocarregar32guiasdoFirefox),apósoqualeleretornaaumnívelnormal.Nãoéumanovainstalaçãonemnada.Nãohárazãoparaoprocessadorestarnomáximo.Nãotenhocertezaquandocomeçouousemudeialgoquefezcomqueissoacontecesse.

Normalmente,euusariaotopouoSystemMonitoreencontrariaoprocessoqueestavaforadecontrole,masdestaveznãoconsigoencontrarnadacomessasferramentas.Elepersisteapósasreinicializaçõesetudomais.

Eoprocessadorestáobviamentequente,entãonãoéumaleituraerrônea.

Atualização:Eutenteimatartodoprocesso,umdecadavez,atéqueoproblemadesapareceu,ematarvino-serverfinalmenteconsertou,mesmoqueesseprocessonuncafoiacimade5%.EutinhahabilitadooRemoteDesktopháalgunsdias(eagoraobviamenteodesativei).

Masaquestãopermanece:Comoumúnicoprocessoconseguiuusar100%daCPU,enquantootopapenasmostrouesseprocessoem5%?Comoidentificarculpadoscomoestenofuturo?

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

Still a problem in both jaunty & karmic. Interestingly, both System Monitor & htop do not show the sum of individual processes being anywhere near 100% cpu.

    
por endolith 04.11.2009 / 13:44

5 respostas

9

Quando você diz "nada acima de 10%", você quer dizer "nada acima de 10%"? São necessárias apenas 11 coisas em ~ 9% para atingir 100% no total.

Além disso, parte do tempo de CPU usado medido pode ser tempo de espera de E / S - tempo em que um processo poderia estar fazendo algo, mas não porque espera que um dispositivo de E / S responda (ou seja, uma solicitação de disco e o disco ainda não encontrou o bit de dados correto eo retornou). Na parte superior, isso pode ser visto na (s) linha (s) da CPU como a medida% wa. O estado de espera de E / S é um pouco estranho - a CPU não está realmente ocupada fazendo nada (portanto, se outro processo quiser fazer algum cálculo, ele pode fazer isso), mas conta para os valores de carga do sistema que apenas a atividade da CPU.

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

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

    
por 04.11.2009 / 14:23
2

Eu tive um problema semelhante. O processador continuava cheio e nenhum dos processos no System Monitor mostrava nada. Eu encontrei uma resposta usando o comando "top" em uma janela de terminal. Ele mostrou que apt estava monopolizando meu cpu por nenhuma boa razão. Então, por que o System Manager não mostrou isso? Acontece que há uma opção em Exibir para todos os processos; o meu foi verificado como My Processes, então eu nunca vi o culpado. Espero que isso ajude.

    
por 15.04.2011 / 06:36
0

Eu tenho o mesmo problema, mas descobri que o Xorg estava usando 50% da CPU, enquanto isso mostrava que [esse bug] poderia ser corrigido com o comando sudo rmmod ums_realtek . Desta vez, o Xorg usou apenas cerca de 5-10% da CPU no monitor do sistema, mas na aba recursos ele ainda mostrava 100%.

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

    
por 17.11.2012 / 13:48
-1

A primeira pergunta é se o seu sistema parece lento ou não responde. É a sua CPU, afinal, você pagou por isso, e você tem o direito de executá-la integralmente para seus propósitos. A segunda questão é se você está apenas tentando fazer muito com o seu sistema, e deve considerar a atualização, se possível. Minha primeira caixa Linux teve um 486 lento, e foi realmente fácil de superar. Se você está rodando em um OLPC XO, por exemplo, seus recursos são realmente limitados.

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

Dito isso, confira os serviços do sistema e desative qualquer um deles que você não queira. Considere desinstalar os que você realmente não deseja ( sudo apt-get remove foo ). Particularmente, se você está sobrecarregando o sistema, qualquer redução na carga só pode ajudar. Tente sair de programas que você não está usando.

Se houver um processo que esteja usando toda a CPU disponível, tente encontrá-lo executando top e observando que% dos recursos os principais processos estão usando. Quando você mata alguns, veja se um se eleva mais rapidamente que os outros. É claro que matar esse processo não vai te comprar muito, já que não é mais que 10% da carga.

    
por 04.11.2009 / 15:58
-1
  1. apt-get install cpufrequtils
  2. abrir /etc/rc.conf
  3. adicione o seguinte aos MÓDULOS: MODULES=( # your-modules-don't-touch # acpi-cpufreq cpufreq_ondemand cpufreq_performance)
  4. Reinicializar

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

Durante o trabalho, você pode alterar os governadores de acordo com suas necessidades. Por exemplo:

  • cpufreq-set -r -g ondemand

Você pode usar um dos seguintes governadores:

  • performance : ele roda a CPU no clock máximo (módulo: cpufreq_performance )
  • ondemand : alterna dinamicamente entre as velocidades de clock disponíveis da (s) CPU (s) com base no carregamento do sistema (módulo: cpufreq_ondemand )
  • conservative : Similar a ondemand , mas a velocidade do clock do CPU muda gradualmente através de todas as freqüências disponíveis (com base no carregamento do sys) (module: cpufreq_conservative )
  • powersave : CPU (s) é executado na velocidade mínima (módulo: cpufreq_powersave )
  • userspace : permite ao usuário definir 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 no seu painel
  2. Adicionar applet
  3. comece a digitar: CPU , você poderá ver:)
  4. Clique em Add

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

Por exemplo, estou usando ondemand o tempo todo, porque não preciso de desempenho completo 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!

    
por 28.03.2012 / 15:20