Come creare un file di scambio in Linux

Contenuti

L'interno di un disco rigido meccanico.

Aggiungi spazio di swap a un computer Linux, o aumentare lo spazio di swap già presente, senza alterare le partizioni. Ti mostriamo il modo più semplice per personalizzare il tuo spazio di scambio.

Scambiare file e scambiare partizioni

Esistono diversi scenari in cui potresti voler aumentare lo spazio di swap esistente o aggiungerne di nuovi al tuo computer Linux..

  • Forse il tuo spazio di swap è in esecuzione molte volte al massimo o vicino al massimo.
  • È facile fare clic sull'opzione sbagliata durante la procedura di installazione e rifiutarsi di aggiungere lo swap al sistema inavvertitamente.
  • Forse hai deciso in precedenza che avevi così tanto memoria ad accesso casuale (RAM) non avevi bisogno di alcun cambiamento e hai cambiato idea.
  • A volte si eredita l'amministrazione di un sistema che non ha swap, per ragioni che non potrai mai scoprire.

La semplice risposta a tutto questo è aggiungere a scambiare file sul tuo computer. Questo è un file speciale, pre-assegnato e riservato per l'uso come spazio di scambio. Un file di scambio funzionerà insieme a qualsiasi scambio esistente che potresti avere, un file di scambio o una partizione di scambio.

In un momento, c'è stato un calo delle prestazioni dall'uso di un file di scambio rispetto a una partizione di scambio. Questo non è più il caso dei miglioramenti delle prestazioni per i dischi rigidi meccanici. (rotante) e una maggiore efficienza nelle funzioni di scambio all'interno del sistema operativo Linux. In realtà, alcune distribuzioni Linux ora creano file di scambio invece di partizioni di scambio.

Lo scambio non viene utilizzato solo come mezzo per liberare la RAM quando si sta esaurendo la memoria. È una parte importante di un sistema ben funzionante. Senza alcuno scambio, una sana gestione della memoria diventa molto difficile da raggiungere per il kernel. Vediamo il modo più semplice per aggiungere un po' di spazio di scambio.

Prima di tuffarci in: Btrfs e SSD

Ci sono due punti che vorremmo discutere rapidamente.

il File system Btrfs ha alcuni avvertimenti sui file di scambio. In un momento, c'è stato un conflitto tra Copia per iscritto btrfs natura, Volevo operare in un modo e scambiare file che dovevano funzionare in un altro. Alcune funzionalità 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 sono state soddisfatte con Btrfs. Perché, i file di scambio non erano supportati.

Dal kernel 5.0, può avere file di scambio su file system Btrfs se sono configurati con i seguenti requisiti:

  • Nessun file copy-on-write (NOCOW).
  • Non sono compressi.
  • Non stanno a cavallo tra diversi dischi rigidi.

La maggior parte dei lettori utilizzerà il file system ext4 predefinito, quindi questo non ti preoccuperà.

IMPARENTATO: Quale filesystem Linux dovrei usare?

Quando le unità a stato solido (SSD) erano disponibili per la prima volta, c'era la preoccupazione di usarli in situazioni che avevano frequenti scritture nel file system. Le persone sono state avvertite di non mettere spazio di swap sugli SSD e persino di evitare la registrazione del sistema su SSD.

Questo è molto meno preoccupante oggi, e molti SSD disponibili in commercio hanno un'aspettativa di vita che durerà più a lungo della maggior parte dei PC. Un file di scambio su un SSD funzionerà molto meglio di una partizione di scambio su un disco rigido meccanico.

IMPARENTATO: Quanto durano davvero le unità a stato solido??

Controllo dello spazio di swap esistente

Guarda prima di saltare. Vediamo quale spazio di swap è abilitato sul tuo computer. Puoi farlo in due modi, e useremo entrambi. il free Il comando mostrerà la memoria utilizzata e quella libera. il -h (leggibile dagli umani) causerà free utilizzare unità sensibili durante la visualizzazione dei valori dalla memoria.

libero -h

L'uscita di free mostra che non c'è spazio di scambio configurato su questa macchina.

