In un sistema con un carico di lavoro ad alta intensità di memoria con carichi di picco comuni, una memoria di scambio di grandi dimensioni può essere utile per archiviare contenuti di memoria di grandi dimensioni non necessari al momento. Anche se l'utilizzo di swap invece della memoria avrà sicuramente un grande impatto sulle prestazioni, a volte questo è preferibile rispetto all'aggiunta di più memoria alla macchina, poiché lo spazio su disco è molto più economico. A volte semplicemente non c'è più memoria, forse una macchina fisica che ha esaurito gli slot liberi e non ci sono moduli di memoria più grandi sul mercato. Altre volte le prestazioni più lente sui picchi di carico potrebbero essere preferibili rispetto all'arresto anomalo dell'applicazione con errore di memoria insufficiente.
In alcuni casi è necessario aumentare la memoria di scambio, un esempio dal vivo potrebbe essere l'espansione della memoria nella macchina e quindi anche l'espansione dello spazio di scambio in modo che corrisponda al doppio della nuova dimensione della memoria.
In questo tutorial imparerai:
- Come controllare lo spazio di scambio.
- Come identificare il volume di scambio.
- Come aumentare il volume di scambio.
- Come aggiungere un altro volume di scambio.
Verifica delle dimensioni e dell'utilizzo dello scambio con il comando gratuito.
Requisiti e convenzioni software utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | RHEL 8 / CentOS 8 |
Software | lvm2-2.03.00-0.4, util-linux-2.32.1-6 |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Come aumentare la dimensione dello scambio su RHEL 8 istruzioni dettagliate
Nella nostra configurazione di laboratorio, la partizione di swap si trova su un volume logico. Questa è la configurazione più comune, poiché LVM è un modo molto flessibile per gestire lo spazio su disco. Il tutorial LVM copre l'architettura e l'utilizzo di Logical Volume Manager, quindi non entreremo nei dettagli quando si utilizza lvextend
per aumentare la dimensione del volume di scambio. Aumenteremo lo scambio iniziale di 1 GB a 2 GB.
- Dobbiamo scoprire quale volume è la nostra partizione di swap:
# grep swap /etc/fstab /dev/mapper/rhel_rhel8lab-swap swap swap defaults 0 0
Poiché per impostazione predefinita i nomi dei volumi vengono generati con un nome host breve e durante la creazione di un volume logico possiamo nominarlo esplicitamente, il nome del volume varierà.
Nel nostro esempio prendiamo nota del nome del volume con il percorso, che è
/dev/mapper/rhel_rhel8lab-swap
o/dev/rhel_rhel8lab/swap
. Questi due nomi per la partizione possono creare confusione a prima vista, ma se li elenchiamo entrambi, possiamo vedere che in realtà sono collegamenti simbolici che puntano allo stesso dispositivo:# ls -al /dev/rhel_rhel8lab/swap lrwxrwxrwx. 1 root root 7 Nov 25 18:35 /dev/rhel_rhel8lab/swap -> ../dm-1 # ls -al /dev/mapper/rhel_rhel8lab-swap lrwxrwxrwx. 1 root root 7 Nov 25 18:35 /dev/mapper/rhel_rhel8lab-swap -> ../dm-1
Li useremo in modo intercambiabile nei prossimi passaggi.
-
Dobbiamo disabilitare lo scambio sul volume mentre ci lavoriamo. Usiamo il nome completo del volume che abbiamo trovato nel primo passaggio.
# swapoff -v /dev/mapper/rhel_rhel8lab-swap swapoff /dev/mapper/rhel_rhel8lab-swap
AVVISO
Non disabilitare lo scambio su un server di produzione mentre è sottoposto a un carico elevato e utilizza lo scambio in modo eccessivo! In uno scenario del genere aggiungi invece un'altra partizione di swap. - Per aumentare la dimensione dello swap estendiamo il volume logico che lo contiene. In questo esempio con un Gigabyte in più:
# lvextend -L +1G /dev/rhel_rhel8lab/swap Size of logical volume rhel_rhel8lab/swap changed from 1.00 GiB (256 extents) to 2.00 GiB (512 extents). Logical volume rhel_rhel8lab/swap successfully resized.
Nota che devi assicurarti di avere spazio libero sufficiente nel gruppo di volumi che contiene il volume logico, come faresti su qualsiasi altra estensione di volume che contiene filesystem.
- Ricreiamo lo scambio sul volume esteso:
# mkswap /dev/mapper/rhel_rhel8lab-swap mkswap: /dev/mapper/rhel_rhel8lab-swap: warning: wiping old swap signature. Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=defca15e-a5ed-4fe8-bddd-5f11a3c76e80
- Riattiviamo lo scambio sul volume di scambio esteso:
# swapon -v /dev/mapper/rhel_rhel8lab-swap swapon: /dev/mapper/rhel_rhel8lab-swap: found signature [pagesize=4096, signature=swap] swapon: /dev/mapper/rhel_rhel8lab-swap: pagesize=4096, swapsize=2147483648, devsize=2147483648 swapon /dev/mapper/rhel_rhel8lab-swap
- È buona norma verificare sempre che la modifica del sistema sia andata a buon fine. In questo caso
free -m
(informazioni sulla memoria con valori in Megabyte) dovrebbero mostrare che abbiamo 2 GB di swap:# free -m total used free shared buff/cache available Mem: 1989 1201 225 17 562 617 Swap: 2047 0 2047
Come aggiungere una nuova partizione di swap su RHEL 8 istruzioni dettagliate
Quando disabilitare lo scambio per aumentare le sue dimensioni non è appropriato, possiamo aumentare lo scambio generale aggiungendo un altro volume che sia anche una partizione di scambio. Quando abbiamo finito, lo diamo semplicemente al sistema, che inizierà a usarlo secondo necessità.
- Creiamo un nuovo volume logico con
LVM
come faremmo se volessimo un nuovo volume che memorizzi un filesystem:# lvcreate -L 1G -n swap2 rhel_rhel8lab Logical volume "swap2" created.
Sulla stessa macchina di laboratorio questo risulterà con un percorso completo della nuova partizione come
/dev/mapper/rhel_rhel8lab-swap2
, lo stesso di/dev/rhel_rhel8lab/swap2
. - Crea lo scambio con
mkswap
:# mkswap /dev/rhel_rhel8lab/swap2 Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=a319fb8d-18b8-42b7-b6bf-cafb27aaec2b
- Attiva lo scambio sul nuovo volume:
# swapon /dev/rhel_rhel8lab/swap2
- E verifica i risultati:
# free -m total used free shared buff/cache available Mem: 1989 1198 153 14 637 623 Swap: 2047 0 2047
- Affinché il sistema operativo possa utilizzare la nuova partizione di swap dopo il riavvio, è necessario aggiungerla a
/etc/fstab
:# grep swap /etc/fstab /dev/mapper/rhel_rhel8lab-swap swap swap defaults 0 0 /dev/mapper/rhel_rhel8lab-swap2 swap swap defaults 0 0
La differenza tra i due metodi può essere delineata controllando il contenuto di
/proc/swaps
, dove possiamo vedere che aggiungendo un altro volume invece di estendere quello che già abbiamo risulterà in due dispositivi usati per lo scambio:# cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 1048572 0 -2 /dev/dm-2 partition 1048572 0 -3