Qual è lo scopo di più file di scambio


29

Durante l'installazione della maggior parte (se non di tutte) le distro di linux, il disco rigido è partizionato per includere una partizione di swap di default.

È possibile modificare questo comportamento con swapon -p priority

Secondo le pagine man, la priorità è:

PRIORITY
Each swap area has a priority, either high or low. The default priority is 
low. Within the low-priority areas, newer areas are even lower priority 
than older areas.
All priorities set with swapflags are high-priority, higher than default. 
They may have any non-negative value chosen by the caller. Higher numbers 
mean higher priority.

Swap pages are allocated from areas in priority order, highest priority 
first. For areas with different priorities, a higher-priority area is 
exhausted before using a lower-priority area. If two or more areas have the 
same priority, and it is the highest priority available, pages are 
allocated on a round-robin basis between them.

As of Linux 1.3.6, the kernel usually follows these rules, but there are 
exceptions

Perché mai avresti bisogno di più di un file di scambio?
È prassi comune per gli amministratori di sistema configurare più di uno scambio?

Risposte:


48

Ci sono così tanti motivi per avere più aree di scambio (non devono essere file), anche se hai un solo mandrino.

20-20 senno di poi: hai schierato una macchina con una singola area di scambio, poi alla fine hai capito che non era abbastanza. Non è possibile ridistribuire la macchina a piacimento, ma è possibile creare un'altra area di scambio (probabilmente un file) fino a quando non viene ripristinata la disposizione della partizione.

Ridimensionamento o spostamento delle aree di scambio: non è possibile ridimensionare le aree di scambio (come indicato da Evan Teitelman ). E non puoi semplicemente swapoffcreare una nuova area di scambio e poi di swaponnuovo a meno che tu non abbia abbastanza RAM: swapoffvuole spostare tutte le pagine scambiate su RAM prima di lasciare l'area di scambio. Quindi fai un'area di scambio temporanea, swapoffl'originale, attendi che tutte le pagine si siano spostate dall'area di scambio precedente a quella temporanea, ridimensiona la partizione di scambio originale mkswap, quindi swaponquella ridimensionata e swapoffquella temporanea. Le pagine scambiate vengono copiate dall'area di scambio temporanea a quella ridimensionata e il gioco è fatto. Se stai spostando aree di scambio, non hai nemmeno bisogno di un'area temporanea. mkswapquello nuovo swapon, alloraswapoff quello vecchio e tutto è spostato.

Sostituzione veloce pazza: i dischi moderni utilizzano la registrazione dei bit di zona . La prima zona del disco è la più veloce. È possibile che si desideri misurare il disco e creare una partizione che copra esattamente la prima zona più veloce dell'unità. Potrebbe essere inferiore alla dimensione di swap prevista. Quindi aggiungi più partizioni su più dischi, usando la stessa tecnica.

Cambio rapido pazzo, il sequel: in alternativa, una volta che sai dove sono le zone più veloci dei tuoi dischi, puoi creare aree di scambio ad alta priorità nella prima zona, aree di scambio a priorità inferiore nella seconda zona, ecc. In questo modo il tuo sistema di scambio riconosce automaticamente per bilanciare il carico in tutte le zone veloci del disco, preferire le zone più veloci e utilizzare le zone più lente come area di overflow quando si presenta la necessità.

Bilanciamento del carico simmetrico: su un sistema ben costruito con molti mandrini (come un server), mi piace avere più partizioni di swap che occupano l'inizio di ogni disco (per sfruttare la registrazione dei bit di zona ). Hanno tutte priorità identiche, quindi il kernel bilancerà il carico dello swap. Un mandrino può darti 100 MB / s, ma lo scambio su tutti i mandrini potrebbe darti un multiplo di quello. (ingenuamente parlando)

Bilanciamento del carico sensibile al collo di bottiglia : in pratica, tuttavia, esistono altri colli di bottiglia. Ad esempio, un server a 16 dischi può avere quattro porte SATA a 6 Gbps, ognuna con un moltiplicatore a quattro porte e quattro dischi che condividono la larghezza di banda. Se sei a conoscenza di questo, puoi organizzare i tuoi spazi di swap in modo che il disco 1 sulle porte 1–4 abbia la priorità più alta, i secondi dischi sulle porte 1–4 abbiano la seconda priorità più alta, ecc. moltiplicatori di porte.

