Namestitev in uporaba htop v AlmaLinux

Linux Branje: 5 min

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.

Zaslon htop v sistemu AlmaLinux 10: zgoraj stolpci procesorskih jeder, pomnilnika in swapa, ob njih število opravil, povprečna obremenitev in čas delovanja, spodaj seznam procesov

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.

Drevesni pogled htop: pod systemd zamaknjene storitve in njihovi podrejeni procesi

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.

Meni F9 v htop: na levi seznam signalov za pošiljanje, izbran 15 SIGTERM

  • 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 na SIGTERM ne 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.

Nazaj: Linux – članki (76)