Skip to content
VDS · Rešavanje problema

Server je spor: odakle početi

Petominutna dijagnostička procedura: CPU, memorija, disk, mreža — kako da sa nekoliko komandi utvrdiš šta tačno pravi usko grlo i šta dalje.

Ažurirano 23. avgust 2026.

„Sve je sporo” nije dijagnoza. Postoje samo četiri uska grla: CPU, memorija, disk i mreža. Ispod je redosled provera koji za pet minuta ukazuje na jedno od njih.

Korak 1: šira slika

uptime
free -h
df -h

Tri komande odmah isključuju pola opcija. Ako je prosečno opterećenje primetno veće od broja jezgara na tvom rangu, postoji red čekanja — vidi Prosečno opterećenje. available blizu nule znači memorija. Ako je particija 100% puna, ne traži dalje — pročitaj Nema mesta na disku.

Korak 2: šta je tačno usko grlo

vmstat 2 5

Gledaj kolone sa prosekom, sve osim prvog reda:

  • visok us i sy, veliko r — CPU je usko grlo;
  • visok wa, veliko b — disk je usko grlo;
  • si i so različiti od nule — dolazi do svopovanja, što znači da memorija ponestaje;
  • visok st — vreme koje uzima hipervizor, to je spoljni uzrok, obrati se podršci.

Korak 3: pronađi krivca

ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10
iotop -boPan 3 | head -20        # apt install iotop
ss -tn state established | wc -l

Uživo sliku je lakše čitati u htop ili btop. Pazi na procese u stanju D — oni čekaju na disk i podižu opterećenje.

Ako je krivac tvoja aplikacija, sledeće pitanje se odnosi na nju: spori upiti ka bazi, indeks koji nedostaje, previše radnika, beskonačna petlja posle deploya. Poveži trenutak kada je usporavanje počelo sa logom:

journalctl --since "1 hour ago" -p warning

Korak 4: proveri istoriju

Otvori „Overview” u panelu /hosting/vds/m/<id> i pogledaj grafike za poslednji dan i nedelju. Tri tipična obrasca:

  • skok u određenom trenutku — nešto se promenilo: deploy, ažuriranje, novi cron posao;
  • redovan pik po rasporedu — pozadinski zadatak; prebaci ga na noć ili ga ograniči sa nice i ionice;
  • ravan plato nedeljama — jednostavno si prerastao svoj rang.

Šta uraditi sa otkrićem

Usko grloBrza akcijaDugoročno rešenje
CPUpronađi i zaustavi dodatni procesrang sa više jezgara
Memorijaograniči radnike i bafere baze, dodaj svoprang sa više memorije
Diskograniči bekape sa ionice, smanji logoveviši rang: plato raste sa brojem jezgara
Mrežaograniči pozadinska preuzimanja sa --bwlimitistraži izvor saobraćaja

Plato diska se računa ovako: 60 MB/s upisa po jezgru, ne niže od 60 i ne više od 400, a čitanja duplo više. Ako si stalno na platou, disk neće postati brži bez prelaska na viši rang — vidi Benchmark.

Česte greške

  • Odmah restartuj mašinu. Restart briše sliku, a za sat sve će se ponoviti. Prvo prikupi brojke.
  • Veruj jednom snimku. Skok u trenutku kada pokreneš htop ništa ne znači — gledaj minut.
  • Tretiraj punu memoriju kao problem. Gledaj available i svop, ne free.
  • Menjaj rang bez da razumeš uzrok. Curenje memorije ili skripta u petlji preseliće se na novi rang zajedno sa tobom. Povratak na niži rang nije podržan.

Ako su CPU, memorija i disk mirni, a aplikacija je spora, usko grlo je van mašine: spori spoljni API, DNS ili mreža klijenta. Proveri curl -w '%{time_total}\n' -o /dev/null -s na adresu koja ti treba.