GNU/Linux >> Linux Esercitazione >  >> Linux

Suggerimenti per l'utilizzo del comando top in Linux

Cercare di scoprire cosa è in esecuzione sulla tua macchina e quale processo sta consumando tutta la tua memoria e facendo le cose slllooowwww è un compito ben servito dall'utilità top .

top è un programma estremamente utile che agisce in modo simile a Task Manager di Windows o Activity Monitor di MacOS. Esecuzione di top sulla tua macchina *nix ti mostrerà una vista dal vivo in esecuzione del processo in esecuzione sul tuo sistema.

$ top

A seconda della versione di top stai correndo, otterrai qualcosa che assomiglia a questo:

top - 08:31:32 up 1 day,  4:09,  0 users,  load average: 0.20, 0.12, 0.10
Tasks:   3 total,   1 running,   2 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.5 us,  0.3 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   4042284 total,  2523744 used,  1518540 free,   263776 buffers
KiB Swap:  1048572 total,        0 used,  1048572 free.  1804264 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0   21964   3632   3124 S   0.0  0.1   0:00.23 bash
  193 root      20   0  123520  29636   8640 S   0.0  0.7   0:00.58 flask
  195 root      20   0   23608   2724   2400 R   0.0  0.1   0:00.21 top

La tua versione di top potrebbe avere un aspetto diverso da questo, in particolare nelle colonne visualizzate.

Come leggere l'output

Puoi dire cosa stai eseguendo in base all'output, ma cercare di interpretare i risultati può creare confusione.

