Cos'è lo spazio di scambio?
Lo spazio di scambio in Linux viene utilizzato quando la quantità di memoria fisica (RAM) è piena. Se il sistema necessita di più risorse di memoria e la memoria fisica è piena, le pagine inattive in memoria vengono spostate nello spazio di scambio. Sebbene lo spazio di scambio possa aiutare le macchine con una piccola quantità di RAM, non dovrebbe essere considerato un sostituto per più RAM. Lo spazio di scambio si trova sui dischi rigidi, che hanno un tempo di accesso più lento rispetto alla memoria fisica.
Lo spazio di scambio può essere una partizione di scambio dedicata (consigliata), un file di scambio o una combinazione di partizioni di scambio e file di scambio.
Cos'è una partizione di swap?
Le partizioni di scambio sono molto diverse dai filesystem. I filesystem (di solito) memorizzano alberi di nodi di directory per fare riferimento a inode di file, che quindi fanno riferimento ai blocchi nei file. Tutto sul disco ha o aveva un nome una volta e puoi ricostruire facilmente quali blocchi si trovano in quali file o directory o non sono più in uso. (fsck lo fa ad ogni riavvio non pulito.)
Le partizioni di scambio contengono pagine di memoria "casuali" di processi che non sono stati utilizzati abbastanza spesso per tenerli fuori dallo scambio. Quei blocchi non includeranno librerie o eseguibili. Swap conterrà solo le pagine create al volo dalle applicazioni per i dati. Non ci sono informazioni sull'ordine sullo scambio effettivamente contenuto nella partizione di scambio, tutte queste informazioni sono significative solo quando la macchina è in esecuzione ed è probabile che la macchina ne abbia bisogno in fretta, quindi le tabelle di mappatura delle pagine sono memorizzate nel kernel non sostituibile memoria.
Cos'è un file di scambio?
In alcune situazioni è difficile aggiungere una nuova partizione di swap. Linux non consente di modificare le definizioni delle partizioni e se non possiamo aggiungere nuove partizioni senza eliminare le partizioni esistenti. In questo caso i file di scambio possono essere utili.
Come si aggiunge un file di scambio?
Determina la dimensione del nuovo file di scambio e moltiplica per 1024 per determinare la dimensione del blocco. Ad esempio, la dimensione del blocco di un file di scambio da 64 MB è 65536. Al prompt della shell come root, digita il seguente comando con conteggio uguale alla dimensione del blocco desiderata:
# mkdir /data2 # dd if=/dev/zero of=/data2/swapfile1 bs=1024 count=65536
Configura il file di scambio con il comando:
# mkswap /data2/swapfile1
Per abilitare il file di scambio immediatamente ma non automaticamente all'avvio:
# swapon /data2/swapfile1
Per abilitarlo all'avvio, modifica /etc/fstab per includere:
/data2/swapfile1 swap swap defaults 0 0
Al successivo avvio del sistema, abiliterà il nuovo file di scambio.
Come aggiungere partizione di scambio e volume di scambio?
Fare riferimento al post di seguito per ottenere la procedura dettagliata.
Come aggiungere spazio di swap in LinuxCome faccio a sapere quanto spazio di swap è configurato sul mio Linux?
Usa swapon -s comando per ottenere i dettagli dello scambio. Questo ti dirà quanto è stato allocato per lo scambio e quanto viene utilizzato. Ad esempio:
# swapon -s Filename Type Size Used Priority /dev/dm-0 partition 2097148 0 -1
Qual è la differenza tra lo scambio e il paging?
Lo scambio è uno dei meccanismi Unix per adattarsi alla limitazione delle dimensioni della memoria spostando interi processi su disco per recuperare memoria.
Il paging è un altro meccanismo Unix per gestire i limiti della memoria. A differenza dello scambio, in cui interi processi vengono spostati dentro e fuori dalla memoria, il paging sposta solo le singole pagine dei processi sul disco. Il paging non è un problema grave come lo scambio, poiché l'intero programma non deve risiedere in memoria per essere eseguito. Una piccola quantità di paging potrebbe non influire in modo significativo sulle prestazioni di un sistema. Tuttavia, le prestazioni di un sistema possono peggiorare rapidamente all'aumentare dell'attività di paging.
Lo spazio di scambio su disco viene utilizzato per contenere le pagine di memoria che sono state paginate o scambiate. Una carenza di spazio di scambio può causare sintomi quali blocco del sistema, tempi di risposta scadenti e generazione non riuscita di nuovi processi.
Come posso abilitare lo scambio?
Per prima cosa controlla se lo scambio è abilitato:
# swapon -s
Per abilitare lo scambio, controlla le voci di scambio nel tuo /etc/fstab
# grep swap /etc/fstab /dev/mapper/centos-swap swap swap defaults 0 0
e usa il comando '/sbin/swapon -a' per abilitare tutte le partizioni di scambio elencate in /etc/fstab.
# swapon -a
Come rimuovere la partizione di swap?
Se lo swap partiton non è attualmente in uso è possibile smontare lo swap con il comando swapoff. Al prompt della shell come root, esegui il seguente comando per assicurarti che la partizione di swap sia disabilitata (dove /dev/hdb2 è la partizione di swap):
# swapoff /dev/hdb2
Rimuovere la sua voce da /etc/fstab. Rimuovere la partizione utilizzando parted o fdisk.
Come rimuovere il file di scambio?
Come root, esegui il comando seguente per disabilitare il file di scambio (dove /swapfile1 è il file di scambio):
# swapoff /data2/swapfile1
Rimuovi la sua voce da /etc/fstab e rimuovi il file effettivo:
# rm /data2/swapfile1
Come rimuovere la partizione di swap?
Se lo swap partiton non è attualmente in uso è possibile smontare lo swap con il comando swapoff. Al prompt della shell come root, esegui il seguente comando per assicurarti che la partizione di swap sia disabilitata (dove /dev/hdb2 è la partizione di swap):
# swapoff /dev/hdb2
Rimuovere la sua voce da /etc/fstab. Rimuovere la partizione utilizzando parted o fdisk.
Come rimuovere il file di scambio?
Come root, esegui il comando seguente per disabilitare il file di scambio (dove /swapfile1 è il file di scambio):
# swapoff /data2/swapfile1
Rimuovi la sua voce da /etc/fstab e rimuovi il file effettivo:
# rm /data2/swapfile1
Come controllare l'utilizzo di swap
Per verificare l'utilizzo dello scambio, puoi utilizzare una delle seguenti utilità:
1. gratuito
# free total used free shared buffers cached Mem: 1004608 934036 70572 0 30124 769640 -/+ buffers/cache: 134272 870336 Swap: 1060248 0 1060248
2. /proc/meminfo
# grep Swap /proc/meminfo SwapCached: 0 kB SwapTotal: 1060248 kB SwapFree: 1060248 kB
3. in alto
# top ....... Mem: 1004608k total, 934780k used, 69828k free, 30124k buffers Swap: 1060248k total, 0k used, 1060248k free, 770156k cached .......
4. vmstat
# vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 69828 30124 770156 0 0 40 403 23 22 0 1 99 0 0Domande per interviste su Linux – Permessi speciali (SUID, SGID e sticky bit)