Guide

Swap su un VPS: quando serve e come configurarlo senza rallentare il disco

Come creare un file di swap su Ubuntu, quale dimensione scegliere in base alla RAM e perché abbassare vm.swappiness su un VPS con SSD.

Redazione UptimeMag · 17 ottobre 2026 · 3 minuti di lettura

Swap su un VPS: quando serve e come configurarlo senza rallentare il disco

Su un VPS con poca RAM lo swap evita che l'OOM killer chiuda processi quando la memoria finisce. Su un VPS con SSD, però, uno swap troppo aggressivo peggiora i tempi di risposta invece di proteggerli: il disco, anche se veloce, resta ordini di grandezza più lento della RAM. La guida qui sotto copre dimensionamento, creazione, parametro di swappiness e verifica.

Quanto swap serve, in base alla RAM

Le indicazioni più citate per sistemi server (non desktop, quindi senza ipotesi di ibernazione) sono queste:

RAM del VPS Swap consigliato
Meno di 2 GB 2 volte la RAM
Da 2 a 8 GB Pari alla RAM
Oltre 8 GB Almeno 4 GB

Su un server, a differenza di un desktop, non serve dimensionare lo swap per l'ibernazione: la raccomandazione pratica per un ambiente server è di non superare qualche GB, perché oltre una certa soglia il sistema sta solo rallentando invece di guadagnare margine reale. Se il VPS esaurisce costantemente anche 4-8 GB di swap, il problema non si risolve allargando il file: va aumentata la RAM del piano.

Creare e attivare il file di swap

Su Ubuntu, con utente root o sudo:

# crea un file di swap da 2 GB (adatta la dimensione)
sudo fallocate -l 2G /swapfile

# permessi: solo root deve poterlo leggere
sudo chmod 600 /swapfile

# formatta come area di swap
sudo mkswap /swapfile

# attiva lo swap
sudo swapon /swapfile

Se il filesystem non supporta fallocate (succede con alcuni btrfs), si usa dd:

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

count=2048 con blocchi da 1M produce un file da 2 GB; per 4 GB si usa count=4096.

Per rendere lo swap persistente al riavvio, va aggiunta una riga a /etc/fstab:

/swapfile none swap sw 0 0

vm.swappiness: perché abbassarlo su SSD

Il parametro vm.swappiness dice al kernel quanto preferire lo swap rispetto a liberare la cache filesystem. Il valore di default su quasi tutte le distribuzioni è 60. Fino al kernel 5.8 il range ammesso era 0-100; da kernel 5.8 in poi il range è stato esteso a 0-200, con 100 come punto di pareggio in cui il costo di I/O su swap e su filesystem vengono considerati equivalenti. Su kernel più vecchi un valore sopra 100 viene respinto con errore: su un VPS con immagine datata (es. Ubuntu 20.04, kernel 5.4) va verificato prima di impostarlo.

Su un server con SSD, dove l'obiettivo è tenere i processi attivi in RAM il più possibile, ha senso abbassare il valore a 10-30, invece di lasciare il default pensato per workload desktop generici.

Comandi:

# verifica il valore attuale
cat /proc/sys/vm/swappiness

# imposta un valore temporaneo (fino al riavvio)
sudo sysctl -w vm.swappiness=10

# rendilo permanente
echo "vm.swappiness = 10" | sudo tee /etc/sysctl.d/99-swappiness.conf
sudo sysctl -p /etc/sysctl.d/99-swappiness.conf

Verificare che lo swap sia attivo e quanto viene usato

# mostra dispositivi di swap attivi e quanto è occupato
swapon --show

# panoramica di RAM e swap
free -h

# contenuto grezzo, stessa info di swapon
cat /proc/swaps

Se swapon --show non restituisce nulla, lo swap non è attivo: va controllato che il file esista, abbia i permessi 600 e sia stato effettivamente attivato con swapon. Se il campo "Used" in free -h cresce costantemente anche con RAM libera, il problema più probabile non è la dimensione dello swap ma un valore di swappiness troppo alto per il carico del server.

Testo redatto con il supporto dell'intelligenza artificiale e verificato dalla redazione (AI Act, art. 50).