Spremljanje procesov z ukazoma top in htop

Linux Branje: 2 min

Če se strežnik odziva počasi, je prvo vprašanje vedno, kaj ga obremenjuje. Ukaza top in htop v realnem času pokažeta tekoče procese in koliko procesorskega časa in pomnilnika porabijo. Oba sta uporabna za odkrivanje podivjane skripte, podatkovne baze, ki zaseda preveč pomnilnika, ali nenadno povečanega obiska.

Ukaz top

top je privzeto na voljo v skoraj vsakem sistemu Linux. Zaženi ga v terminalu:

top

Glava

Zgornji del zaslona prikazuje zbirne podatke:

  • load average: povprečna obremenitev sistema v zadnjih 1, 5 in 15 minutah. O razlagi govori članek Kaj pomeni load v Linuxu?.
  • %Cpu(s): porazdelitev procesorskega časa. us so uporabniški programi, sy jedro, id čas nedejavnosti, wa čakanje na disk, st pa je na VPS čas, ko je navidezni računalnik čakal na fizični procesor.
  • MiB Mem in MiB Swap: skupni, prosti, uporabljeni in kot predpomnilnik (buff/cache) uporabljeni pomnilnik ter swap.

Seznam procesov

Pod njim je seznam procesov, privzeto razvrščen po porabi CPU. Najpomembnejši stolpci: PID (identifikator procesa), USER (lastnik), RES (dejansko porabljeni fizični pomnilnik), %CPU, %MEM, TIME+ (skupno porabljeni procesorski čas) in COMMAND.

Vrednost %CPU procesa lahko preseže 100 %: 100 % ustreza enemu celotnemu procesorskemu jedru, zato lahko proces, ki teče na štirih jedrih, kaže celo 400 %.

Uporabne tipke

  • P: razvrščanje po porabi CPU (privzeto)
  • M: razvrščanje po porabi pomnilnika
  • 1: procesorska jedra vsako posebej
  • c: prikaz celotne ukazne vrstice (na primer katera skripta PHP teče)
  • u: filtriranje na procese uporabnika
  • k: ustavitev procesa z navedbo PID
  • q: izhod

V skripti ali za beleženje top -b -n 1 | head -n 20 v terminal izpiše enkraten posnetek.

Ukaz htop

htop je barvna, preglednejša in udobnejša različica top. Ni povsod nameščen:

# Debian, Ubuntu
sudo apt install htop

# AlmaLinux, Rocky Linux (htop je v repozitoriju EPEL)
sudo dnf install epel-release
sudo dnf install htop

htop obremenitev jeder in pomnilnik prikazuje s stolpci, upravljati ga je mogoče tudi z miško, procese pa s funkcijskimi tipkami:

  • F3: iskanje po imenu
  • F4: filtriranje
  • F5: drevesni pogled, v katerem je vidna tudi povezava med nadrejenimi in podrejenimi procesi
  • F6: izbira merila za razvrščanje
  • F9: pošiljanje signala izbranemu procesu, torej ustavitev

Podrobno razlago zaslona htop, druge tipke in zagonska stikala vsebuje članek Namestitev in uporaba htop v AlmaLinux.

Ustavitev procesa

Pri ustavitvi najprej pošlji „prizanesljivi” signal SIGTERM (15), ki programu omogoči pravilno zaustavitev. Šele če se nanj ne odzove, uporabi signal SIGKILL (9). Iz ukazne vrstice: kill 12345 oziroma v skrajni sili kill -9 12345. Sistemskih storitev, na primer spletnega strežnika ali podatkovne baze, ne ustavljaj tako, temveč jih znova zaženi z ukazom systemctl.

Na kaj paziti?

Če je poraba pomnilnika ves čas blizu največje in se polni tudi swap, strežnik potrebuje več pomnilnika ali pa proces pušča pomnilnik. Če obremenitev trajno raste skupaj s prometom, je smiselno preiti na večji paket KVM VPS. Na deljenem gostovanju cPanel obremenitev svojega računa spremljaš na strani porabe virov CloudLinux.

Nazaj: Linux – članki (76)