CPU je na 100%
Kako da nađeš proces koji jede CPU jezgra, razlikuješ pravo opterećenje od čekanja na disk i odlučiš da li da popraviš kod ili pređeš na viši tier.
Ažurirano 23. avgust 2026.
Ravan deo na grafiku procesora u kartici „Pregled” nije sam po sebi vanredna situacija: kompajliranje projekta ili pravljenje arhive će iskreno iskoristiti sva jezgra i onda ih osloboditi. Alarmantno je kada ravan deo potraje satima i mašina prestane da reaguje. Hajde da otkrijemo šta je krivac.
Korak 1. Vidi šta troši resurse
Kartica „Ekran” (VNC) je zgodna za rad sa programima preko celog ekrana:
btop
htop
Serijska konzola ne prenosi veličinu prozora; tamo je uvek 80×24, pa će interfejs biti odsečen. Za tekstualnu konzolu koristi standardne komande:
top -b -n1 | head -20
ps aux --sort=-%cpu | head -10
Zapamti aritmetiku: %CPU se računa po jezgru. 400% na VDS-3 znači sva četiri jezgra, dok je 100% na VDS-4 samo jedno od šest.
Korak 2. Razlikuj procesor od diska
Prosečno opterećenje (load average) raste i zbog čekanja na ulaz/izlaz, ne samo zbog računanja:
uptime
vmstat 1 5
U izlazu vmstat obrati pažnju na kolone us (korisnički kod), sy (jezgro), wa (čekanje na disk) i st (ukradeno vreme). Veliko wa znači da procesor dangubi čekajući disk — usko grlo je brzina upisa, a ne računanje. Ravan deo na disku na našim paketima određuje pravilo: upis 60 MB/s po jezgru, ne manje od 60 i ne više od 400 MB/s, čitanje je duplo brže, a burst tri puta iznad ravni traje 30 sekundi. Ako zadatak piše neprekidno, burst će se završiti i udarićeš u ravan deo.
Korak 3. Istraži konkretan proces
pidstat -p <pid> 1 5
cat /proc/<pid>/status
journalctl -u <service> -n 100 --no-pager
Česti nalazi:
- veb aplikacija se vrti u beskonačnoj petlji posle neuspešnog zahteva;
- baza podataka izvršava upit bez indeksa — proveri njen sopstveni dnevnik sporih upita;
- cron zadatak se pokreće češće nego što može da se završi, pa se instance gomilaju:
ps aux | grep <name>će pokazati desetak kopija; - miner koji je dospeo na mašinu preko slabe root lozinke. Znak je proces sa besmislenim imenom koji radi pod nestandardnim korisnikom i visokim odlaznim saobraćajem. U tom slučaju je lakše reinstalirati mašinu iz kartice „Pristup” nego je čistiti.
Korak 4. Ograniči, ne ubijaj
Ako je proces potreban ali ne sme da smeta ostalima:
renice -n 15 -p <pid>
systemctl set-property myapp.service CPUQuota=200%
CPUQuota=200% su dva puna jezgra. systemd ograničenje preživljava restart servisa; renice ne.
Pre nego što ubiješ proces sa
kill -9, probaj običansystemctl stop. Prisilno ubijanje baze podataka košta te pokvarenih fajlova i dugog oporavka pri sledećem pokretanju.
Kada nije kriv kod
Ako je opterećenje legitimno i stalno, procesor Ryzen 9 7950X radi svoj posao — jednostavno nema dovoljno jezgara za zadatak. Paket može da se menja samo naviše, uz doplatu za preostale dane plaćenog perioda: pogledaj članak Nadogradnja paketa i plaćanje razlike. Vraćanje na niži paket nije dostupno, pa prvo na grafiku za nedelju i mesec proveri da ravan deo nije jednokratna pojava.