Dijagnosticiranje visokog opterećenja na VPS-u
Korištenje htop, top i iotop-c za pronalaženje krivog procesa
Kada vaš VPS počne zaostajati – SSH se osjeća odgođeno, web stranice reagiraju sporo, ili čak i tipkanje u terminalu izgleda tromo – to obično znači da su jedan ili više sistemskih resursa (CPU, RAM ili disk I/O) dovedeni do svojih granica. Ovaj vodič vas vodi kroz praktičan, korak-po-korak proces kako biste identificirali što se događa i koji je proces kriv, koristeći tri standardna Linux alata: htop, top i iotop-c.
Publika se pretpostavlja da su početnici do srednje napredni sistem administratori upoznati s komandnom linijom i osnovnim Linux konceptima.
Prvi korak: Znajte što zapravo znači "visoko opterećenje"
Mnogi ljudi vide visoki "prosjek opterećenja" i paniče – ali nisu sva visoka opterećenja loša. Razjasnimo ovo.
Što je "prosjek opterećenja"?
"Prosjek opterećenja" vam govori koliko procesa čeka na CPU u određenom trenutku. Prikazuje se kao tri broja (za posljednjih 1, 5 i 15 minuta).
Primjer: uptime
Izlaz:
17:41:25 up 2 days, 3:45, 1 user, load average: 2.34, 1.89, 1.42
Tumačenje:
- 2.34 – prosječno opterećenje u posljednjoj minuti
- 1.89 – u posljednjih 5 minuta
- 1.42 – u posljednjih 15 minuta
Sada usporedite te brojeve s vašim brojem CPU jezgri. Ako imate 2 jezgre:
- Opterećenje oko 2.0 znači da su oba CPU-a potpuno iskorištena – sustav je zauzet, ali u redu.
- Opterećenje znatno veće od 2.0 (poput 3 ili 4) znači da postoji red – previše procesa čeka.
Provjerite koliko jezgri imate:
nproc
Ako je opterećenje ≫ broj jezgri dulje vrijeme, vrijeme je za istragu.
Drugi korak: Brzi pregled s htop
htop je najlakši način za vizualizaciju onoga što se događa unutar vašeg VPS-a u stvarnom vremenu.
Instalirajte htop
Koristite naredbu prikladnu za vašu Linux distribuciju za instalaciju:
sudo apt install htopza Ubuntu/Debiansudo yum install htopza CentOS/RHEL
Pokrenite ga
Pokrenite naredbu htop. Vidjet ćete šareno sučelje poput ovog:

Razumijevanje rasporeda
- Gornje trake prikazuju korištenje CPU-a, memorije i swap-a u stvarnom vremenu.
- Prosjek opterećenja vidljiv je u gornjem desnom kutu.
- Popis procesa prikazuje što se pokreće i koliko CPU-a i RAM-a svaki proces koristi.
Savjeti za navigaciju
- Sortiraj po korištenju CPU-a: pritisnite F6, zatim odaberite "PERCENT_CPU"
- Sortiraj po memoriji: pritisnite F6, odaberite "PERCENT_MEM"
- Prikaz stabla (prikaži roditeljske/dječje procese): pritisnite F5
- Ubij proces: označite ga – pritisnite F9 – odaberite signal (zadano je 15, "terminate")
- Pretraži proces: pritisnite F3, upišite dio njegovog imena (npr. "nginx")
Što tražiti
- Procesi s visokim CPU% – oni troše najviše CPU vremena.
- Procesi s visokim MEM% – oni troše RAM i mogu prisiliti sustav na swap.
- Ako se proces stalno pojavljuje na vrhu svakih nekoliko sekundi, to bi mogao biti skript u petlji ili usluga koja se ponovno pokreće.
Primjer
Pokrenite htop. Ako vidite nešto poput:

Jasno je da msty-local-studio s PID-om 6346 koristi više CPU-a i memorije od svega ostalog. Sada znate gdje usmjeriti svoje sljedeće provjere.
Treći korak: Provjerite s top
Iako je htop prijateljski, top je dostupan na svakom Linux sustavu – nije potrebna instalacija. Dobar je povratak kada imate samo SSH pristup minimalnom okruženju.
Pokrenite ga
Pokrenite naredbu top. Vidjet ćete sučelje poput ovog:

Ključne točke
- %Cpu(s) linija pokazuje gdje ide CPU vrijeme:
- us – korisnički procesi
- sy – sistemske/jezgrene zadaće
- wa – čekanje na I/O (disk)
- %wa (I/O čekanje) iznad 10–15% često znači usko grlo diska.
- Prosjek opterećenja i sažetak zadataka govore vam koliko je sustav zauzet.
Korisne tipke prečaca
- Shift + P – sortiraj po CPU-u
- Shift + M – sortiraj po memoriji
- Shift + T – sortiraj po vremenu izvođenja procesa
- 1 – prebacivanje prikaza korištenja CPU-a po jezgri
- k – ubij proces (unesite PID kada se zatraži)
- q – izađi iz
top
Kada koristiti top
Koristite top kada:
htopnije instaliran (kao na sustavu za spašavanje ili Docker kontejneru).- Želite lagani alat koji prikazuje ravnotežu CPU-a i I/O-a u stvarnom vremenu.
Četvrti korak: Ako CPU i RAM izgledaju u redu – Provjerite disk I/O koristeći iotop-c
Ponekad sve izgleda normalno – korištenje CPU-a nije visoko, memorija je u redu – ali sustav se osjeća zamrznuto. Naredbe poput ls ili cd vise nekoliko sekundi, a prosjek opterećenja je i dalje visok. To je klasičan znak I/O čekanja, gdje je CPU neaktivan, ali čeka da se završe diskovne operacije.
Instalirajte iotop-c
Koristite naredbu prikladnu za vašu Linux distribuciju za instalaciju:
sudo apt install iotop-cza Ubuntu/Debiansudo yum install iotop-cza CentOS/RHEL
Omogućite IO praćenje koristeći naredbu:
sudo sysctl kernel.task_delayacct=1
Pokrenite ga
Pokrenite naredbu kao root korisnik: sudo iotop-c. Vidjet ćete sučelje poput ovog:

Tumačenje
- IO stupac pokazuje koliko je vremena svaki proces blokiran čekajući na I/O.
- Visok IO (npr. 90–100%) – taj proces jako čeka na disk.
- Provjerite pokrećete li sigurnosne kopije, velike uvoze podataka ili poslove kompresije.
Uobičajeni uzroci preopterećenja I/O-a
- Baza podataka (
mysqld,postgres) pokreće veliki upit. - Skripte za sigurnosne kopije (
rsync,tar,dd) kopiraju masivne datoteke. - Log datoteke nekontrolirano rastu u
/var/log. - Pogrešno konfiguriran swap – ako sustav počne intenzivno koristiti swap, to opterećuje disk.
Peti korak: Korelirajte ono što ste pronašli
Sada kada ste koristili htop, top i iotop-c, vrijeme je da sastavite slagalicu.
| Simptom | Vjerojatni uzrok | Alat za provjeru |
|---|---|---|
| Visoko korištenje CPU-a | Greška u skripti, težak proces | htop, top |
| Visoko korištenje memorije | Propuštanje memorije, previše radnika | htop |
| Visoko I/O čekanje, spora reakcija | Usko grlo diska, swap | iotop-c, top |
| Visoko opterećenje, ali CPU neaktivan | I/O ili iscrpljenje memorije | top, iotop-c |
Također, provjerite sistemske logove za upozorenja:
journalctl -xe
ili:
tail -n 50 /var/log/syslog
Možda ćete pronaći poruke o greškama jezgre, neuspjelim montiranjima ili procesima koje ubija OOM (Out Of Memory) killer.
Šesti korak: Poduzmite akciju
Kada identificirate krivca, odlučite što dalje.
Ponovno pokrenite ili zaustavite proces
sudo systemctl restart <service>
ili, ako je potrebno:
sudo kill -9 <pid>
Oslobodite prostor na disku
Ako je korištenje diska visoko, koristite df -h da odredite koju particiju očistiti, ili sudo du -sh /var/log/* da odredite koje logove očistiti.
Smanjite opterećenje procesa
- Ograničite cron poslove tako da se ne pokreću istovremeno.
- Podesite ograničenja upita baze podataka ili keširanje.
- Smanjite broj radnika u Nginx, Apache ili Gunicorn.
Ako ništa ne pomaže – nadogradite resurse
Ako stalno dosežete granice čak i s optimiziranim radnim opterećenjima, vrijeme je da dodate više CPU-a, RAM-a ili pređete na bržu pohranu (npr. SSD na NVMe).
Sedmi korak: Prevencija i kontinuirano praćenje
Ne biste trebali ručno prijavljivati i provjeravati opterećenje svaki put. Možete postaviti praćenje i upozorenja s alatima kao što su: glances, netdata, prometheus, itd.
Brzi referentni naredbe
| Cilj | Naredba |
|---|---|
| Prikaži prosjek opterećenja | uptime |
| Vizualno prikaži opterećenje CPU-a/memorije | htop |
| Minimalni prikaz procesa | top |
| Prati aktivnost diska | iotop-c |
| Pogledaj logove | journalctl -xe |
Primjer iz stvarnog svijeta: Skripta za sigurnosnu kopiju koja je izmakla kontroli
Stavimo sve zajedno s pravim scenarijem.
Situacija
- VPS s 2 CPU jezgre i SSD pohranom
- Odjednom se osjeća vrlo sporo – SSH zaostaje, web stranice istječu
uptimepokazuje: prosjek opterećenja: 8.5, 7.3, 6.9 – previše visoko za 2 jezgre.
Istraga
- Pokrenite
htop: Korištenje CPU-a je nisko – samo 10–15%. Korištenje memorije je u redu. Dakle, nije CPU-vezano. - Pokrenite
top: %wa = 40% – sustav čeka na disk I/O. - Pokrenite
iotop-c:
Bingo – skripta za sigurnosnu kopiju komprimira veliki direktorij izravno na disku.
Rješenje
- Zaustavite ili preuredite sigurnosnu kopiju da se pokreće noću.
- Komprimirajte u
/tmp(u memoriji) prije premještanja na disk. - Koristite
ioniceza smanjenje prioriteta diska.
Rezultat
Performanse VPS-a se odmah vraćaju u normalu.
Završne misli
Dijagnosticiranje visokog opterećenja nije magija – radi se o sistematskom provjeravanju CPU-a, memorije i diska jedan po jedan. Koristite svoje alate kao detektiv:
- Je li CPU maksimalno iskorišten? –
htop,top - Je li memorija puna ili se koristi swap? –
htop,top - Je li disk preopterećen? –
iotop-c - Logovi to potvrđuju? –
journalctl
Kada identificirate krivi proces, možete odlučiti: prilagoditi ga, ubiti ga ili ga bolje rasporediti. S vremenom ćete početi prepoznavati obrasce – proces s visokim opterećenjem, previše cron poslova ili pogrešno konfiguriranu web aplikaciju. Tada prestajete gasiti požare i počinjete upravljati kao pravi sistem administrator.