Wie wird der Swap-Speicherplatz erhöht?

104

Ich habe standardmäßig 250 MB Auslagerungsspeicher in Ubuntu, und ich möchte es auf eine größere Größe erweitern. Ich brauche 800MB, was meiner Meinung nach ausreichen wird, um mehrere Anwendungen zu öffnen, ohne das aktuelle Limit des Swap zu überschreiten. Ich hoffe, dass mir jemand helfen kann.

    
Bruno 21.08.2012, 22:20

5 Antworten

137

Sie können immer eine Auslagerungsdatei

erstellen

um mehr Swap Space hinzuzufügen. Dies ist nicht in jeder Hinsicht dasselbe wie eine Swap-Partition, aber es wird einfach und dynamisch sein.

Ändere /media/fasthdd/swapfile.img auf alles was du magst, zum Beispiel kann es auch /swap.img sein. /media/fasthdd/swapfile.img ist nur ein Beispiel Dateiname, wenn Sie diesen verwenden, dann muss natürlich das Verzeichnis /media/fasthdd/ mit genügend freiem Speicherplatz für Ihre neue Auslagerungsdatei vorhanden sein.

Verwenden Sie eine der Terminal-Anwendungen, um Befehle auszuführen. Alle Befehle sollten mit root-Rechten ausgeführt werden. Dazu können Sie sudo am Anfang jedes Befehls hinzufügen oder sudo bash ausführen, bevor Sie Befehle ausführen.

1. Create empty file:
Diese Datei enthält den Inhalt des virtuellen Speichers, damit die Datei groß genug für Ihre Bedürfnisse ist. Dieser erstellt eine 1-GB-Datei, die + 1 GB Auslagerungsspeicher für Ihr System bedeutet:

dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=1M

Wenn Sie eine 3Gb-Datei erstellen möchten, ändern Sie den Zählwert in count=3M . Weitere Informationen finden Sie in man dd .

2. Bake-Swap-Datei:
Der folgende Befehl wird "swap filesystem" in Ihrer frischen Auslagerungsdatei machen.

mkswap /media/fasthdd/swapfile.img

3. Aufruf beim Booten:
Um sicherzustellen, dass Ihr neuer Swap-Space beim Hochfahren des Computers aktiviert ist, sollten Sie ihn zur Dateisystemkonfigurationsdatei /etc/fstab hinzufügen. Fügen Sie es am Ende der Datei hinzu, dies wird empfohlen, da andere Dateisysteme ( mindestens eines mit Auslagerungsdatei ) im Lese- / Schreibmodus aktiviert werden müssen, bevor wir auf Dateien zugreifen können.

# Add this line to /etc/fstab
/media/fasthdd/swapfile.img swap swap sw 0 0

4. Aktivieren:
Sie können entweder Ihren Computer neu starten oder eine neue Auslagerungsdatei mit dem folgenden Befehl manuell aktivieren:

swapon /media/fasthdd/swapfile.img

Wenn alles gut geht

Sie sollten sehen, dass mehr Auslagerungsspeicher zur Verwendung verfügbar ist. Sie können die folgenden Befehle verwenden, um Ihren neuen Austausch zu überprüfen und zu bestätigen, dass er aktiv ist:

cat /proc/swaps
  Filename                           Type       Size    Used    Priority
  /media/fasthdd/swapfile.img        file       8388604 2724    -1

grep 'Swap' /proc/meminfo
  SwapCached:         4772 kB
  SwapTotal:       8388604 kB
  SwapFree:        8355812 kB
    
Sampo Sarrala 21.08.2012, 22:59
30

GUI-Methode zum Vergrößern der Swap-Partition

Eine weitere Möglichkeit zur Erhöhung der Swap-Größe besteht in der Verwendung des GParted-Partitions-Editors . Kurz gesagt, ändern Sie die Größe der Swap-Partition, klicken Sie mit der rechten Maustaste darauf und wählen Sie "Swapon".

Es ist einfacher, gparted-live-disk oder eine Ubuntu-Live-Diskette zu booten (so dass alle /dev/sda -Partitionen deaktiviert werden). Wenn Sie Ubuntu Live Disk ausführen, müssen Sie gparted installieren, indem Sie die folgenden Befehle ausführen:

sudo apt-get update
sudo apt-get install gparted && sudo gparted

