Come capire quale processo sta eseguendo il hogging della mia CPU quando non si sommano al 100%?


9

L'applet di Monitor di sistema di Ubuntu mostra continuamente l'utilizzo della CPU al 100%. Se faccio clic su di esso, anche la scheda Risorse lo mostra continuamente al 100%. Se vado ai processi, tuttavia, per scoprire quale processo è il colpevole, non c'è nulla al di sopra del 10%. Se corro al top non c'è nulla al di sopra del 10%. I singoli processi non aggiungono fino al 100%. Cerco di uccidere molti processi, ma l'utilizzo complessivo continua ad essere del 100%. Come posso sapere cosa sta controllando la CPU?

testo alternativo

Questa è una situazione insolita su un computer che uso quotidianamente, che non è mai vicino al 100% della CPU a meno che non stia facendo qualcosa che lo richiede (come caricare 32 schede di Firefox), dopo di che torna a un normale livello di inattività. Non è una nuova installazione o altro. Non vi è alcun motivo per cui il processore dovrebbe essere al massimo. Non sono sicuro quando è iniziato o se ho cambiato qualcosa che lo ha causato.

Normalmente userei top o System Monitor e troverei il processo che era andato fuori controllo, ma questa volta non trovo nulla con quegli strumenti. Persiste dopo il riavvio e tutto il resto.

E il processore è ovviamente caldo, quindi non è una lettura errata.

