GNU/Linux >> Linux Esercitazione >  >> Debian

15 semplici esempi di comandi TOP su Linux per monitorare i processi

Comando Linux TOP

Uno dei comandi più basilari per monitorare i processi su Linux è il comando top. Come suggerisce il nome, mostra i processi principali in base a determinati criteri come l'utilizzo della CPU o l'utilizzo della memoria.

I processi sono elencati in un elenco con più colonne per dettagli come nome del processo, pid, utente, utilizzo della CPU, utilizzo della memoria.

Oltre all'elenco dei processi, il comando top mostra anche brevi statistiche sul carico medio del sistema, sull'utilizzo della CPU e sull'utilizzo della ram in alto.

Questo post mostra alcuni esempi molto semplici di come utilizzare il comando top per monitorare i processi sulla tua macchina o server Linux.

Nota la tua variante di comando "top"

Tieni presente che il comando in alto è disponibile in varie varianti e ognuna ha un insieme leggermente diverso di opzioni e metodo di utilizzo.

Per controllare la versione e la variante del comando principale, usa l'opzione -v

$ top -v
  procps-ng version 3.3.9

Questo post si concentra sul comando principale proveniente dal progetto procps-ng. Questa è la versione disponibile sulle distribuzioni più moderne come Ubunut, Fedora, CentOS ecc.

1. Visualizza i processi

Per dare un'occhiata ai processi in esecuzione, esegui semplicemente il top comando così com'è senza opzioni come questa.

$ top

E immediatamente l'output sarebbe qualcosa del genere -

top - 18:50:35 up  9:05,  5 users,  load average: 0.68, 0.52, 0.39
Tasks: 254 total,   1 running, 252 sleeping,   0 stopped,   1 zombie
%Cpu(s):  2.3 us,  0.5 sy,  0.0 ni, 97.1 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8165300 total,  6567896 used,  1597404 free,   219232 buffers
KiB Swap:  1998844 total,        0 used,  1998844 free.  2445372 cached Mem
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
17952 enlight+  20   0 1062096 363340  88068 S   4.8  4.4   0:49.33 chrome
14294 enlight+  20   0  954752 203548  61404 S   2.1  2.5   2:00.91 chrome
 1364 root      20   0  519048 105704  65348 S   0.6  1.3  17:31.27 Xorg
19211 enlight+  20   0  576608  47216  39136 S   0.6  0.6   0:01.01 konsole
   13 root      rt   0       0      0      0 S   0.3  0.0   0:00.10 watchdog/1
   25 root      20   0       0      0      0 S   0.3  0.0   0:03.49 rcuos/2
 1724 enlight+  20   0  430144  36456  32608 S   0.3  0.4   0:03.60 akonadi_contact
 1869 enlight+  20   0  534708  52700  38132 S   0.3  0.6   0:53.94 yakuake
14040 enlight+  20   0  858176 133944  61152 S   0.3  1.6   0:09.89 chrome

Lo schermo contiene molte informazioni sul sistema. Le aree di intestazione includono tempo di attività, carico medio, utilizzo della CPU, dati sull'utilizzo della memoria.

L'elenco dei processi mostra tutti i processi con vari dettagli specifici del processo in colonne separate.
Alcuni nomi delle colonne sono piuttosto autoesplicativi.

PID - ID processo
UTENTE - L'account utente di sistema che esegue il processo.
%CPU - Utilizzo della CPU da parte del processo.
%MEM - Utilizzo della memoria da parte del processo
COMANDO - Il comando (file eseguibile) del processo

2. Ordina per Memoria/Cpu/ID processo/Tempo di esecuzione

Per trovare il processo che consuma più CPU o memoria, ordina semplicemente l'elenco.

Premere il tasto M (sì, in maiuscolo, non piccolo) per ordinare l'elenco dei processi in base all'utilizzo della memoria. I processi che utilizzano più memoria vengono mostrati per primi e riposano in ordine.

Ecco altre opzioni per ordinare in base all'utilizzo della CPU, all'ID processo e al tempo di esecuzione -