Le prime righe contengono una serie di statistiche (i dettagli) seguite da una tabella con un elenco di risultati (l'elenco). Cominciamo con quest'ultimo.

L'elenco

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Questi sono i processi che sono in esecuzione sul sistema. Per impostazione predefinita, sono ordinati in base all'utilizzo della CPU in ordine decrescente. Ciò significa che gli elementi in cima all'elenco utilizzano più risorse della CPU e causano un carico maggiore sul sistema. Sono letteralmente i processi "top" per utilizzo delle risorse. Devi ammettere che è un nome intelligente.

Il COMMAND la colonna all'estrema destra riporta il nome del processo (il comando che hai eseguito per avviarlo). In questo esempio, sono bash (un interprete di comandi che stiamo eseguendo top in), flask (un micro-framework web scritto in Python) e top stesso.

Le altre colonne forniscono informazioni utili sui processi:

  • PID :l'ID processo , un identificatore univoco per indirizzare i processi
  • USER :l'utente che esegue il processo
  • PR :la priorità dell'attività
  • NI :una migliore rappresentazione della priorità
  • VIRT :dimensione della memoria virtuale in KiB (kibibyte)*
  • RES :dimensione della memoria residente in KiB* (la "memoria fisica" e un sottoinsieme di VIRT)
  • SHR :dimensione della memoria condivisa in KiB* (la "memoria condivisa" e un sottoinsieme di VIRT)
  • S :stato del processo, di solito I =inattivo, R =in esecuzione, S =dormiente, Z =zombi, T o t =fermato (ci sono anche altre opzioni meno comuni)
  • %CPU :percentuale di utilizzo della CPU dall'ultimo aggiornamento dello schermo
  • %MEM :percentuale di RES utilizzo della memoria dall'ultimo aggiornamento dello schermo
  • TIME+ :tempo CPU totale utilizzato dall'avvio del processo
  • COMMAND :il comando, come descritto sopra

*Sapere esattamente cosa è il VIRT , RES e SHR i valori rappresentano non veramente materia nelle operazioni quotidiane. La cosa importante da sapere è che il processo con più VIRT è il processo che utilizza più memoria. Se sei in top perché stai eseguendo il debug del motivo per cui il tuo computer sembra in una pozza di melassa, il processo con il più grande VIRT il numero è il colpevole. Se vuoi sapere esattamente cosa significano memoria "condivisa" e "fisica", dai un'occhiata a "Tipi di memoria Linux" nel manuale in alto.

E sì, intendevo digitare kibi byte, non kilo byte. Il valore 1.024 che normalmente chiami kilobyte è effettivamente un kibi. Il chilo greco ("χίλιοι") significa migliaia e significa 1.000 di qualcosa (ad esempio, un chilometro è mille metri, un chilogrammo è mille grammi). Kibi è un portmanteau di chilo e byte , e significa 1.024 byte (o 2). Ma, poiché le parole sono difficili da dire, molte persone dicono kilobyte quando significano 1.024 byte. Tutto ciò significa che è top sta cercando di usare i termini corretti qui, quindi vai con esso. #themoreyouknow?.

Una nota sugli aggiornamenti dello schermo:

Gli aggiornamenti dello schermo in tempo reale sono una delle cose oggettivamente davvero interessanti I programmi Linux possono fare. Ciò significa che possono aggiornare il proprio display in tempo reale, in modo che appaiano animati. Anche se usano il testo. Così bello! Nel nostro caso, il tempo tra gli aggiornamenti è importante, perché alcune delle nostre statistiche (%CPU e %MEM ) si basano sul valore dall'ultimo aggiornamento dello schermo.

E poiché siamo in esecuzione in un'applicazione persistente, possiamo premere i comandi da tastiera per apportare modifiche in tempo reale alle impostazioni o alle configurazioni (anziché, ad esempio, chiudere l'applicazione ed eseguire nuovamente l'applicazione con un diverso flag della riga di comando).

Digitando h richiama la schermata "Guida", che mostra anche il ritardo predefinito (il tempo tra gli aggiornamenti dello schermo). Per impostazione predefinita, questo valore è (circa) tre secondi, ma puoi cambiarlo digitando d (presumibilmente per "ritardo") o s (probabilmente per "schermo" o "secondi").

I dettagli

Sopra l'elenco dei processi, c'è un sacco di altre informazioni utili. Alcuni di questi dettagli possono sembrare strani e confusi, ma una volta che ti prendi del tempo per esaminarli, vedrai che sono statistiche molto utili da tirare fuori in un pizzico.

La prima riga contiene informazioni generali sul sistema

  • top :stiamo eseguendo top ! Ciao top !
  • XX:YY:XX :l'ora, aggiornata ogni volta che lo schermo si aggiorna
  • up (poi X day, YY:ZZ ):il tempo di attività del sistema, ovvero quanto tempo è trascorso dall'accensione del sistema
  • load average (quindi tre numeri):il sistema si carica rispettivamente negli ultimi uno, cinque e 15 minuti

La seconda riga (Tasks ) mostra informazioni sulle attività in esecuzione ed è abbastanza autoesplicativo. Mostra il numero totale di processi e il numero di processi in esecuzione, inattivi, interrotti e zombie. Questa è letteralmente una somma della S (stato ) colonna sopra descritta.

La terza riga (%Cpu(s) ) mostra l'utilizzo della CPU separato per tipi. I dati sono i valori tra gli aggiornamenti dello schermo. I valori sono:

  • us :processi utente
  • sy :processi di sistema
  • ni :processi utente piacevoli
  • id :tempo di inattività della CPU; un tempo di inattività elevato significa che altrimenti non c'è molto da fare
  • wa :tempo di attesa o tempo trascorso in attesa del completamento dell'I/O
  • hi :tempo trascorso in attesa di interrupt hardware
  • si :tempo trascorso in attesa di interruzioni software
  • st :"tempo rubato a questa VM dall'hypervisor"

Puoi comprimere le Tasks e %Cpu(s) righe digitando t (per "commutare").

Il quarto (KiB Mem ) e la quinta riga (KiB Swap ) forniscono informazioni per la memoria e lo scambio. Questi valori sono:

  • total
  • used
  • free

Ma anche:

  • memoria buffers
  • scambia cached Mem

Per impostazione predefinita, sono elencati in KiB, ma premendo E (per "estendere il ridimensionamento della memoria") cicla attraverso diversi valori:kibibyte, mebibyte, gibibyte, tebibyte, pebibyte ed exbibyte. (Ovvero kilobyte, megabyte, gigabyte, terabyte, petabyte ed exabyte, ma i loro "nomi reali.")

La top il manuale utente mostra ancora più informazioni su flag e configurazioni utili. Per trovare il manuale sul tuo sistema, puoi eseguire man top . Esistono vari siti Web che mostrano un rendering HTML del manuale, ma tieni presente che questi potrebbero essere per una versione diversa di top .

Due migliori alternative

Non devi sempre usare top per capire cosa sta succedendo. A seconda delle circostanze, altri strumenti potrebbero aiutarti a diagnosticare i problemi, soprattutto quando desideri un'interfaccia più grafica o specializzata.

htop

htop è molto simile a top , ma porta in tavola qualcosa di estremamente utile:una rappresentazione grafica dell'utilizzo della CPU e della memoria.

Ecco come l'ambiente che abbiamo esaminato in top cerca in htop . Il display è molto più semplice, ma comunque ricco di funzionalità.

I conteggi delle attività, il carico, il tempo di attività e l'elenco dei processi sono ancora presenti, ma otteniamo una visione animata, colorata e animata dell'utilizzo della CPU per core e un grafico dell'utilizzo della memoria.

Ecco cosa significano i diversi colori (puoi ottenere queste informazioni anche premendo h per "aiuto").

Priorità o tipi di attività della CPU:

  • blu:priorità bassa
  • verde:priorità normale
  • rosso:attività del kernel
  • blu:attività virtualizzate
  • il valore alla fine della barra è la percentuale di CPU utilizzata

Memoria:

  • verde:memoria utilizzata
  • blu:memoria bufferizzata
  • giallo:memoria cache
  • i valori alla fine della barra mostrano la memoria utilizzata e quella totale

Se i colori non sono utili per te, puoi eseguire htop -C per disabilitarli; invece htop utilizzerà simboli diversi per separare i tipi di CPU e di memoria.

Nella parte inferiore, c'è un'utile visualizzazione dei tasti funzione attivi che puoi utilizzare per eseguire operazioni come filtrare i risultati o modificare l'ordinamento. Prova alcuni dei comandi per vedere cosa fanno. Fai solo attenzione quando provi F9 . Questo farà apparire un elenco di segnali che uccideranno (cioè interromperanno) un processo. Suggerirei di esplorare queste opzioni al di fuori di un ambiente di produzione.

L'autore di htop , Hisham Muhammad (e sì, si chiama htop dopo Hisham) ha presentato un discorso lampo su htop al FOSDEM 2018 a febbraio. Ha spiegato come htop non solo ha una grafica pulita, ma mostra anche informazioni statistiche più moderne sui processi rispetto alle vecchie utility di monitoraggio (come top ) no.

Puoi leggere di più su htop sulla pagina del manuale o sul sito Web htop. (Attenzione:il sito contiene uno sfondo animato di htop .)

statistiche della finestra mobile

Se stai lavorando con Docker, puoi eseguire docker stats per generare una rappresentazione ricca di contesto di ciò che stanno facendo i tuoi container.

Questo può essere più utile di top perché, invece di separare per processi, stai separando per contenitore. Ciò è particolarmente utile quando un container è lento, poiché vedere quale container sta utilizzando la maggior parte delle risorse è più veloce che eseguire top e provando a mappare il processo al contenitore.

Le precedenti spiegazioni di acronimi e descrittori in top e htop dovrebbe facilitare la comprensione di quelli in docker stats . Tuttavia, la documentazione relativa alle statistiche della finestra mobile fornisce descrizioni utili di ciascuna colonna.


Linux
  1. Suggerimenti Linux per l'utilizzo di cron per pianificare le attività

  2. 7 trucchi pratici per usare il comando wget di Linux

  3. Una guida al terminale Linux per principianti

  4. 8 suggerimenti per la riga di comando di Linux

  5. Usando la forza sulla riga di comando di Linux

Trucchi di formattazione per il comando data di Linux

Il comando principale di Linux

Tutorial sull'uso del comando Timeout su Linux

Tutorial sull'utilizzo dell'ultimo comando nel terminale Linux

Una guida pratica per il comando chroot in Linux

Comando principale di Linux