Aggiungere spazio di swap al tuo server è un'ottima opzione per compensare gli errori di memoria esaurita. Linux consente agli utenti di aggiungere spazio di swap nel proprio sistema quando la quantità di RAM nel sistema è piena. Quando crei una partizione di spazio dedicata, consentirai alla tua memoria fisica di funzionare senza problemi senza preoccuparti troppo del poco spazio su disco.
Panoramica dello Swap
Lo spazio di swap in Linux è una parte della memoria virtuale di una macchina utilizzata quando la memoria fisica esaurisce lo spazio. Specialmente quando si lavora con un programma o un'applicazione di grandi dimensioni in cui sorge la necessità di memoria extra, lo spazio di swap è una scelta ideale per contenere pagine di memoria temporaneamente inattive. La creazione di uno spazio di swap consente agli utenti di memorizzare dati quando sono in esecuzione programmi di grandi dimensioni, riducendo così i crash delle applicazioni. Ciò significa che se il sistema necessita di più risorse di memoria e la RAM è piena, tutte le pagine inattive in memoria vengono spostate nello spazio di swap e i programmi possono essere eseguiti senza interruzioni.
Di quanto spazio di swap ho bisogno?
La quantità di spazio di swap dipende da diversi fattori. Questi includono la RAM disponibile, il carico imposto e se il sistema deve supportare la funzione di ibernazione (sospensione su disco). Fai riferimento alla tabella seguente per verificare lo spazio di swap consigliato in base allo spazio disponibile nella RAM:
|
N. |
Spazio RAM disponibile |
Spazio di swap consigliato |
|
1. |
1GB |
1GB |
|
2. |
2GB |
1GB |
|
3. |
3GB |
2GB |
|
4. |
4GB |
2GB |
|
5. |
5GB |
2GB |
|
6. |
6GB |
2GB |
|
7. |
8GB |
3GB |
In questo tutorial, ti guideremo attraverso i passaggi per aggiungere spazio di swap su Ubuntu 20.04. Cominciamo!
Prerequisiti
Per seguire questo tutorial, avrai bisogno di:
- Ubuntu installato sul tuo sistema.
- Un account utente non-root configurato con privilegi sudo sulla tua macchina.
Passaggio 1: Verifica delle informazioni sullo swap
La dimensione dello spazio di swap dipende dalla RAM del sistema. Pertanto, è essenziale verificare la disponibilità di spazio di swap nel sistema prima di crearne uno. Digita il comando seguente per verificare se il sistema ha uno swap configurato:
|
1 |
$ sudo swapon --show |
Se viene visualizzato un output, significa che c'è spazio disponibile nel sistema per creare spazio di swap. Tuttavia, l'assenza di output è un segnale che indica che non c'è abbastanza spazio disponibile per aggiungere spazio di swap.
Usa l'utility free per verificare che non ci sia alcuno swap attivo:
|
1 |
$ free -h |
Vedrai l'output come una riga di swap vuota:
Passaggio 2: Verifica della disponibilità della partizione del disco rigido
In modo simile alla verifica della disponibilità del sistema, ora controlliamo l'uso attuale del disco per assicurarci di avere abbastanza spazio. Usa il comando df per verificare la disponibilità della partizione del disco rigido:
|
1 |
df -h |
Il dispositivo con / nella colonna Mounted on è il nostro disco che è 11% libero. Vedrai l'output:
Dopo aver verificato i requisiti del sistema, andiamo avanti e creiamo un file di swap sul nostro filesystem.
Passaggio 3: Creare un file di swap
Per creare un file di swap sul nostro filesystem, alloca un nome file come swapfile nella directory root (/) utilizzando il programma fallocate. L'allocazione della dimensione del file dipende dalle tue esigenze. Per mantenere il tutorial semplice e facile da capire, stiamo creando un file da 1G e dedicando 1G di RAM. Usa il comando sudo per creare un file di swap:
|
1 |
sudo fallocate -l 1G /swapfile |
Successivamente, digita questo comando per verificare lo spazio riservato:
|
1 |
$ ls -lh /swapfile |
Ora che abbiamo creato uno spazio di swap nel nostro sistema, abilitiamolo nel passaggio successivo.
Passaggio 4: Abilitare il file di swap
Una volta che abbiamo a disposizione la dimensione corretta, convertiamola in spazio di swap. Per motivi di sicurezza, è fondamentale rendere il nostro file accessibile agli utenti root e impedirne l'accesso agli utenti normali. Aggiungeremo restrizioni in modo che gli utenti con privilegi root possano visualizzare il file e leggerne il contenuto. Usa il seguente comando root per rendere il file accessibile solo agli utenti root :
|
1 |
sudo chmod 600 /swapfile |
Quindi, usa il comando ls per verificare le modifiche:
|
1 |
$ ls -lh /swapfile |
Come puoi vedere, solo l'utente root ha i flag di lettura e scrittura abilitati:
Dopodiché, contrassegna il file come spazio di swap:
|
1 |
sudo mkswap /swapfile |
Vedrai l'output:
Dopodiché, abilita il file di swap e consenti al nostro sistema di iniziare a usarlo:
|
1 |
sudo swapon /swapfile |
Successivamente, verifica la disponibilità dello swap:
|
1 |
$ sudo swapon --show |
Vedrai l'output:
Come abbiamo fatto nel Passo 1, verificheremo lo spazio dell'utility free ancora una volta:
|
1 |
free -h |
Vedrai l'output:
Il nostro swap è stato configurato con successo e il nostro sistema operativo inizierà a usarlo come necessario. Nel prossimo passo, renderemo permanente il file di swap.
Passo 5: Rendi permanente il file di swap
Per impostazione predefinita, il server non manterrà automaticamente le impostazioni di swap al riavvio. Per modificare le impostazioni predefinite e andare sul sicuro, aggiungeremo il file di swap al nostro /etc/fstab file. Usa il comando sudo per eseguire il backup del file /etc/fstab file:
|
1 |
sudo cp /etc/fstab /etc/fstab.bak |
Successivamente, aggiungi le informazioni sul file di swap alla fine del tuo file /etc/fstab digitando:
|
1 |
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
Dopodiché, esaminiamo alcune impostazioni e apportiamo modifiche in modo da poter ottimizzare il nostro spazio di swap.
Passo 6: Modifica delle impostazioni di swap
In questo passo, configureremo le impostazioni e apporteremo alcune modifiche. Regoliamo la proprietà swappiness e modifichiamo la pressione della cache.
-
Regola la proprietà Swappiness
Il parametro swappiness è un parametro del kernel regolabile. Modifica il bilanciamento tra lo svuotamento della memoria di runtime e gestisce lo scambio di dati tra lo spostamento dei dati fuori dalla RAM allo spazio di swap. Questo valore parametrico è espresso in percentuale, da 0 a 100.
Il valore vm.swappiness ha un'influenza diretta sul comportamento della swappiness del sistema. Più alto è il valore vm.swappiness, più il sistema eseguirà lo swap e viceversa. Se il valore è vicino allo zero, il kernel non eseguirà lo swap dei dati, il che potrebbe portare a una riduzione delle prestazioni. Consentire al sistema di non dipendere troppo dallo swap è un ottimo modo per migliorarne le prestazioni e ottenere una reattività robusta.
In alternativa, un valore di vm.swappiness più vicino a 100 tenta di inserire più dati nello swap e meno nella memoria fisica. A differenza di un valore di vm.swappiness basso o mediocre, un elevato swapping di sistema ha effetti molto indesiderati quando ci sono grandi quantità di dati scambiati attivamente dentro e fuori dalla RAM.
Verifica il valore attuale di swappiness digitando:
|
1 |
cat /proc/sys/vm/swappiness |
Vedrai l’output:
Puoi anche impostare la swappiness di tua scelta usando il comando sysctl. Impostiamo il valore di swappiness a 15 digitando:
|
1 |
sudo sysctl vm.swappiness = 15 |
Vedrai l'output:
Fino al riavvio del sistema, le impostazioni rimarranno tali. Aggiungi la riga al nostro file /etc/sysctl.conf per impostare il valore automaticamente al riavvio:
|
1 |
sudo nano /etc/sysctl.conf |
Puoi aggiungere il seguente codice in fondo:
|
1 |
Vm.swappiness = 15 |
Quindi, salva e chiudi il file.
-
Regola la pressione della cache
Successivamente, modificheremo vfs_cache_pressure che si occuperà delle informazioni di inode e dentry rispetto ad altri dati. Queste impostazioni di vfs_cache_pressure settings controllano anche la tendenza del kernel a recuperare la memoria utilizzata per la memorizzazione nella cache della directory. Naviga nuovamente nel file system proc per verificare il valore attuale:
|
1 |
cat /proc/sys/vm/vfs_cache_pressure |
Vedrai l'output:
Poiché la configurazione è già stata eseguita, il nostro sistema eliminerà le informazioni sugli inode dalla cache. Impostiamo sysctl vm.vfs_cache_pressure su un'impostazione più stabile in questo modo:
|
1 |
sudo sysctl vm.vfs_cache_pressure = 60 |
Vedrai l'output:
In modo simile a quanto fatto per l'impostazione della swappiness, possiamo modificare la configurazione anche qui:
|
1 |
sudo nano /etc/sysctl.conf |
In fondo, inserisci una riga che indichi il nuovo valore creato:
|
1 |
Vm.vfs_cache_pressure = 60 |
Infine, salva e chiudi il file.
Conclusione
È possibile aggiungere spazio di swap come partizione di swap dedicata, un file di swap o una combinazione di entrambi. È possibile creare spazio di swap e sfruttare i suoi vantaggi per eseguire applicazioni in modo fluido senza preoccuparsi troppo degli avvisi di memoria esaurita. Sebbene la creazione di spazio di swap sia un ulteriore vantaggio nei sistemi con spazio di memoria limitato, non deve essere considerata un'alternativa a una maggiore quantità di memoria RAM. Ricorda che lo spazio di swap si trova su un disco rigido, pertanto potresti riscontrare tempi di accesso leggermente più lenti rispetto alla memoria fisica.
Ecco altri tutorial sul nostro blog che ti aiuteranno a iniziare con i tuoi server Ubuntu:
- Configurazione di un mount NFS su Ubuntu 20.04
- Installazione di Nginx su Ubuntu 18.04
- Configurazione di un firewall con UFW su Ubuntu 18.04
Buon computing!










Commenti
Ancora nessun commento. Scrivi il primo.