Premi 'P' - per ordinare l'elenco dei processi in base all'utilizzo della CPU.
Premi 'N' - per ordinare l'elenco in base all'ID processo
Premi 'T' - per ordinare in base al tempo di esecuzione.

3. Invertire l'ordine di ordinamento - 'R'

Per impostazione predefinita, l'ordinamento viene eseguito in ordine decrescente. Premendo 'R' si inverte l'ordinamento della colonna attualmente ordinata

Ecco l'output ordinato in ordine crescente di utilizzo della CPU. I processi che consumano la minor quantità di CPU vengono mostrati per primi.

top - 17:37:55 up  8:25,  3 users,  load average: 0.74, 0.88, 0.74
Tasks: 245 total,   1 running, 243 sleeping,   0 stopped,   1 zombie
%Cpu(s):  5.2 us,  1.7 sy,  0.0 ni, 93.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8165300 total,  6089388 used,  2075912 free,   199060 buffers
KiB Swap:  1998844 total,        0 used,  1998844 free.  1952412 cached Mem
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0  185308   6020   4012 S   0.0  0.1   0:01.90 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd
    3 root      20   0       0      0      0 S   0.0  0.0   0:00.16 ksoftirqd/0
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:+
    7 root      20   0       0      0      0 S   0.0  0.0   0:06.98 rcu_sched
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh

4. Evidenzia la colonna ordinata con testo in grassetto - 'x'

Premere x per evidenziare i valori nella colonna di ordinamento con testo in grassetto. Ecco uno screenshot, con la colonna della memoria in grassetto -

colonna di evidenziazione del comando in alto

5. Evidenzia il colore di sfondo della colonna ordinata 'b'

Dopo aver evidenziato la colonna ordinata con un carattere in grassetto, è inoltre possibile evidenziare anche con un colore di sfondo diverso. Ecco come appare

Sfondo della colonna di evidenziazione del comando in alto

6. Modifica il ritardo di aggiornamento - 'd'

Il comando in alto aggiorna le informazioni sullo schermo ogni 3,0 secondi per impostazione predefinita. Questo intervallo di aggiornamento può essere modificato.

Premi il tasto 'd' e in alto ti chiederà di inserire l'intervallo di tempo tra ogni aggiornamento. Puoi anche inserire numeri inferiori a 1 secondo, come 0,5. Inserisci l'intervallo desiderato e premi Invio.

top - 18:48:23 up  9:19,  3 users,  load average: 0.27, 0.46, 0.39
Tasks: 254 total,   1 running, 252 sleeping,   0 stopped,   1 zombie
%Cpu(s):  1.3 us,  0.4 sy,  0.0 ni, 98.1 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8165300 total,  7899784 used,   265516 free,   238068 buffers
KiB Swap:  1998844 total,     5432 used,  1993412 free.  3931316 cached Mem
Change delay from 3.0 to
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
14512 enlight+  20   0 1047688 302532  87156 S   1.3  3.7   1:34.87 /opt/googl+
15312 enlight+  20   0   25148   3280   2628 R   0.8  0.0   0:00.04 top

7. Filtra o Cerca processi - 'o'/'O'

Puoi filtrare l'elenco dei processi in base a vari criteri come il nome del processo, l'utilizzo della memoria, l'utilizzo della CPU, ecc. È possibile applicare più criteri di filtro.

Premere 'o' o 'O' per attivare la richiesta del filtro. Mostrerà una linea che indica il formato del filtro in questo modo -

add filter #1 (ignoring case) as: [!]FLD?VAL

Quindi inserisci un filtro come questo e premi Invio.

COMANDO=apache

Ora in alto verranno mostrati solo quei processi il cui campo COMANDO contiene il valore apache.

Ecco un altro esempio di filtro che mostra i processi che consumano attivamente la CPU -

%CPU>0,0

Vedi filtri attivi - Premi Ctrl+o per vedere i filtri attualmente attivi

Cancella filtro - Premi il tasto '=' per cancellare tutti i filtri attivi

8. Visualizza il percorso completo del comando e gli argomenti del processo - 'c'

Premi 'c' per visualizzare il percorso completo del comando insieme agli argomenti della riga di comando nella colonna COMANDO.

