Dijagnosticiranje visokog opterećenja na VPS-u | INTROSERV
EUR
european

EUR

usa

USD

Croatia Hr
Ex. VAT Ex. VAT 0%

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.

Info

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 htop za Ubuntu/Debian
  • sudo yum install htop za CentOS/RHEL

Pokrenite ga

Pokrenite naredbu htop. Vidjet ćete šareno sučelje poput ovog:

htop sučelje koje prikazuje CPU trake, trake memorije i popis procesa

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:

htop prikazuje msty-local-studio proces na vrhu koji troši visok CPU i memoriju

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:

top sučelje koje prikazuje sažetak sustava i popis procesa

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:

  • htop nije 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-c za Ubuntu/Debian
  • sudo yum install iotop-c za 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:

iotop-c sučelje koje prikazuje disk I/O aktivnost po procesu

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
  • uptime pokazuje: prosjek opterećenja: 8.5, 7.3, 6.9 – previše visoko za 2 jezgre.

Istraga

  1. Pokrenite htop: Korištenje CPU-a je nisko – samo 10–15%. Korištenje memorije je u redu. Dakle, nije CPU-vezano.
  2. Pokrenite top: %wa = 40% – sustav čeka na disk I/O.
  3. Pokrenite iotop-c:
    iotop-c prikazuje skriptu za sigurnosnu kopiju na vrhu s visokim I/O korištenjem

    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 ionice za 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:

  1. Je li CPU maksimalno iskorišten?htop, top
  2. Je li memorija puna ili se koristi swap?htop, top
  3. Je li disk preopterećen?iotop-c
  4. 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.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA