Neben dem RAM gibt es einen sogenannten Swap, einen virtuellen Speicher, in den RAM-Inhalte (Seiten) eingelagert werden können, falls nicht mehr genügend RAM zur Verfügung steht. Dieser Swap befindet sich auf der Disc, und da das Lesen und Schreiben auf der Disc langsamer ist als das Lesen aus dem RAM, führt der Zugriff auf Speicherseiten dort zu einer Verzögerung. Neben der Dateisystemerstellung müssen Linux-Administratoren auch der Swap-Nutzung und -Anforderungen große Aufmerksamkeit widmen. Der Beitrag beschreibt 3 Möglichkeiten, Linux-Systemen Auslagerungsspeicher hinzuzufügen:
1. Swap-Partition hinzufügen
2. Swap-Volume hinzufügen
3. Auslagerungsdatei hinzufügen
1. Swap-Partition hinzufügen
1. Führen Sie fdisk aus oder getrennt Dienstprogramm zum Identifizieren von Festplatten mit ausreichend ungenutztem (nicht partitioniertem) Speicherplatz. Erstellen Sie eine neue Partition vom Typ swap (82) . Zum Beispiel:
# 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
Stellen Sie sicher, dass Sie den Partitionstyp auf 82 (Linux Swap / Solaris) ändern und speichern Sie die Partitionstabelle am Ende.
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. Führen Sie den Befehl mkswap aus gegen das Gerät/die Partition, die zuvor mit fdisk/parted erstellt wurde. Optional -L kann zum Setzen von LABEL verwendet werden auf der Swap-Partition.
# mkswap -L swap1 /dev/sdb1 Setting up swapspace version 1, size = 1060252 KiB LABEL=swap1, UUID=f0a884c9-59b3-47d2-9f06-5884f6a33806
3. Ändern Sie die Datei /etc/fstab, um das neue Auslagerungsgerät beim Booten zu mounten.
vi /etc/fstab /dev/sdb1 swap swap defaults 0 0
4. Führen Sie den Befehl swapon aus, um alle in der Datei /etc/fstab aufgeführten Swap-Geräte zu aktivieren, und überprüfen Sie den hinzugefügten Swap mit „swap -s“.
# swapon -a # swapon -s Filename Type Size Used Priority /dev/sdb1 partition 1060248 0 -1
1. Swap-Volume hinzufügen
1. Wir können auch ein LVM-Volume als Auslagerungsbereich hinzufügen. Dazu müssen wir ein Volume in einer der vorhandenen Volume-Gruppen erstellen.
# 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. Führen Sie den mkswap-Befehl für das Volume aus und kennzeichnen Sie es optional mit der Option -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. Damit der Swap-Eintrag über Neustarts hinweg bestehen bleibt, erstellen Sie einen Eintrag in der Datei /etc/fstab.
# vi /etc/fstab /dev/mapper/vg_geeklab-lv_swap swap swap defaults 0 0
5. Aktivieren Sie abschließend den Swap mit dem Befehl swapon, der wiederum die Datei /etc/fstab nach Swap-Einträgen liest.
# swapon -a # swapon -s Filename Type Size Used Priority /dev/dm-1 partition 1048568 0 -1
3. Auslagerungsdatei hinzufügen
1. Falls auf der Festplatte kein freier Speicherplatz mehr vorhanden ist, um eine neue Partition zu erstellen, können wir die Datei auch als Auslagerung verwenden. Verwenden Sie dazu den Befehl dd, um eine Datei der erforderlichen Größe zu erstellen.
# 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. Ich habe die Auslagerungsdatei im /root-Verzeichnis erstellt, um sie sicherer zu machen, da normale Benutzer dieses Verzeichnis nicht betreten können. Um die Datei sicherer zu machen, wenden Sie entsprechende Berechtigungen auf die Datei an.
# chmod 600 /root/swapfile01
3. Führen Sie den Befehl mkswap aus, um die Datei in eine Auslagerungsdatei zu konvertieren.
# mkswap -L swap01 /root/swapfile01 Setting up swapspace version 1, size = 1048572 KiB LABEL=swap01, UUID=ba5f7163-43f6-4001-84c1-2fca3935301f
4. Ändern Sie die Datei /etc/fstab, um die neue Auslagerungsdatei hinzuzufügen.
# vi /etc/fstab /root/swapfile01 swap swap defaults 0 0
5. Führen Sie den Befehl swapon aus, um alle in der Datei /etc/fstab aufgeführten Swap-Geräte zu aktivieren.
# swapon -a # swapon -s Filename Type Size Used Priority /swap/swapfile01 file 1048568 0 -1
Swap wird entfernt
Falls Sie den hinzugefügten Swap entfernen möchten, können Sie dies mit dem Befehl swapoff tun. Stellen Sie sicher, dass Sie den entsprechenden Swap-Eintrag aus der Datei /etc/fstab entfernen, nachdem Sie den Swap deaktiviert haben.
# swapoff -a ### this will remove all swap(s) mentioned in .etc.fstab # swapoff /dev/sdb1 ### to remove individual swap
So überprüfen Sie die Swap-Nutzung
Um die Swap-Nutzung zu überprüfen, können Sie eines der folgenden Dienstprogramme verwenden:
1. kostenlos
# 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. oben
# 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 0