Sie müssen die Größe der Swap-Partition nur dann erhöhen können, wenn vor oder nach der Swap-Partition ein nicht zugewiesener Speicherplatz vorhanden ist. Wenn es keinen unzugeordneten Speicherplatz (den Speicherplatz, den wir mit der Swap-Partition hinzufügen wollen) unter oder über der Swap-Partition gibt, müssen wir die Größe der Partitionen ändern und den nicht zugewiesenen Speicherplatz abrufen.

Fall 1 - nicht zugeordneter Speicherplatz vor oder nach der Swap-Partition

Im obigen Screenshot hatte ich 11,4 GB nicht zugeordneten Speicherplatz vor dem Linux-Swap und 12,8 GB nach der Swap-Partition.

  • Um die Größe zu ändern, klicken Sie mit der rechten Maustaste auf die Swap-Partition (/ dev / sda9 hier) und klicken Sie auf die Option Größe ändern / Verschieben. Es sieht so aus:

  • Ziehen Sie die Schiebereglerpfeile nach links oder rechts und klicken Sie dann auf die Schaltfläche Größe ändern / Verschieben. Ihre Swap-Partition wird in der Größe angepasst.

Fall 2 - nicht zugeordneter Speicherplatz liegt zwischen den Partitionen

Im obigen Screenshot lag der nicht zugeordnete Speicherplatz, den wir zur Swap-Partition hinzufügen wollen, zwischen dev/sda7 und /dev/sda8 . Um den nicht zugeordneten Speicherplatz von dieser Position auf etwas oberhalb der Swap-Partition zu verschieben, müssen wir den einfachen Schritten folgen unten gegeben,

  • Klicken Sie mit der rechten Maustaste auf die Partition / dev / sda8 und klicken Sie auf die Option Ändern / Verschieben .

  • klicke und bewege den Schieberegler ganz nach links, so dass der nicht zugewiesene Speicherplatz unterhalb der /dev/sda8 -Partition unter /dev/sda8 liegt. Danach klicke auf die Schaltfläche Größe ändern / verschieben.

  • Und jetzt war der nicht zugewiesene Speicherplatz knapp über der Swap-Partition, die wie Fall 1 war. Nun folgt Fall 1.

Fall 3 - wenn der nicht zugeordnete Speicherplatz außerhalb der erweiterten Partition vorhanden war

Ich hatte einen nicht zugewiesenen Speicherplatz von 18 GB direkt unterhalb der erweiterten Partition . Um diesen Bereich zur Linux-swap-Partition (die in der erweiterten Partition vorhanden war) hinzuzufügen, müssen wir dem folgen unter den Schritten,

  • Klicken Sie mit der rechten Maustaste auf die erweiterte Partition und wählen Sie die Option Größe ändern / verschieben aus, so wie im folgenden Screenshot

  • Klicken und ziehen Sie den Pfeil ganz nach rechts und klicken Sie auf Größe ändern / verschieben , so dass der nicht zugewiesener Speicherplatz von 18 GB kommt am Ende der erweiterten Partition. Ich hatte einen 14,80 GB nicht zugeordneten Speicherplatz bereits am unteren Rand vorhanden und nun die 18,34 GB kombiniert damit, um nicht zugeordneten Speicherplatz von (18,34 + 14,80 GB) am unteren Rand von die erweiterte Partition.

  • Jetzt gab es einen nicht zugewiesenen Speicherplatz direkt unterhalb der Swap-Partition. Es wird wie Fall 1 sein und dann Fall 1 folgen.

HINWEIS: Vergessen Sie nicht, eine Sicherungskopie aller wichtigen Daten zu erstellen, bevor Sie mit den oben beschriebenen Schritten fortfahren.

    
Avinash Raj 11.12.2013 07:11
19

Sie können auch fallocate verwenden, wenn Sie Speicherplatz für Ihre Auslagerungsdatei reservieren möchten, ohne die Datei mit 0 bis dd zu füllen.

von der MAN Seite:

DESCRIPTION
   fallocate  is  used  to preallocate blocks to a file.  For filesystems which support the fallocate system call, this is done quickly by
   allocating blocks and marking them as uninitialized, requiring no IO to the data blocks.  This is much faster than creating a  file  by
   filling it with zeros.

