Come trovare quale processo sta causando un elevato utilizzo della CPU


30

Esiste un modo per scoprire dal terminale quale processo sta causando un elevato utilizzo della CPU?

Sarebbe anche utile ordinare i processi in ordine decrescente di utilizzo della cpu

Risposte:


23

topvisualizzerà ciò che sta usando la tua CPU. Se lo hai installato, htopti consente un controllo più accurato, incluso il filtraggio per — nel tuo caso — CPU


4
Top è spesso meno utile. Innanzitutto perché i processi spesso fluttuano - non è insolito vedere processi che occupano completamente la cpu occasionalmente sfarfallio allo 0% in alto, e se hai più processi intensivi in ​​esecuzione possono alternarsi, a turno per usare il 100% mentre l'altro usa 0% , rendendo difficile la lettura. Inoltre, a volte i numeri sono semplicemente strani - ad esempio, in questo momento la mia parte superiore sta segnalando che tutti i singoli processi utilizzano lo 0% di CPU, ma il totale è del 52% - quindi quale lo sta facendo?
Benubird,

29
ps -eo pcpu,pid,user,args | sort -k1 -r -n | head -10

Funziona per me, mostra i primi 10 CPU usando i thread, ordinati numericamente


1
In senso lessicografico, l'8% si classificherebbe sopra il 78%
cherdt

3
Consiglierei di aggiungere un -n per ordinare. Ordina i valori numericamente anziché lessicamente. ( ss64.com/bash/sort.html )
Simon Zyx

4

Oltre a pse topcomandi, puoi anche eseguire vmstatper capire cosa sta succedendo in termini di CPU, utilizzo della memoria sul sistema, ovvero:

vmstat 1 100

Con quanto sopra, ottieni 100 campioni al secondo a parte varie statistiche. Quando la colonna ro bha un numero (maggiore = più risorse utilizzate) c'è uno script che sta bloccando. rè CPU, bgeneralmente blocca IO come disco o rete.

Esempio di output:

$ vmstat 1 100
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 288700  17592 1920048    0    0  4482  3297   47  155  8  2 78 12  0
 0  0      0 268420  17904 1920584    0    0   788    36 4095 4759 11  3 85  1  0
 0  0      0 269916  17940 1920868    0    0   108   560 6969 7280 11  2 86  1  1
 3  0      0 267684  18196 1921304    0    0   256     0 5934 6094  9  2 90  0  0
 0  0      0 257800  18196 1921528    0    0     0     0 5412 5508 10  1 89  0  1
 1  0      0 257368  18196 1922028    0    0     0     0 5852 6046  9  1 89  0  1
 0  0      0 256872  18200 1922236    0    0     0     0 5345 5566  9  1 90  0  0
 0  0      0 256688  18208 1922292    0    0     0  1788 5388 5602  7  2 90  1  1
 0  0      0 256520  18208 1922684    0    0     0     0 5387 5557  8  1 91  0  0
 1  0      0 255788  18208 1923024    0    0     0     0 4992 5363 10  1 89  0  1
 1  0      0 255392  18208 1923456    0    0     0     0 5027 5145 13  1 86  0  0
 0  0      0 254980  18208 1923792    0    0     0     0 5042 5082 21  1 77  0  1
 0  0      0 254452  18216 1924092    0    0     0  1848 5481 5695  7  1 91  1  1
 0  0      0 254416  18216 1924268    0    0     0     0 4947 5250  7  1 92  0  0
 1  0      0 253732  18216 1924616    0    0     0     0 5180 5383  8  2 90  0  1
 0  0      0 253584  18216 1924912    0    0    12     0 4464 4623  8  1 91  0  0
 0  0      0 243496  18216 1925224    0    0     0     0 5507 5700  9  1 90  0  1
 0  0      0 243008  18224 1925504    0    0     0  1356 5070 5345  8  1 90  0  1
 1  0      0 243220  18228 1925676    0    0     0     0 6241 6533 11  2 87  0  0

2

Probabilmente puoi usarlo ps xo pid,cmd --sort=%cmd | tail -1, ma topverrà mostrato in tempo reale.


2

" htop " è simile alla parte superiore, ma ha un display "colorato grafico basato su testo" delle tue CPU e mostra anche una struttura ad albero ai processi, quindi sai che un processo ha un figlio e quanti.

Mostra anche la carica della batteria del laptop e se si sta caricando - non lo sapevo prima!

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.