SWAP in Linux

Guida alla creazione e configurazione dello spazio swap su Linux.

SWAP (spazio di swap) è un meccanismo di memoria virtuale in Linux che sposta i dati inattivi dalla RAM al disco (HDD o SSD) per liberare memoria fisica a favore dei processi attivi. Funziona come buffer di emergenza quando la RAM è quasi esaurita, ma l'accesso al disco è decine di migliaia di volte più lento rispetto alla RAM: un utilizzo intensivo dello swap rallenta quindi sensibilmente il sistema.

In Linux, la RAM è suddivisa in pagine. Lo swapping è il processo che copia le pagine meno utilizzate in un'area disco dedicata chiamata swap space (un file o una partizione dedicata). RAM e swap space insieme costituiscono la memoria virtuale totale disponibile per il sistema.

Perché serve lo swap

Lo swap assolve due funzioni principali:

  • Quando il sistema necessita di più memoria di quella disponibile, il kernel sposta le pagine meno utilizzate nello swap, liberando RAM per i processi attivi.
  • Molte pagine caricate dalle applicazioni all'avvio vengono raramente usate in seguito. Il sistema può spostarle nello swap, mantenendo la RAM disponibile per i task più importanti.

Svantaggi dello swap

Il principale svantaggio è la velocità. Le operazioni in RAM avvengono in nanosecondi, quelle su disco in millisecondi — decine di migliaia di volte più lento. Un utilizzo intensivo dello swap produce rallentamenti evidenti.

Nota

Quando le applicazioni dipendono pesantemente dallo swap, le prestazioni calano in modo significativo. In questi casi, valuta di aumentare la RAM. Un'opzione è spostare il progetto su un VPS o un server dedicato più potente, con scalabilità delle risorse flessibile.

Sintomi comuni di carenza di memoria (in particolare per i database):

  • Frequenti errori del sito come «connessione al database non riuscita» (ad es. crash di MySQL)
  • Log contenenti InnoDB: Fatal error: cannot allocate memory for the buffer pool
  • Risposta lenta del server anche con un basso utilizzo della CPU

Anche su SSD, le operazioni di swap passano attraverso il sottosistema disco, aumentando la latenza.

Se il sistema dipende intensamente dallo swap, è un segnale chiaro che occorre aumentare la RAM o ottimizzare l'applicazione. Valuta di passare a un VPS più potente o di migrare su un server dedicato.

Verificare la presenza dello swap

Esegui:

swapon -s

Esempio di output:

Filename                Type        Size    Used    Priority
/swapfile              file        40956   40956   -1

Oppure per una panoramica rapida:

free -m

Esempio di output:

              total        used        free      shared  buff/cache   available
Mem:            488         160           7          40         320         259
Swap:            39          39           0

Se Swap mostra 0 o è assente — è necessario crearlo.

I nostri prodotti e servizi

Hosting WebServizi di hosting affidabili per siti web di qualsiasi dimensione.
Ordina
VPSInfrastruttura cloud flessibile con accesso root completo.
Ordina
Server DedicatiServer dedicati per le massime prestazioni.
Ordina

Creare un file di swap (metodo consigliato)

  1. Crea un file di swap (esempio: 2 GB):
sudo fallocate -l 2G /swapfile

oppure

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
  1. Imposta i permessi corretti (solo root può leggere/scrivere):
sudo chmod 600 /swapfile
  1. Formattalo come swap:
sudo mkswap /swapfile
  1. Attiva il file di swap:
sudo swapon /swapfile
  1. Rendilo permanente — aggiungi a /etc/fstab:
sudo nano /etc/fstab

Aggiungi questa riga alla fine:

/swapfile none swap sw 0 0

Salva (Ctrl+O → Invio → Ctrl+X).

  1. Verifica:
free -h

Facoltativo: regolare la swappiness

swappiness controlla quanto aggressivamente il sistema utilizza lo swap (0–100, valore predefinito 60).

Controlla il valore attuale:

cat /proc/sys/vm/swappiness

Imposta un valore più basso (consigliato per i server: 10–20):

sudo sysctl vm.swappiness=10

Per renderlo permanente, aggiungi a /etc/sysctl.conf:

vm.swappiness=10

Applica:

sudo sysctl -p

Aiuto

Hai domande o ti serve una mano? Scrivici tramite il sistema di ticket — siamo sempre qui per aiutarti!

Hai bisogno di aiuto?I nostri ingegneri ti aiuteranno gratuitamente con qualsiasi domanda in pochi minutiContattaci