%CPU %MEM     TIME+ COMMAND                                                    
  0.0  0.0   0:00.00 /usr/bin/dbus-launch --exit-with-session /usr/bin/im-laun+ 
  0.0  0.1   0:01.52 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address+ 
  0.0  0.3   0:00.41 /usr/bin/kwalletd --pam-login 17 20                        
  0.0  0.0   0:00.00 /usr/lib/x86_64-linux-gnu/libexec/kf5/start_kdeinit --kde+ 
  0.0  0.3   0:01.55 klauncher [kdeinit5] --fd=9                                
  0.0  0.2   0:00.13 /usr/lib/telepathy/mission-control-5                       
  0.0  0.1   0:00.00 /usr/lib/dconf/dconf-service                               
  0.0  0.4   0:01.41 /usr/lib/x86_64-linux-gnu/libexec/kdeconnectd              
  0.0  0.2   0:01.09 /usr/lib/x86_64-linux-gnu/libexec/kf5/kscreen_backend_lau+

9. Visualizza i processi di un utente - 'u'/'U'

Per visualizzare i processi di un solo utente specifico, premi 'u' e poi in alto ti chiederà di inserire il nome utente.

Quale utente (vuoto per tutti)
Inserisci il nome utente desiderato e premi Invio.

top - 17:33:46 up  8:21,  3 users,  load average: 2.55, 1.31, 0.81
Tasks: 246 total,   1 running, 244 sleeping,   0 stopped,   1 zombie
%Cpu(s): 11.8 us,  3.3 sy,  0.6 ni, 84.2 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem:   8165300 total,  6108824 used,  2056476 free,   198680 buffers
KiB Swap:  1998844 total,        0 used,  1998844 free.  1963436 cached Mem
Which user (blank for all) enlightened
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 1696 enlight+  20   0  440728  37728  33724 S   0.0  0.5   0:03.12 akonadi_bi+
 1705 enlight+  20   0  430304  37156  33264 S   0.0  0.5   0:03.08 akonadi_mi+
 1697 enlight+  20   0  430144  37100  33248 S   0.0  0.5   0:03.00 akonadi_co+
 1599 enlight+  20   0  504628  36132  32068 S   0.0  0.4   0:03.24 kdeconnectd
 1608 enlight+  20   0  570784  35688  29944 S   0.0  0.4   0:02.87 polkit-kde+
 1584 enlight+  20   0  781016  33308  29056 S   0.0  0.4   0:04.03 kactivitym+

10. Attiva o disattiva la visualizzazione dei processi inattivi - 'i'

Premere 'i' per alternare la visualizzazione dei processi inattivi/inattivi. Per impostazione predefinita, vengono visualizzati tutti i processi.

11. Nascondi/Mostra le informazioni in alto:'l', 't', 'm'

Il tasto 'l' nasconde le informazioni sulla media del carico.
Il tasto 'm' nasconde le informazioni sulla memoria.
Il tasto 't' nasconde l'attività e le informazioni sulla CPU.

Nascondendo l'area delle informazioni dell'intestazione, vengono visualizzati più processi nell'elenco.

12. Modalità foresta - 'V'

Premendo 'V' verranno visualizzati i processi in una gerarchia padre figlio. Sembra qualcosa del genere -

