Lo spazio di swap è parte integrante del moderno sistema Linux, specialmente negli ambienti Enterprise di oggi. Molti di voi potrebbero avere familiarità con i suoi concetti e come gestirlo per funzionare a proprio favore. Scommetto che ci sono molte persone che, come me fino a poco tempo fa, non si sono interfacciate con lo scambio o la manipolazione di esso in un ambiente live e potrebbero non capirne completamente lo scopo. Voglio approfondire i concetti di base e spiegare come creare e gestire uno spazio di scambio.
Cos'è lo scambio?
Hai mai visto il film Inception? La premessa è incentrata su "un sogno nel sogno". Bene, lo scambio è simile nel concetto perché è una memoria virtuale costruita sulla memoria fisica. La confusione può insorgere senza una definizione comune di "memoria". Nell'informatica, esistono due tipi principali di memoria: RAM e disco rigido.
La memoria ad accesso casuale, nota anche come RAM, è la memoria utilizzata per archiviare e accedere ai programmi utilizzati attivamente dal computer. Questa memoria è molto diversa dalla memoria del disco rigido che hai sul tuo computer. Che sia basata su disco oa stato solido, la memoria del disco rigido viene utilizzata per archiviare i dati che non vengono utilizzati attivamente sul computer. Consente inoltre di conservare i dati durante i cicli di alimentazione. Con la RAM, è considerata memoria volatile, il che significa che la RAM viene cancellata quando il computer viene spento.
Perché è lo scambio?
Ora che ho definito questi tipi di memoria, devi capire perché è necessario lo scambio. La RAM è una risorsa limitata e quando esegui il multitasking o accedi a file o software impegnativi, puoi superare la quantità di RAM a bordo del sistema. Quando ciò accade, può causare l'arresto anomalo o il blocco dei programmi fino a quando la RAM necessaria non diventa disponibile. È qui che entra in gioco lo scambio.
Swap ti consente di creare RAM virtuale utilizzando lo spazio sul disco rigido fisico esistente quando la RAM fisica viene spinta alla capacità massima. Immagina di lavorare su un server e che quando inizializzi processi specifici, si verifica un arresto anomalo. Molte volte, l'errore di memoria insufficiente (OOM Killer come è noto) si verifica quando si tenta di avviare più processi di sistema core contemporaneamente. Ciò è particolarmente comune nei sistemi con provisioning leggero (server di edizioni virtuali e simili). Una soluzione semplice per questo è allocare diversi Gb di memoria di scambio. È ora di dare un'occhiata a come creare una memoria di scambio.
[NOTA:se non sei ancora convinto dello scambio, assicurati di dare un'occhiata a questo fantastico pezzo da Redhat.com]
Come scambiare?
Ci sono due opzioni quando si tratta di creare uno spazio di scambio. È possibile creare una partizione di scambio o un file di scambio. La maggior parte delle installazioni Linux viene preallocata con una partizione di swap. Questo è un blocco di memoria dedicato sul disco rigido utilizzato quando la RAM fisica è piena. D'altra parte, puoi anche creare un file di scambio. Questo è un file progettato per avere una dimensione specifica ed è meglio utilizzarlo solo in circostanze particolari. Si consiglia di utilizzare una partizione di swap a meno che la situazione non richieda diversamente.
Dimostrerò la procedura per estendere lo scambio su un volume logico LVM. Puoi seguire qui o vedere il portale del cliente per la documentazione completa, incluso un metodo per uno scambio non LVM.
[NOTA:per visualizzare la documentazione completa, consultare il portale clienti RHEL. ]
Prima di creare o aumentare lo scambio, è utile determinare se il tuo computer ha già uno scambio disponibile. Puoi verificarlo rapidamente eseguendo il comando free -m. Puoi vedere qui che una nuova installazione di RHEL8 in Virtual Box viene preallocata con uno scambio da 3 Gb, che non è attualmente utilizzato.
Ora, supponiamo che l'utilizzo del sistema richieda la necessità di aumentare lo spazio di scambio disponibile. Inizi disabilitando lo scambio per il volume associato.
Disable: # swapoff -v /dev/rhel/swap
Resize: # lvresize /dev/rhel/swap -L +2G (to increase swap by 2G)
Format: # mkswap /dev/rhel/swap
Enable: # swapon -v /dev/rhel/swap
Se devi ridurre lo spazio di scambio per qualsiasi motivo, cambia semplicemente il passaggio 2 in modo che assomigli a questo:
Reduce: # lvreduce /dev/rhel/swap -L -1G (to reduce the swap by 1Gb)
Altro scambio?
Potrebbero esserci altre cose che devi manipolare quando si tratta di scambiare. Talvolta è necessaria la creazione di un nuovo volume o la rimozione completa dello swap. C'è anche il file di scambio che ho menzionato prima. Per ulteriori informazioni su come eseguire queste attività, assicurati di controllare il collegamento al portale clienti in precedenza nell'articolo.
[NOTA:per approfondire questo argomento, assicurati di leggere l'articolo di David Both su Opensource.com]