Wenn Sie bereits ein swap definiert haben, können Sie es entweder entfernen oder behalten, und Ihr * nix wird es verwalten (noch besser, indem Sie eine swapon -Priorität definieren). Dies kann nützlich sein, falls Sie Ihren Swap zwischen verschiedenen Geräten verteilen möchten (basierend auf ihrer Geschwindigkeit oder anderen benutzerdefinierten Anforderungen, siehe Was ist der Zweck von mehreren Auslagerungsdateien auf StackExchange ).

Einfache fallocate Verwendung zum Hinzufügen einer zweiten Auslagerungsdatei

Überprüfen Sie die Auslagerungssituation:

$ sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        262140  246276  -1

Erstellen Sie eine 4G-Auslagerungsdatei

Standardmethode zum Erstellen und Aktivieren einer Auslagerungsdatei.

$ size="4G" && file_swap=/swapfile_$size.img && sudo touch $file_swap && sudo fallocate -l $size /$file_swap && sudo mkswap /$file_swap && sudo swapon -p 20 /$file_swap

Machen Sie Ihren Tausch dauerhaft

Fügen Sie eine Zeile in Ihrer /etc/fstab -Datei hinzu, damit der Swap beim nächsten Neustart initialisiert wird (wir aktualisieren auch hier die Priorität des neu erstellten Swap-Space und aktualisieren die Priorität der alten Swap-Datei)

# in your /ets/fstab file
/swapfile    none    swap    sw,pri=10      0       0
/swapfile_4G.img     none    swap    sw,pri=20      0       0

Überprüfen Sie die Auslagerungssituation nach dem Neustart:

$ sudo swapon  -s
Filename       Type     Size        Used    Priority
/swapfile      file     262140      0       10
/swapfile_4G.img       file     4194300     0       20

Entfernen Sie einen der Swap-Bereiche (zum Beispiel die ursprünglichen 256 MB)

Bearbeiten /etc/fstab

Entfernen Sie die Zeile für den zu entfernenden Swap

Löschen Sie den Austausch

Löschen und entfernen Sie die Auslagerungsdatei.

sudo swapoff /mnt/swapfile && sudo rm /mnt/swapfile

Ressourcen:

3

In meinem Fall hatte ich bereits eine Auslagerungsdatei, die ich für 1GB hielt, aber als ich sie näher betrachtete, war sie nur 256 MB groß und als ich meine Rails-Assets vorkompilierte, hatte der Server keinen Speicher mehr

Errno::ENOMEM: Cannot allocate memory - nodejs

Ich habe meine Auslagerungsdatei wie hier beschrieben erstellt: Link

Jetzt ist die Zeile, die eine leere Datei namens /swapfile erstellt, wie folgt:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k

Um die Größe der Auslagerungsdatei zu ändern, musste ich folgende einfache Schritte ausführen:

# Reboot the system to be able to switch swapping off
sudo reboot

# Turn swap off
sudo swapoff -a

# Delete the '/swapfile'
rm -f /swapfile

# Recreate the swapfile but with double file size memory
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k

# Turn swap back on
sudo swapon -s

# Change the permission to non-world-readable
sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile

# Use the swap file
sudo mkswap /swapfile
sudo swapon /swapfile

Die Datei wurde erstellt (536870912/1024/1024 = 512 MB):

ls -lia /swapfile 
768 -rw------- 1 root root 536870912 Apr 27 07:54 /swapfile

Mit free -m command konnte ich sehen, dass die Datei nun wie erwartet 512 MB beträgt:

    
Besi 27.04.2016 14:03
1

wie Sie eine Auslagerungsdatei hinzufügen

  1. create .img-Datei

    sudo dd if = / dev / zero von = / swap.img bs = 1M count = 1000

Hinweis !: bs = 1M Zählung = 1000 == & gt; 1GB

(bs * count = Größe in Megabyte)

anderes Beispiel:

sudo dd if = / dev / zero von = / swap.img bs = 10M count = 100

  1. Format .img Datei

    sudo mkswap / swap.img

  2. aktivieren Sie die Auslagerungsdatei

    sudo swapon / swap.img

  3. fügen Sie die Swap-Datei zur fstab

  4. hinzu

füge diese Zeile zu deiner fstab (/ etc / fstab)

hinzu
/swap.img   none            swap    sw              0       0
    
Jonas 03.10.2015 13:13

Tags und Links