GNU/Linux >> Linux Esercitazione >  >> Linux

Rileva processo che mangia CPU senza:Top, Htop, Ps?

Ho riscontrato un problema in cui potevo solo indovinare quale processo stava mangiando la CPU.

Il mio utilizzo della CPU era di circa l'80% per tutti i core su psensor.

Ho provato htop , top e ps -A -o pcpu,pid,cmd --sort +pcpu (l'ultimo che ho anche provato con sudo inutilmente).
Tutti questi mostravano il pid colpevole (di cui ero a conoscenza) usando solo il 7% circa...

Quando SIGKILL su quel pid, tutto torna alla normalità.

Per testare, ho eseguito un ciclo infinito sul terminale while true;do echo -n;done ma che potevo vedere chiaramente in alto; quindi la mia ipotesi che cosa stesse causando problemi non era simile a quello...

Quindi mi chiedo se ci sono altri modi in cui avrei potuto trovare il colpevole senza dover indovinare?

Ripensandoci, mi piacerebbe sapere quali calcoli psensor e "applet indicatore di carico del sistema" utilizza che è stato in grado di mostrare quel valore ma gli altri non sono stati in grado di farlo?

PS.:collegamento sul tempo di attesa,
collegamento sul carico medio

Risposta accettata:

Non ho abbastanza familiarità con i dettagli per fornire suggerimenti precisi, ma suppongo che ci siano due fonti di differenze tra il carico reale causato e l'utilizzo della CPU mostrato:

  1. Il processo può essere costituito da diversi thread e da top potrebbe non riassumerli. Puoi vedere il numero di thread da questo:

    ps -eo pid,nlwp,%cpu,user,args
    

    In top puoi cambiare la gestione dei thread con H . L'utilizzo della CPU di ogni thread è generalmente piuttosto basso.

  2. Il processo può causare molti I/O. Il tempo di attesa I/O fa parte del carico complessivo della CPU ma potrebbe non far parte del valore di utilizzo della CPU di un processo. Quindi controlla wait valore in top . Non ti dice quali processi lo causano in quale misura, ma se il valore è basso non può spiegare l'effetto.


Linux
  1. Rileva il blocco del socket senza inviare o ricevere?

  2. Rileva la morte del processo padre

  3. Il processo vmlinuz viene eseguito al 100% della CPU

  4. Quale processo sta mangiando ptys nel mio server Linux?

  5. htop, mostra cpu fianco a fianco

Suggerimenti per l'inizio:monitoraggio del carico della CPU su Linux

30 esempi di comandi principali per il monitoraggio in Linux

Gestione dei processi Linux migliorata con htop

Htop – Un monitor/visualizzatore di processi interattivo di sistema Linux

Come interpretare l'utilizzo della memoria top/htop?

Picchi frequenti di CPU, causati da un processo Java sconosciuto?