Scambio di dispositivi con prestazioni diverse: (come menzionato da Luke) se il tuo sistema non è un server nuovo di zecca ed è cresciuto organicamente nel corso degli anni, potrebbe avere dispositivi di blocco significativamente più veloci di altri. Ti consigliamo di passare prima al dispositivo più veloce, quindi al successivo più veloce, ecc.

Considerazioni sulle dimensioni: (per gentile concessione di David Kohen ), forse mettere tutto lo swap su un'unità lascia alcuni concerti liberi sull'unità (sembra uno scenario del 2001, ma ci sono molti dispositivi vecchi o incorporati in cui questo potrebbe essere un problema). Dividilo su tutte le unità e, oltre a tutti gli altri vantaggi di cui sopra, ottieni un migliore utilizzo dello spazio su disco per unità. Una cosa è perdere un paio di concerti per fuso e un altro perdere 300 concerti da un disco.

Emergenze: hai esattamente 96 ore per presentare la tua tesi di dottorato e il tuo ultimo esperimento (quello che probabilmente ti farà ottenere quel premio Nobel, così come lettere funky miste dopo il tuo nome) sta succhiando la memoria a prezzi impressionanti. Hai quasi finito lo scambio. Si crea un file di scambio con una priorità inferiore alla priorità del dispositivo di scambio principale: il kernel lo utilizzerà come spazio di scambio di overflow. Potresti anche installare swapd per farlo automaticamente, così avrai anche molto spazio di swap per quelle enormi emacse corse LaTeX.

Scambio tra diversi media: Linux non può passare a dispositivi a caratteri, ma ci sono molti media diversi, fisici e virtuali: SSD (nota: probabilmente non si desidera scambiare su SSD), dozzine di tipi incredibilmente diversi di spinning hard dischi, floppy (sì, puoi scambiare su un floppy - puoi sempre spararti nel piede con Unix), volumi DRBD , iSCSI, volumi LVM, partizioni crittografate LUKS, ecc. (tra cui surreali, strabilianti combinazioni di livelli di questi - scambiare su LUKS su LVM su un'unità ZIP con porta parallela su iSCSI su IEEE802.3ad Ethernet aggregata? Nessun problema, sporco pervertito). Questi sono scenari di nicchia e sono pensati per supportare i requisiti di nicchia.


Grazie, non ho familiarità con la registrazione dei bit Zone. Sono curioso di spostare la mia partizione di swap
sull'accattonaggio

1
Aggiungerei una ragione storica per cui in passato l'utilizzo di un disco come dispositivo di scambio a volte non era efficace in quanto utilizzava troppo spazio e rendeva il resto del disco in inutile o meno utile e suddivideva lo spazio di scambio su più dispositivi fornito un compromesso tra un ampio spazio di scambio e la quantità di spazio contiguo disponibile sul disco.
Didi Kohen,

Questo è ancora il caso. Inoltre, potresti voler che lo swap occupi la zona più veloce del disco, e solo quella. Il che ti dà solo così tanto spazio per giocare con ogni mandrino. Anche se storicamente non è stato così, perché gli HDD suddivisi in zone sono una cosa "nuova". (la mia versione di "storico" è quando la memoria è stata misurata in parole)
Alexios,

+1 per "Puoi sempre
spararti

3

Unità disco a velocità multipla. È possibile impostare quello più veloce da utilizzare per primo seguito da quelli più lenti se quello fallito.


3

Non è possibile espandere i file di scambio (almeno, per quanto ne so) o scambiare le partizioni mentre sono in uso. Se stai per riempire l'area di scambio disponibile, potresti dover creare ulteriori file di scambio.

Inoltre, se un sistema necessita di 4 GB di spazio di swap e dispone di due unità di archiviazione da 2 GB, deve utilizzare almeno due aree di swap.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.