top - 09:29:34 up 17 min,  3 users,  load average: 0.37, 0.58, 0.66
Tasks: 244 total,   1 running, 242 sleeping,   0 stopped,   1 zombie
%Cpu(s):  6.1 us,  2.1 sy,  0.0 ni, 91.8 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8165300 total,  3968224 used,  4197076 free,    82868 buffers
KiB Swap:  1998844 total,        0 used,  1998844 free.  1008416 cached Mem
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0   37844   5964   4012 S   0.0  0.1   0:01.08 systemd
  279 root      20   0   35376   4132   3732 S   0.0  0.1   0:00.22  `- systemd-journal
  293 root      20   0   44912   4388   3100 S   0.0  0.1   0:00.14  `- systemd-udevd
  493 systemd+  20   0  102360   2844   2572 S   0.0  0.0   0:00.01  `- systemd-timesyn
  614 root      20   0  337360   8624   6904 S   0.0  0.1   0:00.03  `- ModemManager
  615 avahi     20   0   40188   3464   3096 S   0.0  0.0   0:00.01  `- avahi-daemon
  660 avahi     20   0   40068    324     12 S   0.0  0.0   0:00.00      `- avahi-daem+
  617 root      20   0  166276   8788   8076 S   0.0  0.1   0:00.07  `- thermald
  621 root      20   0   15664   2496   2312 S   0.0  0.0   0:00.00  `- anacron
 2792 root      20   0    4476    844    760 S   0.0  0.0   0:00.00      `- sh
 2793 root      20   0    4364    684    604 S   0.0  0.0   0:00.00          `- run-pa+
 2802 root      20   0    4476   1672   1536 S   0.0  0.0   0:00.00              `- apt
 2838 root      20   0    7228    676    596 S   0.0  0.0   0:00.00                  `+
  630 root      20   0   28932   3128   2860 S   0.0  0.0   0:00.00  `- cron
  634 root      20   0  283120   6776   5924 S   0.0  0.1   0:00.04  `- accounts-daemon
  636 root      20   0   86160   7224   6128 S   0.0  0.1   0:00.01  `- cupsd

13. Modifica il numero di processi da visualizzare - 'n'

Diciamo che vuoi monitorare solo pochi processi in base a determinati criteri di filtro. Premi 'n' e inserisci il numero di processi che desideri visualizzare.

Verrà visualizzata una riga che dice -
Numero massimo di attività =0, cambia in (0 è illimitato)

14. Visualizza tutti i core della CPU - '1'

Premendo '1' verranno visualizzate le informazioni di caricamento sui singoli core della CPU. Ecco come appare -

top - 10:45:47 up  1:42,  5 users,  load average: 0.81, 1.14, 0.94
Tasks: 260 total,   2 running, 257 sleeping,   0 stopped,   1 zombie
%Cpu0  :  3.6 us,  3.6 sy,  0.0 ni, 92.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  3.1 us,  3.6 sy,  0.0 ni, 93.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  7.6 us,  1.8 sy,  0.0 ni, 90.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  9.6 us,  2.6 sy,  0.0 ni, 87.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8165300 total,  7118864 used,  1046436 free,   204224 buffers
KiB Swap:  1998844 total,        0 used,  1998844 free.  3410364 cached Mem

15. Mostra/Nascondi colonne 'f'

Per impostazione predefinita, in alto vengono visualizzate solo poche colonne su molte altre che può visualizzare. Se desideri aggiungere o rimuovere una determinata colonna o modificare l'ordine delle colonne, premi f

Fields Management for window 1:Def, whose current sort field is %CPU
   Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,
   'd' or <Space> toggles display, 's' sets sort.  Use 'q' or <Esc> to end!
* PID     = Process Id      PGRP    = Process Group   vMj     = Major Faults
* USER    = Effective Use   TTY     = Controlling T   vMn     = Minor Faults
  PR      = Priority        TPGID   = Tty Process G   USED    = Res+Swap Size
  NI      = Nice Value      SID     = Session Id      nsIPC   = IPC namespace
  VIRT    = Virtual Image   nTH     = Number of Thr   nsMNT   = MNT namespace
  RES     = Resident Size   P       = Last Used Cpu   nsNET   = NET namespace
  SHR     = Shared Memory   TIME    = CPU Time        nsPID   = PID namespace
  S       = Process Statu   SWAP    = Swapped Size    nsUSER  = USER namespac
* %CPU    = CPU Usage       CODE    = Code Size (Ki   nsUTS   = UTS namespace
* %MEM    = Memory Usage    DATA    = Data+Stack (K
  TIME+   = CPU Time, hun   nMaj    = Major Page Fa
* COMMAND = Command Name/   nMin    = Minor Page Fa
  PPID    = Parent Proces   nDRT    = Dirty Pages C
  UID     = Effective Use   WCHAN   = Sleeping in F
  RUID    = Real User Id    Flags   = Task Flags <s
  RUSER   = Real User Nam   CGROUPS = Control Group
  SUID    = Saved User Id   SUPGIDS = Supp Groups I
  SUSER   = Saved User Na   SUPGRPS = Supp Groups N
  GID     = Group Id        TGID    = Thread Group
  GROUP   = Group Name      ENVIRON = Environment v

I campi contrassegnati con * o in grassetto sono i campi visualizzati, nell'ordine in cui appaiono in questo elenco.

Navigare nell'elenco utilizzando i tasti freccia su/giù e premere 'd' per alternare la visualizzazione di quel campo. Al termine, premere q per tornare all'elenco dei processi

L'output seguente visualizza solo le colonne PID, USER, CPU, MEMORY e COMMAND.

top - 15:29:03 up  6:16,  4 users,  load average: 0.99, 0.61, 0.63
Tasks: 247 total,   1 running, 245 sleeping,   0 stopped,   1 zombie
%Cpu(s):  6.3 us,  2.0 sy,  0.2 ni, 91.5 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8165300 total,  6089244 used,  2076056 free,   189272 buffers
KiB Swap:  1998844 total,        0 used,  1998844 free.  1902836 cached Mem
  PID USER      %CPU %MEM COMMAND
 1921 enlight+   9.2  3.6 /opt/google/chrome/chrome
 3078 enlight+   6.9  4.2 /opt/google/chrome/chrome --type=renderer --lang=en-+
 1231 root       5.3  1.0 /usr/bin/X :0 -auth /var/run/sddm/:0 -nolisten tcp -+
 1605 enlight+   2.8  2.5 /usr/bin/plasmashell --shut-up
 1596 enlight+   1.8  1.0 kwin_x11 -session 10d8d4e36b000144740943900000009530+
 2088 enlight+   0.9  1.7 /opt/google/chrome/chrome --type=renderer --lang=en-+
 2534 enlight+   0.8  1.7 /opt/google/chrome/chrome --type=renderer --lang=en-+
 5695 enlight+   0.8  0.7 /usr/bin/python /usr/bin/terminator
 1859 enlight+   0.2  1.2 /usr/bin/perl /usr/bin/shutter --min_at_startup
 2060 enlight+   0.2  1.5 /opt/google/chrome/chrome --type=renderer --lang=en-+
 3541 enlight+   0.2  3.6 /opt/google/chrome/chrome --type=renderer --lang=en-+

16. Modalità batch

Top supporta anche l'output in modalità batch, in cui manterrebbe la stampa delle informazioni in sequenza anziché in una singola schermata. Ciò è utile quando è necessario registrare l'output principale per un'analisi successiva di qualche tipo.

Ecco un semplice esempio che mostra l'utilizzo della CPU a intervalli di 1 secondo.

$ top -d 1.0 -b | grep Cpu

17. Dividi l'output in più pannelli - 'A'

Ogni pannello può essere ordinato su una colonna diversa. Premi 'a' per spostarti tra i pannelli. Ogni pannello può avere un diverso insieme di campi visualizzati e diverse colonne di ordinamento.

top comando più pannelli

Conclusione

Top è un ottimo strumento da riga di comando per controllare l'utilizzo delle risorse di sistema e i dettagli del processo. Viene spesso utilizzato sui server per il monitoraggio e la diagnosi rapida.

Se stai cercando qualcosa di più semplice con un'interfaccia utente migliore, prova htop. Htop ha un'interfaccia utente intuitiva, in cui non è necessario memorizzare le scorciatoie da tastiera. Htop ha istruzioni sullo schermo che ti guidano su come usarlo.


Debian
  1. 25 semplici esempi di comando trova Linux

  2. comando Linux ps

  3. 8 Esempi di comandi TR Linux

  4. Esempi di comandi rm in Linux

  5. ps Esempi di comandi in Linux

10 esempi di comando Linux ss per monitorare le connessioni di rete

Comando Linux ps – 20 esempi di vita reale

Comando principale di Linux

Esempi di comandi id in Linux

top Esempi di comandi in Linux

Comando Linux fusore con esempi