Swap-faili loomine Linuxi VPS-is — samm-sammult juhend
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 bashSkripti 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.