htop je interaktiven, barven pregledovalnik tekočih procesov: na enem zaslonu prikaže obremenitev procesorskih jeder in pomnilnika, povprečno obremenitev in procese, s tipkami pa lahko v njem iščeš, filtriraš, razvrščaš ali ustaviš proces. Ta članek ga namesti v AlmaLinux in pregleda njegovo uporabo. Kratko primerjavo top in htop vsebuje članek Spremljanje procesov z ukazoma top in htop.
Opis smo preizkusili v sistemih AlmaLinux 10.2 in 9.8, zaslonske slike so bile posnete na konzoli navideznega računalnika z AlmaLinux 10.
Namestitev
htop ni v lastnih repozitorijih AlmaLinuxa, namestiš ga iz repozitorija EPEL. Če EPEL še ni nastavljen, ga najprej vklopi (podrobno: Namestitev repozitorija EPEL v AlmaLinux):
sudo dnf install epel-release
sudo dnf install htop
Preverjanje:
htop --version
V preizkusu se je v oba sistema namestil htop 3.3.0.
Zagon
htop
Kot navaden uporabnik htop vidi vse procese, ustaviti in prerazvrstiti pa zna le svoje. Če moraš upravljati procese drugega uporabnika (na primer apache ali mysql) ali želiš videti tudi diskovni promet, ga zaženi z ukazom sudo htop.
Zgornji del zaslona
- 0, 1, 2…: po en stolpec za vsako procesorsko jedro. Barve kažejo vrsto porabljenega časa: zelena navadne uporabniške programe, rdeča jedro, modra procese z nizko prioriteto (nice). V podrobnem pogledu CPU pod F2 › Display options (Detailed CPU time) dobita lastno barvo tudi čakanje na disk in na VPS čakanje zaradi virtualizacije (steal).
- Mem: pomnilnik. Zelena je del, ki ga programi dejansko uporabljajo, druge barve (vijolična, modra, oranžna) pa označujejo deljeni pomnilnik, medpomnilnike in predpomnilnik, ki ga sistem po potrebi sprosti. Številka ob stolpcu (na zgornji sliki
602M/1.91G) kaže resnično uporabljeni pomnilnik. - Swp: swap. Če se ves čas polni, je pomnilnika premalo (glej: Zmanjkalo je pomnilnika: OOM killer in datoteka swap).
- Tasks: število procesov in niti ter tistih, ki ravno tečejo (
running). - Load average: 1-, 5- in 15-minutna povprečna obremenitev, glej: Kaj pomeni load v Linuxu?
- Uptime: koliko časa sistem teče.
Stolpci seznama procesov
| Stolpec | Pomen |
|---|---|
PID |
identifikator procesa |
USER |
lastnik procesa |
PRI, NI |
prioriteta in vrednost nice (negativni nice pomeni večjo prednost) |
VIRT |
rezervirani navidezni pomnilnik; ta je lahko zavajajoče velik |
RES |
dejansko uporabljeni fizični pomnilnik, tega je vredno spremljati |
SHR |
del RES, deljen z drugimi procesi |
S |
stanje: R teče, S spi, D čaka na disk, Z zombi |
CPU%, MEM% |
poraba procesorja in pomnilnika; 100 % ustreza enemu celotnemu jedru |
TIME+ |
skupno doslej porabljeni procesorski čas |
Command |
celotna ukazna vrstica |
Vrstice, zapisane z zeleno, so niti programa (na sliki na primer več vrstic NetworkManager). Skriješ jih s tipko H, tako je vsak program naveden le enkrat. Niti jedra preklaplja tipka K.
Najpomembnejše tipke
Poleg funkcijskih tipk na dnu zaslona so na voljo tudi enočrkovni ukazi:
| Tipka | Kaj naredi |
|---|---|
F1 ali h |
pomoč |
F2 ali S |
nastavitve (stolpci, vrstice stolpcev, barve) |
F3 ali / |
iskanje v ukazni vrstici, F3 skoči na naslednji zadetek |
F4 ali \ |
filtriranje: ostanejo le procesi, ki vsebujejo navedeno besedilo |
F5 ali t |
drevesni pogled |
F6 |
izbira stolpca za razvrščanje |
P, M, T |
razvrščanje po procesorju, pomnilniku oziroma času delovanja |
u |
procesi enega uporabnika |
Presledek |
izbira procesa (izbereš jih lahko več, operacije veljajo za vse) |
F7, F8 |
povečanje oziroma zmanjšanje prioritete (nice); povečati jo je mogoče le kot root |
F9 ali k |
pošiljanje signala, torej ustavitev |
Tab |
preklop med zavihkoma Main in I/O |
q ali F10 |
izhod |
Kateri proces požira pomnilnik?
Pritisni tipko M: seznam se razvrsti po stolpcu MEM%, na vrhu je proces, ki porabi največ pomnilnika. Vrnitev na razvrščanje po procesorju: P.
Filtriranje na en program
Po F4 vpiši na primer: php. Seznam takrat pokaže le procese PHP-FPM, podatki v glavi pa še vedno veljajo za celoten sistem. Esc izbriše filter.
Drevesni pogled
V drevesnem pogledu F5 se podrejeni procesi prikažejo zamaknjeno pod nadrejenim. Tako je na primer vidno, h kateremu glavnemu procesu spadajo delovni procesi PHP-FPM ali katera storitev je zagnala sumljivo skripto.
Ustavitev procesa
S puščicami izberi proces, nato pritisni tipko F9. Na levi se prikaže seznam signalov, privzeto z izbranim 15 SIGTERM. Enter pošlje signal.
SIGTERM(15) program prosi za pravilno zaustavitev. Vedno začni s tem.SIGKILL(9) proces takoj prekine, brez shranjevanja in čiščenja. Uporabi ga le, če se program naSIGTERMne odzove.
Sistemske storitve (spletnega strežnika, podatkovne baze, PHP-FPM) ne ustavljaj iz htop, ker jo systemd glede na nastavitev znova zažene ali pusti v nedokončanem stanju. Te upravljaj z ukazom systemctl.
Zavihek I/O
Zavihek I/O, dosegljiv s tipko Tab, za vsak proces prikaže branje in pisanje na disk (DISK READ, DISK WRITE). Te vrednosti se prikažejo le ob sudo htop; kot navaden uporabnik je bil v preizkusu v stolpcih N/A. Če je strežnik počasen in je procesor v glavi malo obremenjen, povprečna obremenitev pa kljub temu visoka, tu poišči, kateri proces dela z diskom.
Zagonska stikala
htop -u apache # le procesi uporabnika apache
htop -p 1234,5678 # le navedeni PID-i
htop -t # zažene se v drevesnem pogledu
htop -s PERCENT_MEM # razvrščeno po pomnilniku
htop -d 50 # osvežitev vsakih 5 sekund (navedeno v desetinkah sekunde)
htop --readonly # ustavljanje in spreminjanje prioritete onemogočeno
htop -C # brez barv (--no-color), če so barve terminala neberljive
htop -M # brez miške (--no-mouse)
Imena stolpcev za razvrščanje našteje htop --sort-key=help. Stikalo --readonly je uporabno, če želi sodelavec le opazovati in noče pomotoma česa ustaviti.
Shranjevanje nastavitev
Nastavitve, spremenjene v meniju F2 (prikazani stolpci, vrstice, skrite niti, razvrščanje), htop ob izhodu shrani v datoteko ~/.config/htop/htoprc in jih ob naslednjem zagonu prebere od tam. Uporabnik root (sudo htop) ima ločeno datoteko nastavitev v imeniku /root/.config/htop/, zato je tam treba nastavitve opraviti znova.
Posodabljanje in odstranitev
htop, nameščen iz EPEL, se posodablja skupaj s sistemom (sudo dnf upgrade). V EPEL ni vedno najnovejša izdaja: novejšo različico, objavljeno na strani razvijalcev na GitHubu, je mogoče prevesti iz izvorne kode, vendar moraš potem tudi posodobitve urejati sam, zato na strežniku priporočamo paket EPEL. Odstranitev:
sudo dnf remove htop
Nastavitve v ~/.config/htop/ takrat ostanejo; če jih ne potrebuješ več, lahko imenik izbrišeš.
Kdaj potrebuješ večji strežnik?
Če htop trajno kaže visoko porabo procesorja ali skoraj poln pomnilnik in to raste skupaj s prometom, je računalnik prerasel svoje vire. Med našimi paketi KVM VPS je mogoče tudi preklopiti, korake opisuje članek Kako povečam vire svojega paketa VPS?. Za dolgoročno opazovanje je namesto htop potrebno orodje, ki meri in riše grafe; o teh piše naš blogovski zapis o nadzoru zmogljivosti VPS.


