Memorija i swap: kada je vreme za veći tier
Kako da razlikuješ normalno korišćenje memorije od manjka, zašto je swap potreban na malom tieru i po kojim znacima da odlučiš da pređeš na veći plan.
Ažurirano 23. avgust 2026.
„120 MB slobodno od 2 GB” plaši nove korisnike i na Linuxu ne znači ništa: sistem namerno koristi slobodnu memoriju za keš fajlova, jer je prazna memorija beskorisna. Prava slika se vidi u drugoj koloni.
Kako pravilno čitati free
free -h
# total used free shared buff/cache available
# Mem: 1.9Gi 742Mi 102Mi 18Mi 1.1Gi 1.0Gi
# Swap: 1.0Gi 126Mi 898Mi
Gledaj available — koliko memorije aplikacija može da dobije izbacivanjem keša. Dok je ta vrednost znatno iznad nule, mašina je u redu. free u tom smislu ne služi ničemu.
Znaci upozorenja:
availableje manji od 10% odtotal;Swap usedraste i ne oslobađa se;- u
vmstat 2,si/sosu različiti od nule i stalni — sistem neprekidno svapuje na disk.
Šta tačno jede memoriju:
ps aux --sort=-%mem | head -10
smem -tk -s uss 2>/dev/null | tail -10
Swap: da li je potreban ili ne
Mali swap je koristan na svakom rangu: daje sistemu prostor da prebaci stranice koje se dugo nisu koristile i štiti od toga da proces umre istog trenutka tokom kratkog skoka. On nije zamena za memoriju — disk je stotinama puta sporiji.
Napravi swap fajl od 2 GB:
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
Obuzdaj sistem da ne svapuje tako rado:
sysctl -w vm.swappiness=10
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
Imaj u vidu da swap fajl zauzima prostor na disku ranga (40 GB na VDS-1), a upis u njega troši propusni opseg brzine diska, vidi Opterećenje diska.
Curenje ili nedovoljno memorije
Grafikon memorije u panelu /hosting/vds/m/<id> na nedeljnom nivou pomaže da razlikuješ jedno od drugog:
- Testera — raste do plafona, padne kada se servis restartuje, pa opet raste. To je curenje u aplikaciji; viši rang samo odlaže problem.
- Ravna visoravan na plafonu od samog početka — radni set jednostavno nema dovoljno prostora.
- Oštar pad — OOM killer je ubio proces; vidi članak Nestalo memorije.
Pre nego što promeniš paket, pobrini se za očigledno: ograniči SystemMaxUse za journal, postavi razumne limite za bazu podataka (MySQL po defaultu traži prilično mnogo), ukloni nekorišćene servise (systemctl list-units --type=service --state=running) i smanji broj radnika za PHP-FPM i Gunicorn.
Kada preći na viši rang
Ako posle čišćenja available ostaje blizu nule nedeljama, swap se stalno koristi, a aplikacija ti treba u celini, uzmi viši rang. Memorija raste duž serije 2, 4, 8, 16, 24, 32 GB. Nadogradnje su samo naviše, uz doplatu za preostale dane; smanjenje nije moguće: disk se ne smanjuje. Za detalje vidi članak Nadogradnja paketa.
Česte greške
- Potpuno isključivanje swapa. Tokom skoka sistem će ubiti proces umesto da preživi minut.
- Swap veličine diska. Mašina neće umreti, ali će puzati satima, što je gore od brzog pada.
- Gledanje
VIRTu htop-u. Virtuelna veličina za JVM, PostgreSQL i Node je ogromna i ne odražava potrošnju. GledajRES.
Memoriju treba proveravati pre ispada, a ne posle. Podesi upozorenja po pragu — jednostavan recept je u članku Upozorenja o padu sajta.