Swap failo kūrimas Linux VPS — žingsnis po žingsnio
Paleiskite serveryje viena komanda (pirmiausia patikrinkite skripto turinį žemiau):
curl -sSL https://cp.lv/scripts/nastrojka-swap-vps.sh | sudo bash…arba su wget:
wget -qO- https://cp.lv/scripts/nastrojka-swap-vps.sh | sudo bashSkripto turinys 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 — tai failas arba skirsnis diske, kurį sistema naudoja kaip „atsarginę“ atmintį, kai baigiasi operatyvioji. VPS serveryje paprasčiausia sukurti swap failą: komandos fallocate, mkswap ir swapon užtruks porą minučių. Aptarsime procesą ir nustatymus.
Kam reikalingas swap
Swap nepakeičia operatyviosios atminties (jis kelis kartus lėtesnis), bet apsaugo nuo avarinio procesų nutraukimo piko metu. Branduolys iškelia į swap retai naudojamus atminties puslapius ir taip atlaisvina RAM aktyvioms užduotims. Ypač naudinga planuose su nedideliu atminties kiekiu.
1 žingsnis. Patikrinkite esamą swap
sudo swapon --show
free -h
Jei swapon išvestis tuščia — swap dar nesukonfigūruotas.
2 žingsnis. Sukurkite swap failą
Sukurkite reikiamo dydžio failą. Pavyzdžiui, 2 GB:
sudo fallocate -l 2G /swapfile
Jei fallocate neprieinamas, naudokite dd:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
Apribokite teises, kad failą skaitytų tik root:
sudo chmod 600 /swapfile
3 žingsnis. Suformatuokite ir įjunkite
Sužymėkite failą kaip swap ir aktyvuokite:
sudo mkswap /swapfile
sudo swapon /swapfile
Patikrinkite, ar swap atsirado:
sudo swapon --show
free -h
4 žingsnis. Įjunkite automatinį paleidimą
Kol kas swap veiks tik iki perkrovimo. Kad jis prisijungtų automatiškai, pridėkite įrašą į /etc/fstab:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Patikrinkite, ar eilutė pridėta teisingai:
grep swapfile /etc/fstab
5 žingsnis. Nustatykite swappiness
Parametras vm.swappiness (0–100) nurodo, kaip noriai branduolys naudoja swap. Serveryje jį paprastai sumažina iki 10, kad swap būtų įjungiamas tik realiai trūkstant RAM:
sudo sysctl vm.swappiness=10
Kad reikšmė išliktų po perkrovimo:
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.conf
Kiek swap kurti
| Operatyvioji atmintis | Rekomenduojamas swap |
|---|---|
| iki 2 GB | lygus RAM kiekiui |
| 2–8 GB | lygus RAM kiekiui |
| daugiau nei 8 GB | pakanka 2–4 GB |
Tai orientyras, o ne griežta taisyklė: duomenų bazei swap geriau laikyti nedidelį, kad išvengtumėte našumo degradacijos.
Kaip pašalinti swap
Jei swap nebereikalingas:
sudo swapoff /swapfile
sudo rm /swapfile
Tada pašalinkite atitinkamą eilutę iš /etc/fstab.
Dažni klausimai
Ar swap sulėtins serverio darbą? Swap diske yra dešimtis kartų lėtesnis už RAM. Kol duomenys swap srityje naudojami retai — poveikio beveik nėra. Nuolatinis aktyvus darbas su swap reiškia atminties trūkumą — verta pridėti RAM.
Swap failas ar swap skirsnis? VPS serveryje patogiau failas: jį lengva sukurti, pakeisti dydį ir ištrinti neperskirstant disko. Skirsnio reikia retai.
Kokį swappiness pasirinkti serveriui? Paprastai 10 — swap įsijungia tik realiai trūkstant atminties. Reikšmė 60 (numatytoji) serveriams su duomenų bazėmis pernelyg agresyvi.
Ar galima sukurti swap VPS su SSD? Taip. NVMe/SSD diske swap veikia greičiau nei HDD, bet vis tiek lėčiau už RAM. Nuolatinio intensyvaus naudojimo geriau vengti, kad nedėvėtumėte disko.
Apibendrinimas
Swap failas — paprastas draudimas nuo atminties trūkumo esant apkrovai. Sukurkite jį per fallocate, įjunkite swapon, įrašykite į fstab ir nustatykite swappiness=10. Jei swap naudojamas nuolat — tai signalas pereiti prie plano su didesniu RAM kiekiu.
Reikia daugiau atminties? Pasirinkite planą skyriuje Linux VPS, užsisakykite VPS nuomą arba Serverių administravimą.