Skip to content
VDS · Nadzor i performanse

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:

  • available je manji od 10% od total;
  • Swap used raste i ne oslobađa se;
  • u vmstat 2, si/so su 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 VIRT u htop-u. Virtuelna veličina za JVM, PostgreSQL i Node je ogromna i ne odražava potrošnju. Gledaj RES.

Memoriju treba proveravati pre ispada, a ne posle. Podesi upozorenja po pragu — jednostavan recept je u članku Upozorenja o padu sajta.