Come creare una partizione di swap su Linux
Lo scambio di memoria è necessario quando il sistema richiede più memoria di quella fisicamente disponibile. Il kernel sostituisce le pagine meno utilizzate e fornisce memoria al processo corrente che necessita di memoria immediatamente. Quindi una pagina di memoria viene copiata nello spazio preconfigurato sull’hard disk. La velocità del disco è molto inferiore rispetto alla velocità della memoria. Lo scambio di pagine fornisce più spazio per le applicazioni correnti nella memoria (RAM) e rende l’applicazione più veloce.
Lo spazio di scambio si trova sui dischi rigidi, che hanno un tempo di accesso più lento rispetto alla memoria fisica. Lo spazio di scambio può essere una partizione di scambio dedicata o un file di scambio o una combinazione di entrambi.
In questo tutorial, impariamo come creare una partizione di swap su un sistema Linux.
Lettura correlata: Come creare un file di scambio Linux
Crea una partizione di swap
Controlliamo prima lo spazio su disco, quindi creiamo una partizione e quindi attiviamo lo scambio.
1) Controlla lo spazio su disco
Verifica di avere spazio su disco sufficiente per creare una nuova partizione per lo scambio utilizzando fdisk o il comando parted.
# fdisk -l
Disk /dev/sda: 10.7 GB, 10720641024 bytes, 20938752 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x66fe37bd
Noi useremo /dev/sdb
disco per il nostro scambio. Controlla lo scambio con gratis -m
comando; noi abbiamo:
# free -m
total used free shared buff/cache available
Mem: 988 88 645 50 254 813
Swap: 0 0 0
Puoi vedere che non abbiamo una partizione di swap. Possiamo anche usare sotto il comando per controllare
# swapon -s
Vedi, non abbiamo ritorno. Significa che non c’è scambio
2) Creare una partizione per lo scambio
Come abbiamo visto, abbiamo abbastanza spazio su disco non allocato, possiamo creare una nuova partizione usando strumenti come parted o fdisk.
Qui userò il comando fdisk per creare una partizione:
# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the
Command (m for help):
Puoi digitare m
comando help che elencherà le varie possibilità. Creeremo una nuova partizione per il nostro scambio n
comando
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-1048575, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1048575, default 1048575):
Using default value 1048575
Partition 1 of type Linux and of size 511 MiB is set
Per definire ora la nostra partizione come tipo swap, useremo il comando t
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
Il codice esadecimale per la partizione di swap su Linux è 82
. Ora salveremo le modifiche con w
comando
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Crea la nuova partizione come swap. Cambia l’id dello switch in 82 (per lo scambio). Controlliamo con fdisk -l
comando:
# fdisk -l
Disk /dev/sda: 10.7 GB, 10720641024 bytes, 20938752 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x66fe37bd
Device Boot Start End Blocks Id System
/dev/sdb1 2048 1048575 523264 82 Linux swap / Solaris
Puoi vedere la menzione “Linux swap” nell’ultima riga.
Nota: Sugli ultimi Ubuntu e Centos, usa create swap file invece di una partizione di swap. Vediamo come creare un file di scambio.
Basta usare il comando dd o fallocate per creare un file (diciamo 1 GB o 2 GB).
# dd if=/dev/zero of=/mnt/swapfile bs=1024 count=2097152
or# fallocate -l 2G /mnt/swapfile
# chmod 600 /mnt/swapfile
Quindi seguire i passaggi seguenti.
3) Formattare in modalità swap
Dopo aver definito la nostra partizione, dobbiamo formattarla per la “modalità swap”, quindi esegui il comando mkswap sulla partizione di swap appena creata. Assicurati di scegliere il numero di partizione corretto necessario per attivare la modifica. È possibile utilizzare l’opzione -L per impostare LABEL sulla partizione di swap.
Esegui il seguente comando define /dev/sdb1 come partizione di swap:
# mkswap /dev/sdb1
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=c4696894-0b09-4fbe-87bb-a34d6d307a4e
o
# mkswap /mnt/swapfile
4) Abilita lo spazio di scambio
Ora che la nostra partizione di swap è formattata, dobbiamo abilitare lo spazio di swap, quindi esegui il comando swapon per abilitarlo:
# swapon /dev/sdb1
5) Controlla lo spazio di swap
Controlla lo spazio di scambio appena aggiunto usando il comando seguente:
# free -m
total used free shared buff/cache available
Mem: 988 88 646 50 254 814
Swap: 511 0 511
6) Aggiungi al file fstab
Quindi aggiungi una partizione di swap appena creata a /etc/fstab
file. Dovrebbe apparire così qui sotto:
/dev/sdb1 swap swap defaults 0 0
Come creare una partizione di swap per lvm
Potresti avere un’installazione LVM sul tuo server e devi creare una partizione di swap. La procedura non è esattamente la stessa a causa della “modalità lvm”
Per prima cosa dobbiamo creare il volume logico LVM2 con la dimensione di 8 GB:
# lvcreate rootvg -n swapvol -L 8G
Dopo aver creato il volume logico, dobbiamo formattare il nuovo spazio di swap:
# mkswap /dev/rootvg/swapvol
Per assicurarci che la nostra partizione di swap venga montata automaticamente anche se riavviamo il server, dobbiamo aggiungere la seguente voce a /etc/fstab
file:
/dev/rootvg/swapvol swap swap defaults 0 0
Ora dobbiamo abilitare il volume logico esteso:
# swapon -v /dev/rootvg/swapvol
Per verificare se il volume logico è stato creato correttamente, utilizzare swapon -s
o free -m
ordine di ispezionare lo spazio di scambio.
Estendi la partizione di swap per lvm
Potrebbe essere necessario estendere la partizione di swap perché la dimensione effettiva dello swap non soddisfa il tuo lavoro. Con lvm è possibile aumentare direttamente la dimensione di una partizione esistente, come di seguito.
Per prima cosa devi identificare il gruppo di volumi di scambio che nel nostro caso è “/dev/rootvg/swapvol”. Per prima cosa devi disabilitare la modifica corrente
# swapoff -v /dev/rootvg/swapvol
Ora è necessario ridimensionare il gruppo di volumi per indicare lo spazio da aumentare
# lvm lvresize /dev/rootvg/swapvol -L +8G
Vogliamo aumentare da 8 GB a 16 GB
Ora dobbiamo formattare lo spazio
# mkswap /dev/rootvg/swapvol
Ora dobbiamo abilitare lo scambio per i dispositivi contrassegnati come swap in /etc/fstab
# swapon -va
Rimuovi la partizione di swap
Per alcuni motivi, potrebbe essere necessario rimuovere la partizione di swap in modalità lvm.
Per rimuovere una partizione di swap, devi prima disabilitare lo swap per il volume logico associato, che sia lvm o qualcos’altro lì
# swapoff -v /dev/rootvg/swapvol
Il secondo principio è rimuovere il volume, quindi è necessario eliminare completamente la partizione di swap.
# lvremove /dev/rootvg/swapvol
Ora dobbiamo rimuovere la seguente voce da /etc/fstab
file
/dev/rootvg/swapvol swap swap defaults 0 0
Come regolare la proprietà di scambio
Il valore di swappiness definisce la frequenza con cui il sistema scambia i dati dalla RAM allo spazio di swap. Il valore corrente di swappiness è memorizzato nel file “/proc/sys/vm/swappiness”. Questo è un valore compreso tra 0 e 100. Un valore basso, diciamo vicino allo zero, farà sì che il kernel cerchi di evitare il cambiamento. Un server può avere un valore più vicino a 0 e Desktop 60 dovrebbe andare bene.
# cat /proc/sys/vm/swappiness
60
Conclusione
In questo tutorial, abbiamo imparato come creare una partizione di swap e abilitare lo swap su Linux. I computer moderni sono dotati di una memoria di grandi dimensioni e se si pensa che l’applicazione utilizzerà la memoria, si consiglia di aggiungerne un po’ di riserva.
Per i vecchi computer con poca memoria, è sempre bene fornire il doppio della quantità di RAM per lo spazio di swap.
Spero che ti sia piaciuto leggere questo e per favore dai i tuoi suggerimenti nella sezione commenti qui sotto.