Increase Swap EC2

L'utilizzo di applicativi e stack sempre più pesanti impongono l'utilizzo di soluzioni tecnologiche estremanente performanti. L'utilizzo di Magento 2 ad esempio impone diverse tecnologie che ne consentono l'utilizzo ad alti livelli. Un buono stack infatti comprende Redis, Varnish, php-fpm e tutta una serie di altri software che fisicamente utilizzerà risorse come CPU, RAM e memoria.

Un problema riscontrato e che ci dava diverse problematiche era l'esaurimento della memoria a disposizione a causa dei meccanismi di caching di Redis e Varnish. Una soluzione poteva essere cambiare tipologia di istanza e in questo modo avrebbe aumentato di default memoria e swap ma anche i costi sarebbero aumentati.

Siamo però riusciti ad isolare la problematica ed abbiamo visto che al riempirsi della memoria di swap, l'applicazione andava in crash a causa di un sovraccarico del server.

Per aumentare la memoria di swap le soluzioni possono essere 2: 1- Creare uno swap file 2- Creare una partizione di swap e assegnarla.

La soluzione più rapida e meno invasiva è la prima; non cambia il partizionamento dei dischi e che con pochi comandi permette di aumentare la dimensione dello spazio a disposizione per il caching.

I comandi seguenti permettono quindi la creazione di uno swap file per aumentare lo spazio. Prima di procedere con i comandi è fondamentale verificare che il proprio filesyustem supporti l'utilizzo dei file di swap.

Calcolare lo spazio di swap disponibile

Lo spazio da gestire per lo swap è:

Questi sono numeri generali e ogni caso specifico deve essere valutato in base a condizioni e servizi attivi sul server.

Creare uno swap file

Con questo comando stiamo reando un file di swap nel file system di root. bs è la dimensione del blocco e count il numero di blocchi. Con questi parametri stiamo creando uno swap file di 4gGB (128M x 32)

sudo dd if=/dev/zero of=/swapfile bs=128M count=32

Aggiornare i permessi di lettura e scrittura del file di swap

sudo chmod 600 /swapfile

Selezionare l'area appena creata come una area di swap

sudo mkswap /swapfile

Rendere lo swapfile disponibile per l'utilizzo immediato aggiungendo lo swap file alla partizione di swap

sudo swapon /swapfile

Verificare che la procedura sia completata correttamente

sudo swapon -s

Rendere la modifica valida per ogni riavvio del server

sudo vi /etc/fstab

Aggiungere alla fine del file la seguente linea

/swapfilwe swap swap defaults 0 0