Aggiornamento: ho provato ad uccidere ogni processo, uno alla volta, fino a quando il problema non è scomparso e l'uccisione di vino-server alla fine l'ha risolto, anche se quel processo non è mai andato oltre il 5%. Avevo abilitato Remote Desktop alcuni giorni fa (e ovviamente ora l'ho disabilitato).

Ma la domanda rimane: in che modo un singolo processo è riuscito a utilizzare la CPU al 100% mentre top ha mostrato quel processo solo al 5%? Come posso identificare i colpevoli come questo in futuro?

Sembra che non sia l'unico ad avere questo problema:

Ancora un problema sia in stile sbarazzino che karmico. È interessante notare che sia Monitor di sistema che htop non mostrano che la somma dei singoli processi è vicina al 100% della CPU.


2
Anche il tuo sistema è lento? Potrebbe essere una lettura falsa.
Bobby,

Risposte:


9

Quando dici "niente al di sopra del 10%" intendi "niente al di sopra del 10%"? Ci vogliono solo 11 cose al ~ 9% per raggiungere il 100% in totale.

Inoltre, parte del tempo di CPU utilizzato misurato potrebbe essere il tempo di attesa I / O - tempo in cui un processo potrebbe fare qualcosa ma non è perché è in attesa di una risposta di un dispositivo I / O (ovvero ha effettuato una richiesta del disco e il disco non ha ancora trovato il giusto bit di dati e lo ha restituito). In cima, questo può essere visto sulle linee della CPU come misura% wa. Lo stato di attesa I / O è un po 'strano - la CPU non è effettivamente impegnata a fare nulla (quindi se un altro processo volesse fare un calcolo sarebbe in grado di farlo) ma conta ai fini delle cifre di carico del sistema mentre i rappresentanti di carico del sistema più non solo la CPU attiva.

Sarebbe utile aggiungere l'output top -n 1alla tua domanda.

Inoltre, se il tuo kernel è abbastanza recente da avere la funzione di contabilità IO (se stai usando una versione recente di Ubuntu dovrebbe essere) e è acceso, puoi vedere quali processi eseguono attivamente operazioni di I / O eseguendo iotop -n 1 -ob(iotop potrebbe non essere installato per impostazione predefinita, se non lo hai, prova a installare apt-get install iotopo trovandolo nel gestore dei pacchetti della GUI.


1
+1 per aver chiesto di aggiungere top -n 1alla domanda
Tarnay Kálmán,

2

Ho avuto un problema simile. Il processore si stava accorciando completamente e nessuno dei processi in System Monitor mostrava nulla. Ho trovato una risposta usando il comando "top" in una finestra del terminale. Dimostrò che apt stava cacciando la mia cpu senza una buona ragione. Quindi perché System Manager non l'ha mostrato? Si scopre che c'è un'opzione sotto Visualizza per tutti i processi; il mio è stato controllato come I miei processi, quindi non ho mai visto il colpevole. Spero che sia di aiuto.


0

Ho lo stesso problema, ma ho scoperto che Xorg stava usando il 50% della CPU mentre questo ha dimostrato che [questo bug] poteva essere corretto con il comando sudo rmmod ums_realtek. Questa volta Xorg ha utilizzato solo circa il 5-10% di CPU nel monitor di sistema, ma nella scheda Risorse mostrava ancora il 100%.

Mentre stavo monitorando il monitor di sistema, ho visto un battito di ciglia di root utilizzando CPU al 100%! Non ho avuto il tempo di vedere cosa fosse, ma sono sicuro che questo ha qualcosa a che fare con esso.


-1

La prima domanda è se il tuo sistema sembra lento o non risponde. È la tua CPU, dopo tutto, l'hai pagata e hai il diritto di eseguirla a pieno ritmo per i tuoi scopi. La seconda domanda è se stai solo cercando di fare troppo con il tuo sistema e, se possibile, dovresti prendere in considerazione l'aggiornamento. Il mio primo box Linux aveva una 486 lenta, ed era davvero facile completarlo. Ad esempio, se stai utilizzando un XPC OLPC, le tue risorse sono davvero limitate.

Seriamente, è improbabile che tu stia eseguendo numerosi maiali di risorse eccessive contemporaneamente. Se nessun processo sta superando il 10%, allora il tuo sistema viene sgranocchiato a morte dalle anatre e non sarai in grado di ridurre il carico senza ridurre quello che stai facendo.

Detto questo, controlla i tuoi servizi di sistema e disattiva quelli che non desideri. Prendi in considerazione la disinstallazione di quelli che sei davvero sicuro di non voler ( sudo apt-get remove foo). Soprattutto se si sta sovraccaricando il sistema, qualsiasi riduzione del carico può solo aiutare. Prova a uscire dai programmi che non stai utilizzando.

Se esiste un processo che utilizza tutta la CPU disponibile, prova a trovarlo eseguendo top e notando quale% delle risorse sta utilizzando i processi principali. Quando ne uccidi alcuni, vedi se uno aumenta più rapidamente degli altri. Ovviamente, uccidere un tale processo non ti comprerà molto, dal momento che non supera il 10% del carico.


Se stessi usando la CPU, lo saprei. Non funziona al 100% ininterrottamente durante il normale funzionamento, e certamente non dovrebbe esserlo quando avrò chiuso tutto ciò che posso pensare che potrebbe usarlo.
endolith

-1
  1. apt-get install cpufrequtils
  2. Aperto /etc/rc.conf
  3. aggiungi quanto segue ai MODULI: MODULES=(# your-modules-non-touch #acpi-cpufreq cpufreq_ondemand cpufreq_performance)
  4. Reboot

Dopo il riavvio, è necessario eseguire cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governorsper vedere quali moduli sono caricati.

Durante il lavoro, puoi cambiare i governatori in base alle tue esigenze. Per esempio:

  • cpufreq-set -r -g ondemand

Puoi usare uno dei seguenti governatori:

  • prestazioni : si corre il CPU l'orologio max (modulo: cpufreq_performance)
  • ondemand : commuta dinamicamente tra la CPU (s) velocità di clock disponibili in base al carico SYS (modulo: cpufreq_ondemand)
  • conservatore : Simile a ondemand, ma CPU (s) velocità di clock commuta gradualmente attraverso tutte le frequenze disponibili (in base al carico SYS) (modulo: cpufreq_conservative)
  • powersave : CPU (s) funziona a velocità minima (modulo: cpufreq_powersave)
  • userspace : consente all'utente di impostare manualmente la velocità di clock della CPU. (modulo: cpufreq_userspace)

Se stai usando GNOME2, c'è un'applet, che è incredibile.

  1. Fai clic con il tasto destro sul pannello
  2. Aggiungi applet
  3. inizia a digitare:, CPUdovresti riuscire a vederlo :)
  4. Clic Add

Usando questa applet, puoi alternare tra i governatori disponibili (li hai aggiunti in /etc/rc.confprecedenza).

Ad esempio, sto usando ondemandtutto il tempo, perché non ho bisogno di prestazioni complete per eseguire eclipse ed emulatore Android sul mio ArchLinux: P

Summa Summarum - google per cpufrequtils e impara come usarlo :) Che pckg mi ha fatto risparmiare tempo e denaro; D

Saluti!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.