Comanda „top” în Linux reprezintă o componentă esențială a sistemelor de operare de tip Unix. Ea oferă un flux continuu de informații valoroase despre procesele active și utilizarea resurselor. Dar, poate că nu știai, această comandă suportă și culori, evidențiere și chiar reprezentări grafice simple.
Un panou de control complex
Comanda „top” are rădăcini în 1984 și a evoluat în numeroase variante. Pentru acest articol, folosim Ubuntu 18.04 actualizat la zi, cu versiunea 3.3.12 a comenzii „top”. De asemenea, am verificat aceste informații pe două alte sisteme, unul rulând Fedora și celălalt Manjaro.
Interfața implicită a comenzii „top” încearcă să concentreze cât mai multă informație în fereastra terminalului. Pentru un administrator de sistem, această informație este crucială pentru a identifica problemele în timp real și a le rezolva înainte ca acestea să afecteze serviciul. „Top” oferă un tablou de bord detaliat cu o multitudine de date de sistem.
Afișajul, deși funcțional, nu este întotdeauna intuitiv, iar abrevierile sunt frecvente. La prima utilizare, „top” poate părea aglomerat și confuz. Dar, cu câteva ajustări, poți personaliza conținutul și formatul afișajului conform nevoilor tale.
Verifică versiunea ta de „top”
Pentru a afla ce versiune de „top” ai, introdu următoarea comandă în terminal:
top -v
Dacă versiunea ta este mai veche decât 3.3.12, este posibil să nu beneficiezi de toate opțiunile prezentate în continuare.
Interfața implicită
Pentru a lansa „top”, tastează „top” și apasă „Enter”:
top
Interfața standard conține două zone principale: zona de sumar (sau tabloul de bord) și zona de activități (lista proceselor). În mod normal, „top” reîmprospătează datele la fiecare trei secunde, ceea ce se observă printr-o ușoară pâlpâire a ecranului.
Prima linie din tablou afișează ora curentă, durata de funcționare a sistemului, numărul utilizatorilor conectați și mediile de încărcare pentru ultimele 1, 5 și 15 minute. A doua linie indică numărul de task-uri și stările lor: rulare, oprite, adormite sau zombie.
Linia a treia prezintă statisticile de utilizare ale unității centrale de procesare (CPU):
us: Timpul petrecut de procesor rulând procese ale utilizatorilor („spațiul utilizator”).
sy: Timpul alocat rulării proceselor sistemului („spațiul kernel”).
ni: Timpul folosit de procesele cu o valoare „nice” setată manual.
id: Timpul de inactivitate al procesorului.
wa: Timpul în care procesorul așteaptă finalizarea operațiunilor I/O.
hi: Timpul dedicat gestionării întreruperilor hardware.
si: Timpul alocat întreținerii întreruperilor software.
st: Timpul pierdut din cauza mașinilor virtuale („steal time”).
A patra linie prezintă cantitatea totală de memorie fizică (în kibibytes), precum și cantitatea liberă, utilizată și stocată în cache.
Linia a cincea afișează cantitatea totală de memorie swap (tot în kibibytes), împreună cu cantitatea liberă, utilizată și disponibilă. Aceasta din urmă include și memoria care poate fi recuperată din cache.
Antetele coloanelor din lista de procese sunt următoarele:
PID: ID-ul procesului.
USER: Proprietarul procesului.
PR: Prioritatea procesului.
NI: Valoarea „nice” a procesului.
VIRT: Cantitatea de memorie virtuală utilizată de proces.
RES: Cantitatea de memorie RAM utilizată de proces.
SHR: Cantitatea de memorie partajată folosită de proces.
S: Starea procesului. (Vezi lista de mai jos pentru valorile posibile).
%CPU: Procentajul timpului CPU utilizat de proces de la ultima actualizare.
%MEM: Procentajul memoriei fizice utilizate.
TIME+: Timpul total de procesor utilizat de task în sutimi de secundă.
COMMAND: Numele comenzii sau linia de comandă (nume + opțiuni).
Valorile memoriei sunt afișate în kibibytes. Coloana COMMAND poate fi parțial vizibilă, în funcție de dimensiunea ecranului.
Starea unui proces poate fi una dintre următoarele:
D: În somn neîntrerupt
R: Rulare
S: Adormit
T: Urmărit (oprit)
Z: Zombie
Apasă „Q” pentru a închide „top”.
Navigarea în interfață
Poți folosi tastele Săgeată Sus sau Jos, Acasă, Sfârșit și Pagina Sus sau Jos pentru a naviga prin lista de procese.
Tastele săgeată stânga și dreapta permit deplasarea orizontală în listă, ceea ce este util pentru a vedea coloanele care nu încap pe ecran.
În imaginea de mai jos, am folosit tasta săgeată dreapta pentru a afișa coloana COMMAND.
Schimbarea unităților numerice
Poți ajusta unitățile de afișare pentru o mai bună lizibilitate. Apasă „E” (majusculă) pentru a schimba unitățile memoriei afișate în zona de sumar între: kibibytes, mebibytes, gibibytes, tebibytes, pebibytes și exbibytes. Unitatea selectată este afișată la începutul liniilor a patra și a cincea din zona de sumar.
Apasă „e” (minusculă) pentru a modifica unitățile memoriei în lista de procese: kibibytes, mebibytes, gibibytes, tebibytes și pebibytes.
În imaginea de mai jos, am setat unitățile de memorie din zona de sumar la gibibytes, iar pentru lista de procese la mebibytes.
Modificarea conținutului sumarului
Poți schimba liniile afișate în zona de sumar sau le poți ascunde complet.
Apasă „l” pentru a activa sau dezactiva linia de sumar a încărcării (prima linie). În imaginea de mai jos, am ascuns această linie.
Dacă ai un procesor multi-core, apasă „1” pentru a afișa statisticile individuale pentru fiecare CPU. Pe sistemul nostru de test sunt patru procesoare. Apăsăm „1” pentru a vedea cât lucrează fiecare dintre ele.
Această opțiune ocupă mai mult spațiu pe ecran.
Poți apăsa „t” pentru a schimba modul de afișare al informațiilor despre CPU în grafice ASCII, care prezintă procentul de utilizare al fiecărui procesor.
Pentru fiecare procesor, „top” afișează trei numere și graficul. De la stânga la dreapta, numerele reprezintă:
Procentul combinat „us” și „ni” (utilizator + sarcini cu setări „nice” non-standard).
Procentul „sy” (spațiul kernel).
Totalul (rotunjit la o valoare întreagă).
Apasă din nou „t” pentru a afișa graficele cu caractere bloc.
Încă o apăsare pe „t” va elimina complet informațiile despre CPU și linia de sumar a task-urilor.
Apasă „m” pentru a schimba modul de afișare al liniilor de memorie. Prima apăsare va înlocui statisticile cu un grafic ASCII.
O a doua apăsare va afișa graficul cu caractere bloc.
Încă o apăsare pe „m” va elimina liniile de memorie.
Poți afișa graficele CPU și memorie simultan. Folosește tastele „t” și „m” până obții combinația dorită.
Culori și evidențiere
Apasă „z” pentru a activa afișajul color.
„Top” nu este doar un instrument de monitorizare, dar suportă și afișaje colorate și grafice ASCII.
Apasă „y” pentru a evidenția task-urile în execuție. Tasta „x” evidențiază coloana folosită pentru sortarea listei de procese. Poți schimba între evidențierea cu text îngroșat sau inversat apăsând „b”.
Sortarea după coloane
În mod implicit, lista de procese este sortată după coloana „%CPU”. Poți schimba coloana de sortare folosind următoarele taste:
P: Coloana „%CPU”.
M: Coloana „%MEM”.
N: Coloana „PID”.
T: Coloana „TIME+”.
În imaginea de mai jos, lista este sortată după coloana „PID”.
Afișarea liniei complete de comandă
Apasă „c” pentru a schimba modul de afișare al coloanei „COMMAND” între numele procesului și linia de comandă completă.
Pentru a vizualiza o structură arborescentă a proceselor, adică a proceselor lansate de alte procese, apasă „V”.
Vizualizarea proceselor unui singur utilizator
Apasă „u” pentru a vedea procesele unui singur utilizator. Ți se va solicita să introduci numele sau UID-ul utilizatorului.
Introdu numele sau UID-ul utilizatorului pe care dorești să îl monitorizezi. În exemplul nostru introducem „dave”. După apăsarea „Enter”, vor fi afișate doar procesele aparținând utilizatorului „dave”.
Afișarea doar a task-urilor active
Apasă „I” pentru a afișa doar task-urile active.
Task-urile care nu au consumat timp CPU de la ultima actualizare nu vor mai fi afișate.
Limitarea numărului de procese afișate
Apasă „n” pentru a limita afișarea la un anumit număr de linii. Ți se va solicita numărul de procese pe care vrei să le vezi.
Am introdus „10” și am apăsat „Enter”. Astfel, în zona de task-uri sunt afișate doar 10 procese.
Modificarea priorității unui proces
Poți apăsa „r” pentru a modifica valoarea „nice” (prioritatea) unui proces. Ți se va solicita ID-ul procesului. Apasă „Enter” pentru a utiliza ID-ul procesului afișat în partea de sus a ferestrei. În exemplul nostru introducem 7800, care este ID-ul unei instanțe Firefox.
După ce apeși „Enter”, se va cere noua valoare „nice”. Introducem 15 și apăsăm „Enter”.
Noua valoare „nice” este aplicată imediat.
Oprirea unui proces
Apasă „k” pentru a opri un proces. Ți se va solicita ID-ul procesului pe care vrei să îl oprești. Poți trimite orice semnal către un proces. Vom opri procesul 7879, care nu mai răspunde.
Apoi, poți alege semnalul pe care vrei să îl trimiți. Îl poți specifica după nume sau număr. Dacă apeși „Enter” fără a introduce nimic, „top” va trimite semnalul SIGTERM (kill).
Imediat ce apeși „Enter”, semnalul este trimis procesului.
Personalizarea afișajului
Poți personaliza și culorile și coloanele afișate. Vom schimba culoarea folosită pentru mesaje, care este implicit roșie.
Apasă „Z” (majusculă) pentru a accesa pagina de setări de culoare. Partea de sus a ecranului afișează culorile folosite pentru diferite elemente. Pentru a indica ce element vrei să schimbi, apasă una dintre următoarele taste (ține cont de majuscule și minuscule):
S: Zona de sumar.
M: Mesaje și solicitări.
H: Antetele coloanelor.
T: Informațiile despre task-uri.
Apasă „M” pentru a schimba solicitările.
Pentru a alege o culoare, apasă una dintre următoarele cifre:
0: Negru.
1: Roșu.
2: Verde.
3: Galben.
4: Albastru.
5: Magenta.
6: Cyan.
7: Alb.
Apasă „6” pentru a folosi cyan.
Apasă „Enter” pentru a salva setările. Solicitările vor fi afișate în culoarea selectată.
De asemenea, poți modifica coloanele afișate folosind ecranul „Fields Management”. Apasă „F” pentru a accesa acest ecran.
Câmpurile afișate au un asterisc (*) lângă ele și sunt evidențiate cu caractere aldine. Folosește tastele săgeată sus și jos pentru a naviga prin lista de câmpuri.
Dacă te deplasezi din partea de jos a unei coloane, vei ajunge în partea de sus a următoarei coloane (cu excepția ultimei coloane). Similar, dacă te deplasezi din partea de sus a unei coloane, ajungi în partea de jos a coloanei precedente (cu excepția primei coloane).
Am mutat selecția pe câmpul „COMMAND” și am apăsat „d” pentru a elimina asteriscul.
Apoi, am selectat câmpul „UID” și am apăsat „d” pentru a adăuga un asterisc. Asta înseamnă că coloana „COMMAND” nu va fi afișată, dar coloana „UID” va fi vizibilă.
În timp ce selecția este pe coloana „UID”, apasă „s” pentru a sorta lista de procese după coloana „UID”.
Apasă „Enter” pentru a salva setările, apoi „q” pentru a părăsi ecranul „Fields Management”.
Coloana „UID” a înlocuit „COMMAND”, iar lista este sortată după „UID”.
Mod de afișare alternativ
Această opțiune funcționează cel mai bine pe ecran complet. Apasă „A” pentru a împărți lista de procese în patru zone, apoi „a” pentru a trece de la o zonă la alta.
Fiecare zonă are un set diferit de coloane, dar fiecare poate fi personalizată prin ecranul „Fields Management”. Poți avea un afișaj personalizat pe tot ecranul, care afișează informații diferite în fiecare zonă și poți sorta fiecare zonă după o coloană diferită.
Alte taste utile
Următoarele sunt alte taste pe care le-ai putea găsi utile în „top”:
W: Salvează setările și personalizările, astfel încât să fie active și la următoarea utilizare a comenzii.
d: Setează o nouă rată de reîmprospătare a afișajului.
Spațiu: Forțează „top” să reîmprospăteze datele imediat.
„Top Banana” După cum am văzut, „top” are multe opțiuni. Alte programe, precum „htop”,
s-au inspirat din ea, dar fiecare are interpretarea sa asupra lucrurilor.
Cu toate acestea, „top” este instalat pe majoritatea sistemelor. Când lucrezi în companii pentru a analiza rețele sau servere, de multe ori ți se va spune că nu se poate modifica nimic pe serverele active. Clientul stabilește regulile și trebuie să folosești ceea ce este deja instalat.
Chiar dacă preferi un alt instrument de monitorizare, ar trebui să te familiarizezi cu „top”. Mai devreme sau mai târziu, te vei afla probabil într-o situație în care este singurul instrument disponibil.