Ce trebuie să știți despre partiția Swap pe Linux

Cosa devi sapere sulla partizione di scambio su Linux

⌛ Reading Time: 4 minutes

Quando installi Linux, il processo di installazione probabilmente aggiungerà una partizione di swap al disco rigido insieme alle partizioni per Linux stesso. Ma a cosa serve questa partizione di swap ed è davvero necessaria?

Cos’è lo scambio?

Quando un sistema operativo multitasking esaurisce la memoria fisica, non è in grado di avviare nuovi processi o allocare più memoria ai processi esistenti. Per risolvere questo problema, un blocco speciale di spazio sulla memoria locale (spesso il disco rigido) viene messo da parte per fungere da area di attesa temporanea per i processi che non sono attualmente in esecuzione. Il sistema operativo “scambia” il processo inattivo fuori dalla memoria e sul disco rigido. Ciò libera la memoria per il nuovo lavoro. Quando il processo inattivo diventa di nuovo attivo, verrà nuovamente trasferito dall’archivio locale alla memoria. Questa procedura è nota come scambio.

Lo spazio di swap è davvero necessario?

Lo spazio di swap è tecnicamente necessario? No. Linux può funzionare senza di esso e in alcune situazioni, come le soluzioni incorporate, Linux può essere eseguito senza swap. Se il sistema operativo si trova in una situazione in cui non ha abbastanza memoria, andrà nel panico e si fermerà. Se c’è abbastanza RAM fisica, la macchina funzionerà senza problemi.

Lo spazio di swap è praticamente necessario? Sì. Sebbene lo scambio rallenti un computer (poiché la lettura e la scrittura su un disco rigido sono molto più lente dell’accesso alla RAM) e avere a bordo la stessa memoria fisica a bordo è la soluzione migliore per evitare lo scambio, ci sono situazioni legittime in cui lo scambio è desiderabile. Ad esempio, durante l’avvio del sistema, possono esserci processi che vengono eseguiti (e quindi consumano memoria di sistema) ma poi dormono effettivamente per periodi di tempo molto lunghi. O la memoria che viene allocata, scritta e quindi mai più utilizzata. In queste situazioni, l’algoritmo di scambio inizierà a migrare questa memoria sul disco rigido e libererà così preziosa memoria di sistema. Ciò garantisce effettivamente che la quantità massima di RAM sia sempre disponibile e quindi aumenta le prestazioni.

Su macchine che non hanno abbastanza RAM fisica perché tutto risieda in memoria, l’uso dello spazio di swap è essenziale!

Per completezza, vale la pena ricordare che Linux ha anche un sottosistema chiamato Out-Of-Memory Killer (OOM), che invece di fermare il kernel quando esaurisce la memoria, inizierà a uccidere i processi per liberare risorse. Le sue azioni sono configurabili.

Quanto spazio di swap dovrei allocare?

Non esiste una regola assoluta e poiché lo spazio su disco rigido è economico (dollaro per Gigabyte) è meglio allocare troppo che troppo poco. Come regola generale, dovresti avere due o tre volte la quantità di spazio di swap della memoria fisica.

Aggiunta di swap senza espandere la partizione di swap

Esistono due modi per aggiungere spazio di swap a un sistema senza alterare la partizione di swap esistente. Un modo è usare una partizione di swap su un’altra unità, l’altro è usare un file di swap.

Per utilizzare un altro disco rigido, creare una partizione di tipo “Linux swap” (codice 82) e quindi eseguire il “mkswap“Comando per preparare lo spazio di swap:

Dove /dev/sdb2 è il nome della partizione che hai creato. Per utilizzare immediatamente lo spazio di swap, utilizzare il “swapon“Comando:

Uso “swapon -s“Per ottenere un elenco degli spazi di swap attualmente utilizzati. Per aggiungere in modo permanente lo spazio di swap al sistema, sarà necessario modificare il file /etc/fstab file e aggiungi una riga simile a questa:

Se il sistema utilizza identificatori univoci per denominare i dischi, utilizzare l’estensione blkid comando per ottenere un elenco di ID per i dispositivi. La linea in cui montare lo spazio di swap /etc/fstab sarebbe quindi simile a questo:

Per utilizzare un file per lo scambio, creare un file vuoto di grandi dimensioni (utilizzando dd) sul filesystem che vuoi usare per lo scambio. Ad esempio, per creare un file da 1 GB, digita:

Dove /store/swapfile è il percorso del file di scambio sul filesystem desiderato.

Come con la partizione di swap aggiuntiva, il file ora deve essere preparato con mkswap e poi utilizzato con swapon. Deve anche essere aggiunto al file /etc/fstab file. La procedura è esattamente la stessa di sopra, ma è necessario utilizzarla /store/swapfile piuttosto che /dev/sdb2 come parametro dello spazio di swap.

Swappiness

Il kernel Linux può essere modificato per definire quanto aggressivamente dovrebbe provare a scambiare i processi fuori dalla memoria. Questa tendenza è controllata da una variabile del kernel chiamata swappiness. UN swappiness di 0 significa che il kernel eviterà lo swap il più possibile, mentre 100 significa che il kernel sarà aggressivo nel modo in cui usa lo spazio di swap. L’impostazione predefinita per molte distribuzioni Linux è 60. È possibile modificare il numero dinamicamente utilizzando questo comando:

Per impostare un valore in modo permanente, è necessario modificare (o aggiungere, se non esiste) il file vm.swappiness variabile in /etc/sysctl.conf file.

Facci sapere se hai domande sullo swap in Linux.

Questo articolo è stato pubblicato per la prima volta nel dicembre 2013 ed è stato aggiornato nell’agosto 2020.

Credito immagine: scambiare