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.
Lo spazio da gestire per lo swap è:
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