Lo scambio non viene mai discusso senza RAM e senza che emerga RAM libera. Perché, È importante notare che la RAM libera è 237 MB. Non confonderlo con la RAM totale disponibile per l'uso. Tale valore è fornito dalla figura “a disposizione”, Che cos'è 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 di “buffer / cache”, Che cos'è 871 MB. Ma quel ricordo è ancora considerato e contato come “a disposizione”. Il contenuto della RAM "buf / cache "può essere eliminato immediatamente e utilizzato da qualsiasi applicazione che necessita di memoria.

Un altro modo per verificare se c'è spazio di swap disponibile è usare il swapon comando. il --show l'opzione non fa niente scambia le modifiche sul tuo computer. Fornisce solo statistiche.

swapon --show

Se non c'è output da questo comando, non c'è scambio configurato.

Se questi comandi hanno rivelato che è già stato configurato uno spazio di swap, la dimensione dello spazio di scambio esistente dovrebbe essere presa in considerazione nelle decisioni associate alla dimensione del file di scambio che stai per creare.

Di quanto spazio di swap ho bisogno?

La soluzione tradizionale era “il doppio della 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 sono state adattate di conseguenza. PC domestici con 32 GB di RAM non è raro in questi giorni. E non giudicherà 64 GB di spazio su disco rigido per scambiare spazio se lo hai 32 GB di RAM. È semplicemente eccessivo.

La quantità di scambi di cui hai bisogno è un argomento incendiario, paragonabile a “che è il miglior editor”. Una delle discussioni più sensate che abbiamo visto su questo argomento è nel Domande frequenti sullo scambio Ubuntu. È un approccio breve e di buon senso (benché, come molte persone, non capiscono come funziona lo scambio in Linux). C'è una tabella utile che mostra una quantità consigliata di spazio di swap per quanta RAM ha il tuo sistema e se il tuo computer va in letargo o meno..

E la buona notizia è che non importa quale valore scegli. Possiamo sempre eliminare un file di scambio e sostituirlo con uno più grande oppure, per questo motivo, uno più piccolo. Oppure puoi semplicemente aggiungere un altro file di scambio.

Selezionare una dimensione del file di scambio della tabellae fallo per un po'. Monitora l'utilizzo dello spazio di swap da parte del tuo sistema. Se è necessaria una messa a punto fine, i cambiamenti sono facili. Con file di scambio, è un lavoro di due minuti. Confrontalo con l'ottimizzazione delle partizioni su un computer Linux live.

IMPARENTATO: Cos'è Swappiness su Linux? (e come cambiarlo)

Creare il file di scambio

Non utilizzare il comando fallocate comando Per creare il file di scambio. Questo è dalla pagina di manuale di swapon:

The swap file implementation in the kernel expects to be able to write to
the file directly, senza l'assistenza del file system. 

This is a problem on files with holes or on copy-on-write files on file 
systems like Btrfs. Comandi come cp(1) o troncare(1) create files with 
holes. Questi file verranno rifiutati da swapon. 

File preallocati creati da 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. 

La soluzione più portatile per creare un file di swap è utilizzare dd(1) and 
/dev/zero.

Quindi, benché fallocate è più veloce, noi useremo dd per Creare il file di scambio. La macchina utilizzata per indagare su questo post ha due GB di RAM. Creiamo un file di swap da un GB.

Le alternative sono:

  • e: Il file di input. In questo esempio, stiamo usando /dev/zero che fornirà un flusso di zero byte.
  • a partire dal: Il file di output. Creeremo un file nella directory principale, chiamato swapfile.
  • bs: La dimensione del blocco in byte. Questo specifica quanti byte leggere dal file di input e scrivere nel file di output, allo stesso tempo.
  • raccontare: Quanti blocchi leggere e scrivere. Moltiplica 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 quando viene creato il file.

Possiamo vedere il numero di blocchi (record) che sono stati scritti nel file, la dimensione del file, il tempo necessario per creare il file e la velocità di trasferimento dati effettiva.

Utilizzare il ls comando per visualizzare il file nella directory principale:

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 per mkswap diverso dal percorso e dal nome del file:

sudo mkswap /swapfile

Il file è pronto per essere utilizzato come file di scambio. Presta attenzione all'avviso sui permessi dei file. Dovremo cambiarli in modo che l'utente root sia l'unico che può leggere e scrivere nel file di scambio.

Utilizzo del file di scambio

I permessi predefiniti sono troppo liberali, dobbiamo limitarli in modo che solo root possa utilizzare il file di scambio. Utilizzo chmod per modificare i permessi dei file:

sudo chmod 600 /file di scambio

Questo rimuove tutte le autorizzazioni dai membri del filegroup e da altri, ma consente al proprietario del file, radice, leggi e scrivi su file.

IMPARENTATO: Come usare il comando chmod in Linux

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.

Aggiungi il file di scambio a fstab

Per assicurarti che il tuo file di scambio sia disponibile dopo un riavvio, aggiungilo a /etc/fstab procedimento. Puoi usare qualsiasi editor di testo che preferisci, ma mostreremo la procedura utilizzando l'editor di testo grafico Gedit.

sudo gedit /etc/fstab

La riga che dobbiamo aggiungere alla fine del file è:

/swapfile nessuno swap sw    0    0

/ eccetera / fstab con la voce del file di scambio evidenziata

I campi sono:

  • File System: Il percorso e il nome del file di scambio.
  • punto di montaggio: Il file non è montato come filesystem, quindi l'ingresso è “nessuno”.
  • scrive: Questo è “scambio”.
  • scelte: 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 scambio che dovrebbe essere sotto il suo controllo swapon -a comando. È comune vedere “valori predeterminati” usato qui perché c'è una convinzione errata tra alcuni utenti Linux che questo campo sia ignorato. Come vedremo, Questo non è il caso. Perciò, ha senso usare l'opzione corretta.
  • Scarico: Questo può essere impostato a zero. È irrilevante per questo caso.
  • Passaggio: Questo può essere impostato a zero. È irrilevante per questo caso.

Salva le modifiche e chiudi l'editor.

IMPARENTATO: Come scrivere un file fstab in Linux

Controllo dell'utilizzo dello scambio

Per vedere se il tuo spazio di swap è in uso, usa el swapon comando con il --show opzione:

swapon --show

Le colonne sono:

  • Nome: Il nome della partizione di swap o del file di swap.
  • scrive: Il tipo di dispositivo di scambio.
  • Taglia: La dimensione della risorsa di scambio.
  • Utilizzo: La quantità di spazio di swap utilizzato.
  • prima: La priorità di questo spazio di scambio.

La priorità dello spazio di scambio

Ad ogni spazio di swap è assegnata una priorità. Se non ne fornisci uno, uno viene assegnato automaticamente. Le priorità assegnate automaticamente sono sempre negative. La gamma di priorità che possono essere assegnate manualmente è 0 un 32767. Le risorse di scambio con priorità più alte vengono utilizzate per prime.

Se più di uno spazio di swap ha la stessa priorità, usato alternativamente fino a quando entrambi sono pieni, quindi il sistema cerca lo spazio di swap con la priorità più bassa successiva. Se hai solo uno spazio di scambio, la priorità è irrilevante, Certo. Ma cambieremo la priorità del file di scambio che abbiamo creato per dimostrare come farlo.

Per determinare una priorità, Aggiungi il pri= opzione (priorità) a /etc/fstab iscrizione. Modifica la riga a cui hai aggiunto /etc/fstab per assomigliare a questo:

/swapfile nessuno swap sw,pri=10    0    0

In altre parole, Inserisci pri=10 al campo delle alternative, separato da “Sw” con una virgola. Non lasciare spazi tra “Sw”, la virgola e “pri = 10”. Riavvia il computer e usa il swapon --show comando:

scambiare -- mostrare

La priorità di questo spazio di scambio è stata elevata a 10. Il che è una prova positiva che il campo delle alternative nel /etc/fstab l'input non viene ignorato.

Scambia spazio in modo semplice

Passando attraverso l'esposizione e la spiegazione, possiamo creare un nuovo file di scambio facilmente e rapidamente come 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 rendere permanente quella goccia, in te /etc/fstab procedimento.

occhio. Lavoro fatto.

impostaTimeout(funzione(){
!funzione(F,B,e,v,n,T,S)
{Se(f.fbq)Restituzione;n=f.fbq=funzione(){n.callMethod?
n.callMethod.apply(n,argomenti):n.queue.push(argomenti)};
Se(!f._fbq)f._fbq = n;n.push=n;n.loaded=!0;n.version='2.0′;
n.coda=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(T,S) } (window, documento,'copione',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('dentro', '335401813750447');
fbq('traccia', 'Visualizzazione della pagina');
},3000);

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.