Oltre alla RAM c'è un cosiddetto Swap, che è una memoria virtuale, in cui il contenuto della RAM (pagine) può essere scambiato nel caso in cui non ci sia più RAM sufficiente. Questo scambio si trova sul disco e poiché la lettura e la scrittura del disco sono più lente della lettura dalla RAM, l'accesso alle pagine di memoria comporterà un ritardo. Oltre alla creazione di filesystem, gli amministratori Linux devono anche prestare molta attenzione all'utilizzo e alle esigenze dello scambio. Il post descrive 3 modi per aggiungere spazio di swap ai sistemi Linux:
2. aggiunta del volume di scambio
3. aggiunta del file di scambio
1. Aggiunta della partizione di swap
1. Esegui fdisk o separato utilità per identificare i dischi con spazio su disco sufficiente inutilizzato (non partizionato). Crea una nuova partizione di tipo swap (82) . Ad esempio:
# fdisk /dev/sdb ..... Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-652, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): +1G
Assicurati di modificare il tipo di partizione su 82 (Linux swap / Solaris) e di salvare la tabella delle partizioni alla fine.
Command (m for help): t Selected partition 1 Hex code (type L to list codes): 82 Changed system type of partition 1 to 82 (Linux swap / Solaris) Command (m for help): w The partition table has been altered!
2. Esegui il comando mkswap contro il dispositivo/partizione creato in precedenza utilizzando fdisk/parted. Facoltativamente -L può essere utilizzato per impostare ETICHETTA sulla partizione di swap.
# mkswap -L swap1 /dev/sdb1 Setting up swapspace version 1, size = 1060252 KiB LABEL=swap1, UUID=f0a884c9-59b3-47d2-9f06-5884f6a33806
3. Modificare il file /etc/fstab per montare il nuovo dispositivo di scambio all'avvio.
vi /etc/fstab /dev/sdb1 swap swap defaults 0 0
4. Eseguire il comando swapon per abilitare tutti i dispositivi di scambio elencati nel file /etc/fstab e verificare lo scambio aggiunto utilizzando "swap -s".
# swapon -a # swapon -s Filename Type Size Used Priority /dev/sdb1 partition 1060248 0 -1
1. Aggiunta del volume di scambio
1. Possiamo anche aggiungere il volume LVM come spazio di scambio. Per farlo, dobbiamo creare un volume in uno qualsiasi dei gruppi di volumi esistenti.
# vgs VG #PV #LV #SN Attr VSize VFree vg_geeklab 1 1 0 wz--n- 19.51g 1.94g
# lvcreate -L 1G -n lv_swap vg_geeklab Logical volume "lv_swap" created
# ll /dev/mapper/vg_geeklab-lv_swap lrwxrwxrwx. 1 root root 7 Oct 22 19:36 /dev/mapper/vg_geeklab-lv_swap -> ../dm-1
2. Esegui il comando mkswap sul volume e opzionalmente etichettalo usando l'opzione -L.
mkswap -L swap /dev/mapper/vg_geeklab-lv_swap mkswap: /dev/mapper/vg_geeklab-lv_swap: warning: don't erase bootbits sectors on whole disk. Use -f to force. Setting up swapspace version 1, size = 1048572 KiB LABEL=swap, UUID=6d228d34-b67e-4e38-82d4-f068c7bc097e
4. Per fare in modo che la voce di scambio persista tra i riavvii, inserire una voce nel file /etc/fstab.
# vi /etc/fstab /dev/mapper/vg_geeklab-lv_swap swap swap defaults 0 0
5. Infine, abilita lo scambio usando il comando swapon che a sua volta legge il file /etc/fstab per le voci di scambio.
# swapon -a # swapon -s Filename Type Size Used Priority /dev/dm-1 partition 1048568 0 -1
3. Aggiunta del file di scambio
1. Nel caso in cui non sia rimasto spazio libero su disco per creare una nuova partizione, possiamo anche utilizzare il file come swap. Per farlo, usa il comando dd per creare un file della dimensione richiesta.
# dd if=/dev/zero of=/root/swapfile01 bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 6.73334 s, 159 MB/s
2. Ho creato il file di scambio nella directory /root per renderlo più sicuro poiché l'utente normale non può accedere a quella directory. Per rendere più sicuro applicare le autorizzazioni appropriate al file.
# chmod 600 /root/swapfile01
3. Eseguire il comando mkswap per convertire il file in un file di scambio.
# mkswap -L swap01 /root/swapfile01 Setting up swapspace version 1, size = 1048572 KiB LABEL=swap01, UUID=ba5f7163-43f6-4001-84c1-2fca3935301f
4. Modificare il file /etc/fstab per aggiungere il nuovo file di scambio.
# vi /etc/fstab /root/swapfile01 swap swap defaults 0 0
5. Eseguire il comando swapon per abilitare tutti i dispositivi di scambio elencati nel file /etc/fstab.
# swapon -a # swapon -s Filename Type Size Used Priority /swap/swapfile01 file 1048568 0 -1
Rimozione dello scambio
Nel caso in cui desideri rimuovere lo scambio aggiunto, puoi farlo con il comando swapoff. Assicurati di rimuovere la rispettiva voce di scambio dal file /etc/fstab dopo aver disabilitato lo scambio.
# swapoff -a ### this will remove all swap(s) mentioned in .etc.fstab # swapoff /dev/sdb1 ### to remove individual swap
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
# grep Swap /proc/meminfo SwapCached: 0 kB SwapTotal: 1060248 kB SwapFree: 1060248 kB
# top ....... Mem: 1004608k total, 934780k used, 69828k free, 30124k buffers Swap: 1060248k total, 0k used, 1060248k free, 770156k cached .......
# 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 0