Acasă › Blog › Cum monitorizați performanța cu htop și atop în Linux
Cum monitorizați performanța cu htop și atop în Linux
11 august 2025 · Dorel Tănase, specialist în servicii SEO din 2007 · Linux
Cum monitorizați performanța cu htop și atop în Linux, două unelte de terminal care răspund la întrebarea „ce se întâmplă acum pe server” și, în cazul lui atop, „ce s-a întâmplat azi-noapte la 3:10”. htop este pentru privirea rapidă și intervenție; atop, pentru analiză și istoric. Pe serverele pe care le administrăm, ambele sunt instalate în prima oră.
Ghidul explică instalarea, citirea fiecărei zone din ecran, tastele care contează, interpretarea valorilor (încărcarea, memoria, I/O) și cazurile tipice de pe servere web, cu ce faceți în fiecare.
Cum monitorizați performanța cu htop și atop în Linux
sudo apt install htop atop -y # Ubuntu și Debian
sudo dnf install htop atop -y # AlmaLinux (atop din EPEL: dnf install epel-release)
sudo systemctl enable --now atop # pornește înregistrarea istoricului
htop: ecranul și cum îl citiți
Partea de sus
- Barele de procesor, una pe nucleu: verde pentru procese normale, roșu pentru nucleu (kernel), albastru pentru procese cu prioritate redusă, portocaliu sau gri pentru timp furat (steal) pe servere virtuale. Roșu mult înseamnă că sistemul lucrează pentru sine (I/O, rețea), nu pentru aplicații; steal mult înseamnă că furnizorul de server virtual vinde mai mult decât are.
- Bara de memorie: verde pentru memorie folosită de procese, albastru pentru buffere, portocaliu pentru cache. Doar verdele este „ocupat” cu adevărat; cache-ul se eliberează la nevoie. Un server cu 90% memorie din care 60% cache este sănătos.
- Bara de swap: orice folosire constantă a swap-ului cu memorie liberă mică înseamnă că serverul are prea puțină memorie pentru ce rulează.
- Load average: media proceselor care așteaptă procesor sau I/O în ultimele 1, 5 și 15 minute. Se raportează la numărul de nuclee: 4,0 pe un server cu 4 nuclee este plin; pe unul cu 16, e relaxat. Tendința contează: 1 minut mult peste 15 minute înseamnă o problemă care abia a început.
- Uptime și numărul de sarcini: sarcini multe în stare „running” pe un server cu puține nuclee explică încărcarea.
Lista de procese
Coloanele implicite: PID, utilizatorul, prioritatea, memoria virtuală (VIRT, nerelevantă în general), memoria rezidentă (RES, cea care contează), memoria partajată, starea (R rulează, S doarme, D așteaptă I/O, Z zombie), procentul de procesor, procentul de memorie, timpul de procesor consumat și comanda. Tastele pe care le folosim constant:
- F6 sau clic pe antet: sortare după coloană; P după procesor, M după memorie, T după timp.
- F5: arborele proceselor, ca să vedeți ce a pornit ce (un php-fpm cu 40 de copii, un cron care a lansat un script).
- F4: filtru după text; „php” arată doar procesele PHP.
- u: procesele unui singur utilizator, de bază pe servere cu mai multe conturi.
- F9: trimite un semnal (15 pentru oprire curată, 9 pentru forțată) procesului selectat.
- l (litera): fișierele deschise de proces; s: apelurile de sistem în timp real (cere strace).
- H: ascunde firele de execuție, ca un proces cu 50 de fire să apară o dată.
- F2: configurarea ecranului; adăugați coloana IO_RATE pentru citire și scriere pe disc per proces.
Un proces în starea D, cu procesor mic și încărcare mare, așteaptă discul sau rețeaua: serverul nu e ocupat, e blocat. Un proces zombie (Z) e inofensiv individual, dar sute de zombie indică un părinte care nu își culege copiii.
atop: același lucru, plus istoric
atop arată, la fiecare interval (10 secunde implicit), starea întregului sistem și a proceselor, cu o diferență de bază: înregistrează totul într-un fișier zilnic în /var/log/atop/, iar fișierul se poate derula înapoi. Când un client spune că site-ul a fost jos la 3:10, deschidem atop pe fișierul zilei și mergem la 3:10.
atop # în timp real
atop -r /var/log/atop/atop_20260908 # istoricul zilei de 8 septembrie
atop -r /var/log/atop/atop_20260908 -b 03:00 -e 03:30 # doar intervalul
În modul de citire, tasta t avansează un interval, T merge înapoi, b sare la o oră (introduceți ora). Ecranul de sus arată, pe rânduri: procesor (CPU, cu sys, user, irq, idle, wait), încărcare (CPL), memoria (MEM și SWP), fiecare disc (DSK, cu procentul de ocupare busy și timpul mediu de acces avio) și fiecare interfață de rețea (NET). Culorile marchează resursele saturate: roșu pe un rând DSK cu busy peste 90% spune că discul a fost limita, indiferent de ce arată procesorul.
Ce arată atop și htop nu
- I/O pe disc per proces, fără configurare: tasta d ordonează procesele după citire și scriere.
- Procesele care au rulat și s-au terminat în interval, inclusiv cele scurte; htop le ratează.
- Consumul pe utilizator (tasta u) și pe program (tasta p), agregat: câte resurse au consumat toate procesele php-fpm împreună.
- Rețeaua per proces, dacă modulul netatop este instalat.
- Istoricul: singura cale de a analiza o problemă care nu se repetă la comandă.
Cazuri de pe servere web
Încărcare mare, procesor liber
Load average 8 pe 4 nuclee, dar barele de procesor la 20%. În htop, procese în starea D; în atop, rândul DSK roșu cu busy 95% și avio peste 20 ms. Diagnostic: discul. Cauzele obișnuite: o copie de siguranță în timpul zilei, o interogare care scanează o tabelă mare, jurnale scrise în exces, sau un disc lent la furnizor. Cu tasta d în atop vedeți procesul; cu istoricul, ora la care a început.
Memorie plină, swap în creștere
Bara de memorie verde aproape complet, swap folosit și în creștere, iar în lista sortată după memorie, 60 de procese php-fpm cu 80 MB fiecare. Diagnostic: bazinul PHP-FPM are prea mulți copii pentru memoria serverului. Remediu: pm.max_children calculat ca memoria disponibilă pentru PHP împărțită la memoria medie pe proces (RES), nu o valoare ghicită. Aceeași logică se aplică la MySQL (buffer pool) și la orice serviciu cu procese multiple; contextul de configurare este în ghidul despre instalarea LAMP pe Ubuntu.
Un proces la 100% pe un nucleu, permanent
Un singur proces cu 100% procesor, ore în șir: un script blocat într-o buclă, un cron suprapus cu el însuși, sau un miner de criptomonede după o compromitere. Comanda completă din htop (tasta F4 nu, ci lățirea coloanei cu săgeți) și fișierele deschise (l) spun ce este. Un proces cu nume de sistem rulat de utilizatorul unui site este aproape sigur malware; pașii următori sunt în ghidul despre răspunsul la incidente.
Vârfuri de noapte pe care nu le vede nimeni
atop -r pe fișierul zilei, cu b 02:00, apoi t interval cu interval: la 3:00 pornește mysqldump, la 3:05 discul e saturat, la 3:08 procesele php-fpm intră în D, la 3:15 totul revine. Remediu: mutarea copiei sau limitarea ei cu nice și ionice, așa cum arătăm în ghidul despre copiile de siguranță cu cron și rsync.
Alte unelte din aceeași familie
- top: preinstalat peste tot, fără culori și fără derulare, dar suficient pentru un server pe care nu puteți instala nimic; tastele 1 (nuclee), M (sortare după memorie), P (după procesor) acoperă esențialul.
- iotop: doar I/O per proces, în timp real; util când atop nu este instalat.
- vmstat 1 și iostat -x 1: valori pe secundă pentru memorie, swap, I/O și disc, în text simplu, potrivite pentru copiat într-un tichet.
- ss -s și ss -tnp: conexiunile de rețea, când suspectați că limita este rețeaua sau un număr mare de conexiuni deschise.
- glances și btop: alternative moderne la htop, cu grafice; utile pe stația de lucru, mai puțin necesare pe server.
Cum stabiliți o linie de bază
Valorile au sens doar prin comparație cu normalul serverului. În prima săptămână de funcționare, notați din atop încărcarea medie, memoria folosită fără cache, procentul de ocupare a discului și traficul de rețea la orele de vârf și la orele liniștite. Aceste cifre sunt referința; un load average de 3 poate fi normal pe un server și alarmant pe altul. Când un client raportează încetinire, prima întrebare este „față de ce?”, iar linia de bază răspunde. Repetați măsurătoarea după fiecare schimbare majoră (versiune nouă de PHP, modul de cache, creștere de trafic), ca referința să rămână actuală.
Ce valori cer intervenție
- Load average pe 15 minute peste numărul de nuclee, în mod repetat.
- Swap în creștere cu memorie liberă (fără cache) sub 10%.
- Disc busy peste 80% mai mult de câteva minute, în afara copiilor programate.
- Steal peste 5-10% pe servere virtuale: discutați cu furnizorul sau mutați.
- Procese în D care persistă între intervale.
- Un utilizator de site cu procese pe care nu le recunoașteți.
htop și atop sunt pentru diagnostic; pentru alerte automate aveți nevoie de un sistem de monitorizare care citește aceleași valori și trimite mesaje când pragurile sunt depășite. Dar înainte de orice grafic, cele două unelte vă spun în două minute dacă problema e procesorul, memoria, discul sau rețeaua, iar restul depanării, de la jurnale la servicii, continuă cu journalctl și cu comenzile de bază pentru administratori. Pe conturile de găzduire partajată, fără acces la server, echivalentul este unealta Resource Usage, descrisă în ghidul despre monitorizarea resurselor în cPanel.
Surse
- Documentația Ubuntu Server: instalarea pachetelor și administrarea serviciilor pe server.
- Documentația nucleului Linux: semnificația stărilor proceselor, a încărcării și a contoarelor din /proc pe care le citesc htop și atop.
Cum a fost realizat acest articol
- Autor
- Dorel Tănase
- Publicat
- 11 august 2025
- Ultima actualizare
- 18 septembrie 2026
- Surse
Lucrăm după principiile noastre de publicare, politica pentru corectare, politica pentru etică.

