Diagnosticiranje visoke obremenitve na VPS-u
Uporaba htop, top in iotop-c za iskanje krivega procesa
Ko vaš VPS začne zaostajati – SSH se zdi zakasnjen, spletne strani se odzivajo počasi ali celo tipkanje v terminalu se zdi počasno – to običajno pomeni, da so eden ali več sistemskih virov (CPU, RAM ali disk I/O) potisnjeni do svojih meja. Ta vodnik vas vodi skozi praktičen, korak za korakom proces, da ugotovite, kaj se dogaja in kateri proces je kriv, z uporabo treh standardnih Linux orodij: htop, top in iotop-c.
Predpostavlja se, da je občinstvo začetni do srednje napredni sistemski administratorji, ki so seznanjeni z ukazno vrstico in osnovnimi koncepti Linuxa.
Prvi korak: Vedeti, kaj "visoka obremenitev" dejansko pomeni
Mnogi ljudje vidijo visoko "povprečno obremenitev" in paničarijo – vendar niso vse visoke obremenitve slabe. Počistimo to.
Kaj je "povprečna obremenitev"?
"Povprečna obremenitev" vam pove, koliko procesov čaka na CPU v določenem trenutku. Prikazana je kot tri številke (za zadnjih 1, 5 in 15 minut).
Primer: uptime
Izhod:
17:41:25 up 2 days, 3:45, 1 user, load average: 2.34, 1.89, 1.42
Interpretacija:
- 2.34 – povprečna obremenitev v zadnji minuti
- 1.89 – v zadnjih 5 minutah
- 1.42 – v zadnjih 15 minutah
Zdaj primerjajte te številke s svojo številom CPU jeder. Če imate 2 jedra:
- Obremenitev okoli 2.0 pomeni, da sta oba CPU-ja popolnoma uporabljena – sistem je zaposlen, vendar v redu.
- Obremenitev veliko višja od 2.0 (kot 3 ali 4) pomeni, da je vrsta – preveč procesov čaka.
Preverite, koliko jeder imate:
nproc
Če je obremenitev ≫ število jeder za daljši čas, je čas za preiskavo.
Drugi korak: Hitro pregledovanje z htop
htop je najlažji način za vizualizacijo, kaj se dogaja znotraj vašega VPS v realnem času.
Namestite htop
Uporabite ukaz, primeren za vašo distribucijo Linuxa, da ga namestite:
sudo apt install htopza Ubuntu/Debiansudo yum install htopza CentOS/RHEL
Zaženite ga
Zaženite ukaz htop. Videli boste barvit vmesnik, kot je ta:

Razumevanje postavitve
- Zgornje vrstice prikazujejo uporabo CPU, pomnilnika in swap-a v realnem času.
- Povprečna obremenitev je vidna v zgornjem desnem kotu.
- Seznam procesov prikazuje, kaj se izvaja in koliko CPU in RAM-a uporablja vsak proces.
Nasveti za navigacijo
- Razvrsti po uporabi CPU: pritisnite F6, nato izberite "PERCENT_CPU"
- Razvrsti po pomnilniku: pritisnite F6, izberite "PERCENT_MEM"
- Pogled drevesa (prikaži nadrejene/podrejene procese): pritisnite F5
- Ubij proces: označite ga – pritisnite F9 – izberite signal (privzeto je 15, "terminate")
- Iskanje procesa: pritisnite F3, vnesite del njegovega imena (npr. "nginx")
Kaj iskati
- Procesi z visokim CPU% – ti porabljajo največ CPU časa.
- Procesi z visokim MEM% – ti porabljajo RAM in lahko prisilijo sistem v swap.
- Če se proces pojavlja na vrhu vsakih nekaj sekund, je morda zanka skripta ali ponovno zagon storitve.
Primer
Zaženite htop. Če vidite nekaj takega:

Jasno je, da msty-local-studio s PID 6346 uporablja več CPU in pomnilnika kot vse ostalo. Zdaj veste, kje se osredotočiti na naslednje preglede.
Tretji korak: Preverite z top
Medtem ko je htop prijazen, je top na voljo na vsakem Linux sistemu – brez potrebe po namestitvi. Je dobra rezerva, ko imate samo SSH dostop do minimalnega okolja.
Zaženite ga
Zaženite ukaz top. Videli boste vmesnik, kot je ta:

Ključne točke
- %Cpu(s) vrstica prikazuje, kam gre CPU čas:
- us – uporabniški procesi
- sy – sistemske/jedrne naloge
- wa – čakanje na I/O (disk)
- %wa (I/O čakanje) nad 10–15% pogosto pomeni ozko grlo diska.
- Povprečna obremenitev in povzetek nalog vam povesta, kako zaseden je sistem.
Uporabne bližnjice na tipkovnici
- Shift + P – razvrsti po CPU
- Shift + M – razvrsti po pomnilniku
- Shift + T – razvrsti po času izvajanja procesa
- 1 – preklopi na uporabo CPU po jedrih
- k – ubij proces (vnesite PID, ko vas vpraša)
- q – izhod iz
top
Kdaj uporabiti top
Uporabite top ko:
htopni nameščen (kot na reševalnem sistemu ali Docker kontejnerju).- Želite lahko orodje, ki prikazuje ravnovesje med CPU in I/O v realnem času.
Četrti korak: Če sta CPU in RAM v redu – Preverite disk I/O z iotop-c
Včasih vse izgleda normalno – uporaba CPU ni visoka, pomnilnik je v redu – vendar se sistem zdi zamrznjen. Ukazi kot ls ali cd visijo nekaj sekund, povprečna obremenitev pa je še vedno visoka. To je klasičen znak I/O čakanja, kjer je CPU neaktiven, vendar čaka na dokončanje diskovnih operacij.
Namestite iotop-c
Uporabite ukaz, primeren za vašo distribucijo Linuxa, da ga namestite:
sudo apt install iotop-cza Ubuntu/Debiansudo yum install iotop-cza CentOS/RHEL
Omogočite spremljanje IO z ukazom:
sudo sysctl kernel.task_delayacct=1
Zaženite ga
Zaženite ukaz kot root uporabnik: sudo iotop-c. Videli boste vmesnik, kot je ta:

