Swap-faili loomine Linuxi VPS-is — samm-sammult juhend

19 Mar 2026 Autor: Edgars Kalējs

Käivita serveris ühe käsuga (kontrolli enne skripti sisu allpool):

curl -sSL https://cp.lv/scripts/nastrojka-swap-vps.sh | sudo bash

…või wgetiga:

wget -qO- https://cp.lv/scripts/nastrojka-swap-vps.sh | sudo bash

Skripti sisu nastrojka-swap-vps.sh:

#!/usr/bin/env bash
# Create a 2 GB swap file, enable it at boot via fstab, set swappiness
set -euo pipefail

SWAPFILE=/swapfile
SWAPSIZE=2G

# 1. Create the file (fallocate, falling back to dd)
if ! sudo fallocate -l "$SWAPSIZE" "$SWAPFILE"; then
  sudo dd if=/dev/zero of="$SWAPFILE" bs=1M count=2048
fi
sudo chmod 600 "$SWAPFILE"

# 2. Format it as swap and turn it on
sudo mkswap "$SWAPFILE"
sudo swapon "$SWAPFILE"

# 3. Enable at boot via fstab (only if not listed yet)
if ! grep -q "^${SWAPFILE} " /etc/fstab; then
  echo "${SWAPFILE} none swap sw 0 0" | sudo tee -a /etc/fstab
fi

# 4. swappiness=10 now and after reboot (heredoc into a sysctl.d file)
sudo sysctl vm.swappiness=10
sudo tee /etc/sysctl.d/99-swappiness.conf > /dev/null << 'EOF'
vm.swappiness=10
EOF

sudo swapon --show
free -h
echo "Done: the 2 GB swap file is active, swappiness=10."

Swap on kettal asuv fail või partitsioon, mida süsteem kasutab „varumäluna“, kui muutmälu saab otsa. VPS-is on kõige lihtsam luua swap-fail: käsud fallocate, mkswap ja swapon võtavad paar minutit. Vaatame protsessi ja seadistuse läbi.

Milleks swapi vaja on

Swap ei asenda muutmälu (see on kordades aeglasem), kuid kaitseb protsesside ootamatu lõppemise eest tippkoormusel. Kernel kirjutab swapi harva kasutatavad mälulehed ja vabastab RAM-i aktiivsete ülesannete jaoks. Eriti kasulik on see väikese mälumahuga pakettides.

Samm 1. Kontrolli praegust swapi

sudo swapon --show
free -h

Kui swapon väljund on tühi, siis swapi veel seadistatud ei ole.

Samm 2. Loo swap-fail

Loo vajaliku suurusega fail. Näiteks 2 GB:

sudo fallocate -l 2G /swapfile

Kui fallocate pole saadaval, kasuta käsku dd:

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

Piira õigusi nii, et faili loeks ainult root:

sudo chmod 600 /swapfile

Samm 3. Vorminda ja lülita sisse

Märgi fail swapiks ja aktiveeri:

sudo mkswap /swapfile
sudo swapon /swapfile

Kontrolli, et swap ilmus:

sudo swapon --show
free -h

Samm 4. Lülita sisse automaatkäivitus

Praegu töötab swap ainult kuni taaskäivituseni. Et see ühenduks automaatselt, lisa kirje faili /etc/fstab:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Kontrolli, et rida lisandus korrektselt:

grep swapfile /etc/fstab

Samm 5. Seadista swappiness

Parameeter vm.swappiness (0–100) määrab, kui meelsasti kernel swapi kasutab. Serveris langetatakse see tavaliselt 10 peale, et swap rakenduks ainult reaalse mälupuuduse korral:

sudo sysctl vm.swappiness=10

Et väärtus säiliks pärast taaskäivitust:

echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.conf

Kui palju swapi luua

Muutmälu Soovitatav swap
kuni 2 GB võrdne RAM-i mahuga
2–8 GB võrdne RAM-i mahuga
üle 8 GB 2–4 GB piisab

See on suunis, mitte range reegel: andmebaasi puhul tasub swap hoida väike, et vältida jõudluse langust.

Kuidas swap eemaldada

Kui swapi enam vaja ei ole:

sudo swapoff /swapfile
sudo rm /swapfile

Seejärel kustuta vastav rida failist /etc/fstab.

Korduma kippuvad küsimused

Kas swap aeglustab serveri tööd? Kettal olev swap on RAM-ist kümneid kordi aeglasem. Kuni swapis olevaid andmeid kasutatakse harva, mõju peaaegu puudub. Pidev aktiivne swapi kasutamine tähendab mälupuudust — tasub RAM-i juurde võtta.

Swap-fail või swap-partitsioon? VPS-is on mugavam fail: seda on lihtne luua, suurust muuta ja kustutada ilma ketast ümber jaotamata. Partitsiooni läheb harva vaja.

Millise swappinessi serverile valida? Tavaliselt 10 — swap rakendub ainult reaalse mälupuuduse korral. Vaikimisi väärtus 60 on andmebaasidega serveritele liiga agressiivne.

Kas SSD-ga VPS-is saab swapi luua? Jah. NVMe/SSD peal töötab swap kiiremini kui HDD peal, kuid on siiski RAM-ist aeglasem. Pidevat intensiivset kasutamist tasub vältida, et ketast mitte kulutada.

Kokkuvõte

Swap-fail on lihtne kindlustus mälupuuduse vastu koormuse ajal. Loo see käsuga fallocate, lülita sisse swapon-iga, kirjuta fstab-i ja seadista swappiness=10. Kui swapi kasutatakse pidevalt, on see märk, et tasub minna suurema RAM-iga paketile.

Vajad rohkem mälu? Vali pakett jaotisest Linuxi VPS, vaata hindu jaotisest VPS-i rent või telli Serverite haldus.

Edgars Kalējs