Mi sembra che un file di scambio sia più flessibile.
Mi sembra che un file di scambio sia più flessibile.
Risposte:
Un file di scambio è più flessibile ma anche più fallibile di una partizione di scambio. Un errore del file system potrebbe danneggiare il file di scambio. Un file di scambio può essere un problema per l'amministratore, poiché il file non può essere spostato o eliminato. Un file di scambio non può essere utilizzato per l'ibernazione. Un file di scambio era leggermente più lento in passato, anche se al giorno d'oggi la differenza è trascurabile.
Il vantaggio di un file di scambio non è di dover decidere in anticipo la dimensione. Tuttavia, sotto Linux, non è ancora possibile ridimensionare un file di scambio online: è necessario annullare la registrazione, ridimensionare, quindi registrare nuovamente (o creare un altro file e rimuovere quello vecchio). Quindi non ci sono molti vantaggi in un file di swap su Linux, rispetto a una partizione di swap. È utile soprattutto quando hai temporaneamente bisogno di più memoria virtuale, piuttosto che come dispositivo permanente.
Una partizione di swap può essere preferita perché evita una dipendenza dal file system quando tutto ciò che serve è un pool di memoria indirizzabile.
Nulla ti impedisce di utilizzare un file di scambio anziché una partizione di scambio o in aggiunta a una partizione di scambio.
Crea il file:
dd if=/dev/zero of=/extraswap bs=1M count=512
Inizializza i contenuti del file:
mkswap /extraswap
Usalo:
swapon /extraswap
Vedi se ha funzionato:
free -m
Per iniziare a usare il file di scambio sempre all'avvio, modifica / etc / fstab e aggiungi
/extraswap swap swap defaults 0 0
[1] http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/custom-guide/s1-swap-adding.html
moreswap
un terminale se improvvisamente ho bisogno di spazio di scambio extra:alias moreswap='swapfile=`mktemp /tmp/swapXXXX` && sudo touch $swapfile && sudo dd bs=512 count=1M if=/dev/zero | tee $swapfile | pv -s 512M && sudo mkswap $swapfile && sudo swapon $swapfile'
Forse il motivo principale è che il kernel principale di sospensione su disco non funziona con i file di scambio. Ad esempio le istruzioni del wiki Debian devono essere installate uswsusp
se ne hai bisogno.
Più recentemente, i file di scambio non funzionano se il file system è btrfs
, quindi è più semplice per le distribuzioni creare sempre lo scambio come partizione.
Si dice vagamente che l'uso di un file per lo scambio aveva prestazioni potenzialmente inferiori rispetto a una partizione, prima della versione 2.6 del kernel. https://www.kernel.org/doc/gorman/html/understand/understand014.html#text15
Per completezza aggiungerò la mia risposta:
Come detto da @Gilles, un file di scambio non può essere utilizzato per l'ibernazione. Quando si utilizza un file di scambio, il sistema deve individuare l'intestazione del file di scambio, ma per fare ciò è necessario montare il filesystem che contiene il file di scambio e un filesystem journaled - ad esempio ext3, ext4 e praticamente tutti i moderni filesystem usati da Linux - non può essere montato durante il ripristino dal disco. (In realtà, ci sono modi per farlo, ma piuttosto ingombranti.)
Fonte: https://www.kernel.org/doc/Documentation/power/swsusp-and-swap-files.txt
Penso che sia principalmente perché i tempi di accesso ai dati situati su una partizione sono inferiori. Il punto del file di scambio è di più per aiutare l'amministratore di sistema quando è davvero a corto di RAM e deve eseguire enormi operazioni che potrebbero causare l'arresto anomalo del suo sistema. In questo caso creerà sporadicamente file di scambio quando necessario.
Ma comunque puoi averli entrambi.