Interpretacija
- IO stolpec prikazuje, koliko časa je vsak proces blokiran, ko čaka na I/O.
- Visok IO (npr. 90–100%) – ta proces močno čaka na disk.
- Preverite, ali izvajate varnostne kopije, velike uvoze podatkov ali stiskanje.
Pogosti vzroki za preobremenitev I/O
- Baza podatkov (
mysqld,postgres) izvaja veliko poizvedbo. - Skripte za varnostno kopiranje (
rsync,tar,dd) kopirajo ogromne datoteke. - Dnevniške datoteke, ki nenadzorovano rastejo v
/var/log. - Napačno konfiguriran swap – če sistem začne močno swapati, obremenjuje disk.
Peti korak: Povežite, kar ste našli
Zdaj, ko ste uporabili htop, top in iotop-c, je čas, da sestavite sestavljanko.
| Simptom | Verjetni vzrok | Orodje za preverjanje |
|---|---|---|
| Visoka uporaba CPU | Hroščasta skripta, težek proces | htop, top |
| Visoka uporaba pomnilnika | Puh pomnilnika, preveč delavcev | htop |
| Visoko I/O čakanje, počasni odzivi | Ozko grlo diska, swapanje | iotop-c, top |
| Visoka obremenitev, vendar CPU neaktiven | I/O ali izčrpanje pomnilnika | top, iotop-c |
Prav tako preverite sistemske dnevnike za opozorila:
journalctl -xe
ali:
tail -n 50 /var/log/syslog
Morda boste našli sporočila o napakah jedra, neuspelih priklopih ali procesih, ki jih je ubil OOM (Out Of Memory) killer.
Šesti korak: Ukrepajte
Ko identificirate krivca, se odločite, kaj storiti naprej.
Ponovno zaženite ali ustavite proces
sudo systemctl restart <storitev>
ali, če je potrebno:
sudo kill -9 <pid>
Osvobodite prostor na disku
Če je uporaba diska visoka, uporabite df -h za določitev, kateri particiji očistiti, ali sudo du -sh /var/log/* za določitev, katere dnevnike očistiti.
Zmanjšajte obremenitev procesov
- Omejite cron naloge, da se ne izvajajo hkrati.
- Prilagodite omejitve poizvedb v bazi podatkov ali predpomnjenje.
- Zmanjšajte število delavcev v Nginx, Apache ali Gunicorn.
Če nič ne pomaga – nadgradite vire
Če nenehno dosegate meje tudi z optimiziranimi delovnimi obremenitvami, je čas, da dodate več CPU, RAM-a ali preklopite na hitrejše shranjevanje (npr. SSD na NVMe).
Sedmi korak: Preprečevanje in neprekinjeno spremljanje
Ne bi smeli ročno prijavljati in preverjati obremenitve vsakič. Lahko nastavite spremljanje in opozorila z orodji, kot so: glances, netdata, prometheus, itd.
Hitri referenčni ukazi
| Cilj | Ukaz |
|---|---|
| Pokaži povprečno obremenitev | uptime |
| Vizualno prikaži obremenitev CPU/pomnilnika | htop |
| Minimalni pogled procesov | top |
| Spremljaj diskovno aktivnost | iotop-c |
| Ogled dnevnikov | journalctl -xe |
Primer iz resničnega sveta: Pobegli skript za varnostno kopiranje
Povežimo vse skupaj s pravim scenarijem.
Situacija
- VPS z 2 CPU jedroma in SSD shranjevanjem
- Naenkrat se zdi zelo počasen – zakasnitev SSH, spletne strani potečejo
uptimeprikazuje: povprečna obremenitev: 8.5, 7.3, 6.9 – preveč visoko za 2 jedra.
Preiskava
- Zaženite
htop: Uporaba CPU je nizka – le 10–15%. Uporaba pomnilnika je v redu. Torej ni CPU vezano. - Zaženite
top: %wa = 40% – sistem čaka na disk I/O. - Zaženite
iotop-c:
Bingo – skript za varnostno kopiranje, ki stiska ogromno mapo neposredno na disku.
Popravek
- Ustavite ali prestavite varnostno kopiranje, da se izvaja ponoči.
- Stisnite v
/tmp(v pomnilniku) preden premaknete na disk. - Uporabite
ioniceza zmanjšanje njegove diskovne prioritete.
Rezultat
Delovanje VPS se takoj vrne v normalno stanje.
Končne misli
Diagnoza visoke obremenitve ni čarovnija – gre za sistematično preverjanje CPU, pomnilnika in diska enega za drugim. Uporabite svoja orodja kot detektiv:
- Ali je CPU maksimalno obremenjen? –
htop,top - Ali je pomnilnik poln ali swap? –
htop,top - Ali je disk preobremenjen? –
iotop-c - Dnevniki to potrjujejo? –
journalctl
Ko identificirate krivi proces, se lahko odločite: prilagodite ga, ubijte ga ali ga bolje načrtujte. Sčasoma boste začeli prepoznavati vzorce – proces z visoko obremenitvijo, preveč cron nalog ali napačno konfigurirano spletno aplikacijo. Takrat prenehate z gašenjem požarov in začnete upravljati kot pravi sistemski administrator.