it-swarm.it

Mostra i primi cinque processi che consumano CPU con `ps`

Come mostrare i primi cinque processi che consumano CPU con ps?

115
PlanasB

Perché usare ps quando puoi farlo facilmente con il comando top?

Se devi usare ps, prova questo:

ps aux | sort -nrk 3,3 | head -n 5

Se vuoi qualcosa di veramente "top" con aggiornamenti costanti, usa watch

watch "ps aux | sort -nrk 3,3 | head -n 5"
112
Boban P.

La risposta corretta è:

ps --sort=-pcpu | head -n 6

Quindi puoi specificare le colonne senza interferire con l'ordinamento.

Ex:

ps -Ao user,uid,comm,pid,pcpu,tty --sort=-pcpu | head -n 6

Nota per MAC OS X: in Mac OS X, ps non riconosce --sort, ma offre -r per ordinare in base all'utilizzo corrente della CPU. Pertanto, per Mac OS X è possibile utilizzare:

ps -Ao user,uid,comm,pid,pcpu,tty -r | head -n 6
94
Facundo Victor

A seconda delle tue esigenze potresti trovare questo un po 'più leggibile:

ps -eo pcpu,pid,user,args --no-headers| sort -t. -nk1,2 -k4,4 -r |head -n 5

uscita campione:

 1.3     4 root     [ksoftirqd/0]
 1.1     9 root     [ksoftirqd/1]
 1.0 17606 nobody   /usr/sbin/gmetad
 1.0    13 root     [ksoftirqd/2]
 0.3 17401 nobody   /usr/sbin/gmond

(i campi sono% CPU, PID, UTENTE, COMANDO)

28

Non credo che ps sia quello che stai cercando. Hai visto l'output di top?

Se hai GNU-Top, prova a utilizzare la sua modalità batch per sputare un elenco di processi ordinato in base all'utilizzo della cpu e usando head/tail per ottenere le prime 5 righe (le prime 8 sono le intestazioni):

top -b -n 1 | head -n 12  | tail -n 5

La parte superiore di BSD sembra comportarsi diversamente e non ha una modalità non interattiva, quindi usa una delle altre soluzioni basate su ps.

24
Caleb

Un liner più veloce che ho trovato per questo (nota 6 perché si aggiunge l'intestazione):

ps aux k-pcpu | head -6
6
Nestor Urquiza

Nota che le attuali versioni di ps hanno al loro interno capacità di ordinamento, basate su codici di campo (indicati nella pagina man di ps). Il codice campo per l'utilizzo del processore è "c". Puoi usare --sort c alla fine di un comando ps, ad es. ps aux --sort c

Questo metterà il processo usando il maggior numero di CPU in fondo alla lista. Ordine inverso dell'elenco aggiungendo un segno meno al codice campo utilizzato per ordinare ad es. ps aux --sort -c

5
Cian D

Per aggiungere un punto ad altre risposte preziose, preferisco:

ps auxk-c | head -6

Stampa anche l'intestazione, che è piacevole.

Qui k è identico a --sort e c specifica l'utilizzo della CPU (alias %cpu) campo per l'ordinamento, mentre - è per l'ordinamento inverso.

Puoi aggiungere più specificatori separati da ,, altri possibili specificatori sono: %mem, args, bsdstart, pid, gid, uid ... in cui puoi trovare l'elenco completo in SPECIFICA FORMATO STANDARD sezione della pagina man. Per esempio:

 ps auxk -gid,-%mem | head -11

stamperebbe 10 processi con il massimo ID di gruppo, ordinati internamente in base all'utilizzo della memoria.

4
2i3r

Lo strumento da riga di comando ps ha una propria opzione di ordinamento, quindi preferisco:

$ ps -eo pcpu,args --sort=-%cpu | head

Puoi aggiungere le colonne che desideri. Scopri quali altre opzioni sono disponibili nella pagina man ps.

$ man ps

Credo che il modo più semplice di vedere il principale processo di consumo di 5 cp sia,

ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5

Per vedere il principale processo che richiede 5 memoria è,

ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5

Dove,

-e: Questo flag viene utilizzato per selezionare tutto il processo

-o: Questo flag viene utilizzato per formattare come definito dall'utente.

pid: questo argomento usato per mostrare pid

comm: questo argomento utilizzato per mostrare solo il nome del comando. Per ottenere il comando completo, utilizzare args, cmd o command

%cpu: Questo argomento mostra la percentuale di utilizzo della CPU del processo nel formato "##. #". Qui è possibile utilizzare anche pcpu.

%mem: Questo argomento mostra il rapporto tra la dimensione del set residente del processo e la memoria fisica sulla macchina, espressa in percentuale. Qui è possibile utilizzare anche pmem.

--sort: Specifica l'ordinamento. Dopo = Il segno - Viene utilizzato per ordinare il valore più alto nella parte superiore in cui l'opzione predefinita che è + È quella di elencare l'ordine numerico crescente [ovvero da 0 a n].

0
muhammad

top su Mac OS X ha un'opzione della modalità di registrazione sotto forma di top -l numberOfSamples (che sembra essere l'equivalente della modalità batch di GNU top). Tuttavia, è necessario disporre di almeno due campioni perché "viene visualizzato il primo campione verrà visualizzata una% CPU non valida per ciascun processo, poiché viene calcolata utilizzando il delta tra i campioni "(man 1 top).

# examples
top -o cpu -l 2 -n 5 | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu -U $(logname) | tail -n 6
0
ulf

top mostrerà cosa sta usando la tua CPU. Se lo hai installato, htop ti consente un controllo più accurato, incluso il filtraggio per — nel tuo caso — CPU.

0
PSN