Aggiungi spazio di swap a un computer Linux o aumenta lo spazio di swap già presente, senza scherzare con le partizioni. Ti mostriamo il modo più semplice per personalizzare il tuo spazio di swap.
Scambia file e scambia partizioni
Esistono diversi scenari in cui potresti voler aumentare lo spazio di swap esistente o aggiungere nuovo spazio di swap al tuo computer Linux.
- Forse il tuo spazio di swap funziona spesso al massimo o vicino al massimo.
- È facile fare clic sull’opzione sbagliata durante il processo di installazione e rifiutare inavvertitamente di aggiungere swap al sistema.
- Forse in precedenza avevi deciso di avere così tanto memoria ad accesso casuale (RAM) non avevi bisogno di alcuno scambio e hai cambiato idea.
- A volte erediti l’amministrazione di un sistema che non prevede scambi, per ragioni che non sarai mai in grado di scoprire.
La soluzione semplice a tutto ciò è aggiungere a scambia il file sul tuo computer. Questo è un file speciale, pre-allocato e riservato per l’uso come spazio di swap. Un file di scambio funzionerà in tandem con qualsiasi scambio esistente che potresti avere, sia che si tratti di un file di scambio o di una partizione di scambio.
Un tempo, si verificava un calo delle prestazioni nell’utilizzo di un file di scambio rispetto a una partizione di scambio. Questo non è più il caso con i miglioramenti nelle prestazioni dei dischi rigidi meccanici (rotanti) e una maggiore efficienza nelle funzioni di scambio all’interno del sistema operativo Linux. In effetti, alcune distribuzioni Linux ora creano per impostazione predefinita file di scambio anziché partizioni di scambio.
Lo scambio non è utilizzato solo come mezzo per liberare la RAM quando la memoria è esaurita. È una parte importante di un sistema ben funzionante. Senza alcuno scambio, una gestione sana della memoria diventa molto difficile da ottenere per il kernel. Diamo un’occhiata al modo più semplice per aggiungere spazio di swap.
Prima di approfondire: Btrfs e SSD
Ci sono due punti che vorremmo discutere rapidamente.
IL File system Btrfs presenta alcune avvertenze sui file di scambio. Un tempo c’era un conflitto tra copia su scrittura natura di Btrfs, che voleva operare in un modo e scambiare file che dovevano funzionare in un altro. Alcune funzioni da cui dipendono i file di scambio non sono state implementate e alcune ipotesi fatte sulla numerazione dei blocchi all’interno dei file di scambio non erano vere con Btrfs. Quindi i file di scambio non erano supportati.
Dal kernel 5.0, tu può avere file di scambio nei file system Btrfs se sono impostati con i seguenti requisiti:
- Nessun file copy-on-write (NOCOW).
- Non sono compressi.
- Non si trovano a cavallo di dischi rigidi diversi.
La maggior parte dei lettori utilizzerà il file file system ext4 predefinitoquindi questo non sarà un problema per loro.
Quando Unità a stato solido (SSD) erano disponibili per la prima volta, c’era la preoccupazione di usarli in situazioni che avevano frequenti scritture del file system. Le persone sono state avvisate di non mettere spazio di swap sugli SSD e persino di evitare la registrazione del sistema sugli SSD.
Questo è molto meno preoccupante al giorno d’oggi, e molti SSD in vendita hanno un’aspettativa di vita che supererà la maggior parte dei PC. Un file di scambio su un SSD avrà prestazioni di gran lunga migliori rispetto a una partizione di scambio su un disco rigido meccanico.
Controllo dello spazio di swap esistente
Guarda prima di saltare. Controlliamo quale spazio di swap è disponibile sul tuo computer. Puoi farlo in due modi e li useremo entrambi. IL free il comando visualizzerà la memoria utilizzata e quella libera. L’opzione -h (leggibile dall’uomo) causerà free per utilizzare unità ragionevoli quando visualizza i valori della memoria.
free -h L’uscita da free mostra che non c’è spazio di swap configurato su questa macchina.
Lo swap non viene mai discusso senza la RAM e la RAM libera che spunta fuori. Quindi vale la pena notare che la RAM libera è di 237 MB. Da non confondere con il totale della RAM disponibile per l’uso. Tale valore è fornito dalla cifra “disponibile”, ovvero 881 MB.
Linux utilizza la RAM libera per i propri scopi, come la memorizzazione nella cache dei file e i buffer del kernel. La quantità di RAM dedicata a questo è la cifra “buff/cache”, ovvero 871 MB. Ma quella memoria è ancora considerata e conteggiata come “disponibile”. Il contenuto della RAM “buf/cache” può essere scartato immediatamente e utilizzato da qualsiasi applicazione che necessiti di memoria.
Un altro modo per verificare se lo spazio di swap è disponibile è utilizzare il file swapon comando. IL –show l’opzione non ne fa alcuno modifiche allo swap sul tuo computer. Fornisce solo statistiche.
swapon –show Se non c’è alcun output da questo comando, non è configurato alcuno scambio.
Se questi comandi avessero rivelato che uno spazio di swap è già configurato, la dimensione dello spazio di swap esistente dovrebbe essere presa in considerazione nelle decisioni riguardanti la dimensione del file di swap che stai per creare.
Di quanto spazio di swap ho bisogno?
La risposta tradizionale era “il doppio della quantità di RAM che hai”. Ma questo è stato coniato quando i computer avevano una RAM molto limitata. Poiché la RAM è diventata più economica e i programmi e i giochi richiedono più memoria, le specifiche del PC si sono adattate di conseguenza. Al giorno d’oggi non sono rari i PC domestici con 32 GB di RAM. E non assegnerai 64 GB di spazio sul disco rigido per lo spazio di scambio se hai 32 GB di RAM. E’ chiaramente eccessivo.
La quantità di scambio di cui hai bisogno è un argomento incendiario, paragonabile a “qual è il miglior editore”. Una delle discussioni più sensate che abbiamo visto su questo argomento è in Domande frequenti sullo scambio di Ubuntu. È un approccio breve e di buon senso (anche se, come molte persone, fraintendono come funziona la swappiness su Linux). C’è una comoda tabella che mostra la quantità consigliata di spazio di swap per la quantità di RAM del tuo sistema e se iberna il tuo computer o meno.
E la buona notizia è che non importa quale valore scegli. Possiamo sempre rimuovere un file di scambio e sostituirlo con uno più grande o, peraltro, più piccolo. Oppure potresti semplicemente aggiungere un altro file di scambio.
Scegliere una dimensione del file di scambio dalla tabellaed eseguilo per un po’. Monitora l’utilizzo dello spazio di swap da parte del tuo sistema. Se è necessaria una messa a punto, le modifiche possono essere apportate facilmente. Con i file di scambio, è un lavoro di due minuti. Confrontalo con la regolazione delle partizioni su un computer Linux live.
Creazione del file di scambio
Non dovresti usare il fallocate comando per creare il tuo file di scambio. Questo è dalla pagina man di swapon:
The swap file implementation in the kernel expects to be able to write to
the file directly, without the assistance of the file system.
This is a problem on files with holes or on copy-on-write files on file
systems like Btrfs. Commands like cp(1) or truncate(1) create files with
holes. These files will be rejected by swapon.
Preallocated files created by fallocate(1) may be interpreted as files
with holes too depending of the filesystem. Preallocated swap files are
supported on XFS since Linux 4.18.
The most portable solution to create a swap file is to use dd(1) and /dev/zero. Quindi, sebbene fallocate è più veloce, lo useremo dd A creare il file di scambio. La macchina utilizzata per ricercare questo articolo ha due GB di RAM. Creeremo un file di scambio da un GB.
Le opzioni sono:
- Se: il file di input. In questo esempio, stiamo utilizzando /dev/zero che fornirà un flusso di zero byte.
- Di: il file di output. Creeremo un file nella directory root, chiamato swapfile.
- cavolo: la dimensione del blocco in byte. Specifica quanti byte leggere dal file di input e scrivere nel file di output, alla volta.
- contare: Quanti blocchi leggere e scrivere. Moltiplicare questo numero per bs valore per ottenere la dimensione del file.
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576 Alcune statistiche vengono fornite al momento della creazione del file.
Possiamo vedere il numero di blocchi (record) che sono stati scritti nel file, la dimensione del file, il tempo impiegato per creare il file e la velocità di trasferimento dati effettiva.
Usa il ls comando per vedere il file nella directory root:
ls /
Preparazione del file di scambio
Abbiamo bisogno di preparare il file di scambio con il mkswap comando prima che possa essere utilizzato. Non è necessario fornire alcun parametro mkswap diverso dal percorso e dal nome del file:
sudo mkswap /swapfile Il file è preparato per essere utilizzato come file di scambio. Nota l’avviso sui permessi dei file. Dovremo cambiarli in modo che l’utente root sia l’unico che può leggere e scrivere sul file di scambio.
Utilizzando il file di scambio
I permessi predefiniti sono troppo liberi, dobbiamo limitarli in modo che solo root possa utilizzare il file di scambio. Utilizzo chmod per modificare i permessi del file:
sudo chmod 600 /swapfile Ciò rimuove tutte le autorizzazioni dai membri del file group e da altri, ma consente al proprietario del file, root, di leggere e scrivere sul file.
Dobbiamo usare il swapon comando per far sapere a Linux che c’è un nuovo file di scambio disponibile per l’uso. Dobbiamo solo fornire il percorso e il nome del file:
sudo swapon /swapfile Il file di scambio è ora attivo.
Aggiunta del file di scambio a fstab
Per assicurarti che il file di scambio sia disponibile dopo il riavvio, aggiungilo al /etc/fstab file. Puoi utilizzare qualsiasi editor di testo che preferisci, ma mostreremo il processo utilizzando l’editor di testo grafico Gedit.
sudo gedit /etc/fstab La riga che dobbiamo aggiungere alla fine del file è:
/swapfile none swap sw 0 0 I campi sono:
- Sistema di file: il percorso e il nome del file di scambio.
- Punto di montaggio: il file non è montato come un file system, quindi la voce è “nessuno”.
- Tipo: Questo è “scambio”.
- Opzioni: Al momento dell’avvio swapon -a (avvia tutti i dispositivi contrassegnati come swap) verrà chiamato da uno degli script di avvio. Questa opzione dice a Linux di trattare questa voce come una risorsa di swap che dovrebbe essere sotto il suo controllo swapon -a comando. È comune vedere qui utilizzati i “predefiniti” poiché alcuni utenti Linux credono erroneamente che questo campo venga ignorato. Come vedremo, non è così. Quindi ha senso utilizzare l’opzione corretta.
- Scarico: Può essere impostato su zero. È irrilevante in questo caso.
- Passaggio: Può essere impostato su zero. È irrilevante in questo caso.
Salva le modifiche e chiudi l’editor.
Verifica dell’utilizzo dello scambio
Per vedere se il tuo spazio di swap è utilizzato, usa il file swapon comandare con il –show opzione:
swapon –show Le colonne sono:
- Nome: il nome della partizione di swap o del file di swap.
- Tipo: il tipo di dispositivo di scambio.
- Misurare: la dimensione della risorsa di scambio.
- Usato: la quantità di spazio di swap utilizzato.
- Prio: La priorità di questo spazio di scambio.
La priorità dello spazio di scambio
Ad ogni spazio di swap viene assegnata una priorità. Se non ne fornisci uno, ne verrà assegnato automaticamente uno. Le priorità assegnate automaticamente sono sempre negative. L’intervallo di priorità che è possibile allocare manualmente è compreso tra 0 e 32767. Le risorse di scambio con priorità più alta vengono utilizzate per prime.
Se più di uno spazio di swap ha la stessa priorità, vengono utilizzati alternativamente finché non sono entrambi pieni, quindi il sistema cerca lo spazio di swap con la priorità più bassa successiva. Se hai un solo spazio di swap, ovviamente la priorità è irrilevante. Ma cambieremo la priorità del file di scambio che abbiamo creato per dimostrare come farlo.
Per impostare una priorità, aggiungere il pri= (priorità) opzione al /etc/fstab iscrizione. Modifica la riga che hai aggiunto /etc/fstab per assomigliare a questo:
/swapfile none swap sw,pri=10 0 0 Cioè, aggiungi pri=10 al campo opzioni, separato dal “sw” con una virgola. Non lasciare spazi tra “sw”, la virgola e “pri=10”. Riavvia il computer e utilizza il file swapon –show comando:
swapon — show La priorità di questo spazio di swap è stata elevata a 10. Il che è una prova positiva che il campo delle opzioni nel file /etc/fstab l’immissione non viene ignorata.
Scambiare lo spazio diventa facile
Tagliando l’esposizione e la spiegazione, possiamo creare un nuovo file di scambio con la stessa facilità e rapidità di questo:
sudo dd if=/dev/zero of=/swapfile2 bs=1024 count=104857 sudo mkswap /swapfile2 sudo chmod 600 /swapfile2 sudo swapon /swapfile2 E controlliamo che abbia funzionato:
swapon –show Se vuoi fare quel calo permanente, inseriscilo nel tuo /etc/fstab file.
Boom. Lavoro fatto.