Wie kann man den virtuellen Speicher von Ubuntu erhöhen und / oder für Matlab tauschen?

16

Situation: Out of MemoryFehler in Ubuntus Matlab beheben
Ziel: Etwas virtuellen Speicher zuweisen und / oder auf externe Festplatte / SSD tauschen; die Lese- / Schreibgeschwindigkeit sinkt von 20 GB / s auf 0,1 GB / s, was in Ordnung ist!
Terminologie: Swap und virtueller Speicher hier

Nein, Swap und virtueller Speicher sind völlig unterschiedlich. Beispielsweise werden für die Speicherzuordnung einer 1-GB-Datei zusätzliche 1 GB virtueller Speicher benötigt, die Verwendung von Swap ändert sich jedoch nicht. Swap ist eine Art Backing Store. Viele Verwendungen des virtuellen Speichers haben nichts mit dem Sichern des Speichers zu tun. (Und es gab Systeme mit virtuellem Speicher und keinem Swap sowie Systeme mit Swap, aber keinem virtuellen Speicher.)

Consumer-Hardware ist begrenzt, sodass ich mehr virtuellen Speicher verwenden und / oder mit meinen externen Festplatten austauschen muss. Matlab sagt über den Swap-Speicher (TODO ohne virtuellen Speicher?)

Linux-Systeme - Ändern Sie Ihren Swap Space mit den Befehlen mkswapund swapon.

Eigenschaften des Systems

  • Sie können sehen, wie viel Sie davon haben swapon -s

    Filename                Type        Size    Used    Priority
    /dev/sda3               partition   8326140 0       -1
    
  • Matlab's Konfigurationen

    % /programming//a/35971040/54964
    com.mathworks.services.Prefs.setIntegerPref('JavaMemHeapMax', 2048); % MB
    
    % TODO cannot find ways how to put Matlab use /dev/sda3
    
  • Sie sehen also, dass mein Matlab es nicht verwendet. Ich erhalte Out of Memoryin Matlab Fehler mit großen Matrizen. Es ist mir nicht reshapegelungen, Matrizen für Vektoren zu erstellen und parallelen Code zu schreiben. Ich möchte also virtuellen Speicher verwenden, weil ich die Arbeit erledigen muss. die rate spielt keine rolle.

Pseudocode

  1. Shell-Skript, das einen Swap erstellt, MATLAB startet und den Swap löscht, wenn MATLAB beendet wird. ( MichaelHooreman )
  2. Swap auf externer Festplatte aktivieren. Wie man sudo swapon -ahier benutzt?
  3. Starten Sie Matlab.
  4. Setze Matlab mit dem Swap ein.
  5. Swap löschen, wenn Matlab beendet wird.

Temporärer Swap, Client ausführen und Swap in Micheals Skript schließen / entfernen

Situation : kann keinen Fehler steuert in die Umgebung der Einrichtung (1), läuft Matlab (2) und Schließen die Umwelt (3)
Script

#!/usr/bin/env bash

# /programming//a/69808/54964
set -e 
# TODO How to do swapoff if any error?

SWAP_FILE="/media/masi/SamiSwapVirtual/.swap_file_20.7.2016"
SIZE_MB=16000
TO_RUN="matlab"

dd if="/dev/zero" of=${SWAP_FILE} bs="1M" count=${SIZE_MB} status="progress"
mkswap ${SWAP_FILE}
chmod 0600 ${SWAP_FILE}
sudo chown 0.0 ${SWAP_FILE} # /unix//a/297153/16920
sudo swapon -v ${SWAP_FILE}
echo "Swap enabled. Press enter to continue"; read
${TO_RUN}
echo "I will remove the swap. Press enter to continue"; read
sudo swapoff -v ${SWAP_FILE}
rm -vf ${SWAP_FILE}

Iteration 1 mit Transcend 25M3 1 TB mit wenig Gebrauch über wo Dateisystem ext4

  1. Protokolliert nach dem Start des Skripts

    sh start_matlab_with_swap.sh 
    16000+0 records in
    16000+0 records out
    16777216000 bytes (17 GB, 16 GiB) copied, 134.489 s, 125 MB/s
    Setting up swapspace version 1, size = 15.6 GiB (16777211904 bytes)
    no label, UUID=48c2835b-4499-4534-aa49-0648e15bd5d9
    [sudo] password for masi: 
    swapon /media/masi/SamiWeek/tmp/swap_file_18.7.2016
    swapon: /media/masi/SamiWeek/tmp/swap_file_18.7.2016: insecure file owner 1000, 0 (root) suggested.
    swapon: /media/masi/SamiWeek/tmp/swap_file_18.7.2016: found swap signature: version 1d, page-size 4, same byte order
    swapon: /media/masi/SamiWeek/tmp/swap_file_18.7.2016: pagesize=4096, swapsize=16777216000, devsize=16777216000
    Swap enabled. Press enter to continue
    start_matlab_with_swap.sh: 11: read: arg count
    
  2. Client ausführen

    • Befehlsverlauf beim ersten Start von Matlab im Auslagerungsspeicher (Ticket-Nr. 02075943) mit dem Fehler Beim Lesen des Befehlsverlaufs ist ein Problem aufgetreten. - - . Starten Sie einfach Ihr Matlab neu und das Problem ist behoben, wenn Sie Standardeinstellungen haben. Befehl prefdirgibt an, /home/masi/.matlab/R2016awelches der Standardspeicherort ist ( /home/{username}/.matlab/R2016a. Datei /home/masi/.matlab/R2016a/matlab.prfexistiert nach dem Neustart, hier .

    • ... [andere Fehler] ...

  3. Matlab schließen und Passwort erneut in Terminal eingeben

    [sudo] password for masi: 
    swapoff /media/masi/SamiWeek/tmp/swap_file_18.7.2016
    [ bugs here! ]
    

Öffnen: Wie wende ich hier die bessere Fehlerbehandlung für die Fehlerbehebung an? Siehe mein Skript für das Beispiel in der Quelle. Thread Wie mache ich Fehlerbehebung und Swapoff wenn Fehler / Warnung?

Permanenter Swap = Separate Swap-Einrichtung vom laufenden Client

Swap einrichten

# /unix//q/297767/16920
masi@masi:~$ sudo fallocate -l 20G /mnt/.swapfile

masi@masi:~$ sudo mkswap /mnt/.swapfile 
Setting up swapspace version 1, size = 20 GiB (21474832384 bytes)
no label, UUID=45df9e48-1760-47e8-84d7-7a14f56bbd72

masi@masi:~$ sudo swapon /mnt/.swapfile
swapon: /mnt/.swapfile: insecure permissions 0644, 0600 suggested.

masi@masi:~$ sudo chmod 600 /mnt/.swapfile

masi@masi:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7925        1494         175         196        6255        5892
Swap:         28610           0       28610

Setzen Sie am Ende von /etc/fstabfür die dauerhafte Änderung Folgendes ein

# /unix//a/298212/16920
# /unix//a/298543/16920

# If swap is on SSD, trim blocks each time at startup.
#/mnt/.swapfile  none    swap    defaults,discard      0        0

# If swap on External HDD, just use sw.
/media/masi/SamiWeek/.swapfile  none    swap    sw      0        0

System: Linux Ubuntu 16.04 64-Bit-
Linux-Kernel: 4.6
Linux-Kernel-Optionen: wl
Matlab: 2016a
Offizielle Matlab-Dokumente : Beheben von Fehlern aufgrund von Speichermangel
Externe Festplatte: Transcend 1 TB StoreJet 25M3- Test , Transcend 2 TB StoreJet 25M3
Externes HDD-Dateisystem: ext4
Externer Festplattenpuffer: 8 MB
Verwandte Themen: Wie kann die MATLAB-Speicherbeschränkung in Ubuntu erhöht werden? (wie benutzt man mkswap, swapon für MATLAB?) , Wie kann man die Zunahme des physischen Speichers in Matlab reduzieren? , Wie kann ein Speicherfehler in Matlab behoben werden? , Wie man aus Gedächtnisstörung in Matlab für Matrix 10800x10800 heraus regelt? ,Wie erhöhe ich das Speicherlimit (sowohl zusammenhängend als auch insgesamt) in Matlab r2012b? , Wie kann der Array-Block erhöht und ein Speicherfehler in Matlab 2009b behoben werden? , Wie behebt man dieses Problem mit zu wenig Arbeitsspeicher für eine kleine Variable in Matlab? , 'Nicht genügend Speicher' in Matlab. Eine langsame, aber dauerhafte Lösung?

Léo Léopold Hertz 준영
quelle
4
Entschuldigung, das beantwortet die Frage nicht. Aber bist du sicher, dass du das willst? Das Ausführen von Berechnungen aus dem Tausch dauert unglaublich lange. RAM liest mit mindestens 20 GB pro Sekunde, Ihre externe Festplatte liest mit weniger als 0,1 GB / s
Anake
1
@Anake Ja, ich weiß. Es ist kein Problem. Ich habe riesige Matrizen, die mit 32/64 GB berechnet werden können, aber nicht mit meinem aktuellen 8-GB-Ultrabook. An Feiertagen muss ich noch rechnen.
Léo Léopold Hertz 준영
1
Noch ein nicht nützlicher Kommentar, sorry. Könnten Sie einen Computer zu Hause eingeschaltet lassen, damit Sie SSH ausführen und sie zu Hause / in der Uni ausführen können?
Anake
@Anake Zur Zeit leider nicht möglich. Auch Matlab braucht hier also eine lokale Berechnung. Habe im Moment auch nicht genügend Schlüssel, um das zu tun.
Léo Léopold Hertz 준영
Was ist in diesem Zusammenhang das Besondere an MATLAB? Ist dies nicht nur ein Duplikat von So erhöhen Sie den Swap-Platz?
Steeldriver

Antworten:

2

OK, eine ganze Liste hast du da. Lassen Sie mich inline antworten

  1. Wie wende ich hier die bessere Fehlerbehandlung für die Fehlerbehebung an? Siehe mein Skript für das Beispiel in der Quelle. Thread Gewusst wie: Fehlerbehebung und Auslagerung bei Fehler / Warnung ?.

Das Konzept dieses Skripts gefällt mir überhaupt nicht. Dass Sie eine externe Festplatte haben, die Sie als Swap verwenden möchten, ist nur eine schlechte Idee. Wenn Sie dies wirklich regelmäßig tun möchten, ändern Sie die Größe Ihrer Partitionen, um eine ordnungsgemäße Auslagerungspartition hinzuzufügen, eine Auslagerungsdatei hinzuzufügen oder einfach eine größere interne Festplatte zu kaufen.

  1. Wie werden Warnungen ausgegeben, wenn die Matrixgröße die Swapgröße überschreitet?

Mach einfach die Mathe. Wenn Sie die Größe der Matrix kennen, bevor das Programm beginnt, berechnen Sie die Größe in MB und vergleichen Sie sie mit dem verfügbaren Swap.

  1. Wie kann man in Matlab einen Fortschrittsbalken für die Berechnung einer riesigen Matrix festlegen?

matlab hat eine API oder? Ich denke nicht, dass dies das richtige Forum für diese Frage ist. Selbst wenn Sie eine API hatten, blockieren Sie die Eingabe per Swap, sodass es nur ein ruckeliger Fortschrittsbalken ist, der die Realität nicht widerspiegelt.

  1. Wie töte ich beschäftigten Fortschritt und / oder Swapon -s / Swapoff in Iteration (2)?

Das tust du nicht. Nur weil Sie mit der Berechnung fertig sind, bedeutet dies nicht, dass das Betriebssystem mit den von Ihnen zugewiesenen Ressourcen fertig ist. Wenn das Ausschreiben zum Tauschen abgeschlossen ist, wird es frei. Sie haben so viel Arbeitsspeicher verbraucht, dass viele Anwendungen nicht den Arbeitsspeicher haben, den sie benötigen, und verwenden daher auch Swap. Lass es einfach an und lass das Betriebssystem es tun. Bevor Sie Ihren nächsten Lauf durchführen, löschen Sie die Caches.

echo 3 > /proc/sys/vm/drop_caches 

Es steckt wahrscheinlich noch mehr dahinter. Ich bin kein Linux-VM-Experte. Es lohnt sich zu untersuchen, wie der SLAB / SLUB-Allokator funktioniert und wie er auf Ihre großen Speicheranforderungen abgestimmt wird. Möglicherweise können Sie matlab in den Speicher sperren. Dadurch wird das Betriebssystem gezwungen, Speicher für Sie zu reservieren, oder es startet einfach nicht. Sie müssen es auch entsperren, wenn Sie fertig sind. Ich kann dies mit der C-API problemlos tun, aber ich bin mir nicht sicher, wie Sie dies außerhalb eines Prozesses tun würden, den ich nicht erneut kompilieren kann. Dies würde einige Nachforschungen erfordern.

Schließlich ist dies die Art von Sachen, für die EC2 gemacht wurde. Es sieht so aus, als ob 16G genau das ist, was Sie brauchen. Ein m4.4xlarge hat 64G RAM bei 0,958 USD pro Stunde. Das ist weniger als eine Tasse Kaffee. Erstellen Sie ein Skript für Ihre matlab-Installation mit einem Juju-Zauber oder ähnlichem und verwandeln Sie das Ganze in eine Berechnung als Dienstleistung.

Ist 16G 16 GB?

  • Ja, normalerweise, wenn wir das Suffix weglassen, meinen wir base2-Zahlen in Einheiten von Bytes. Wenn Sie prägnant sein möchten, würden Sie 16GiB schreiben.

"Ich benötige Matrizen mit mehr als 100 GB. Ich weiß nicht, ob Sie es mit EC2 schaffen."

Sollten Sie Ihre Caches auch durch löschen echo 3 > /proc/sys/vm/drop_caches?

  • Ja, es tut nicht weh, das immer zu tun. Siehe Dokumentation / sysctl / vm.txt im Linux-Kernel.

Wie können Sie MLOCK Matlab in Erinnerung behalten?

  • man mlock. Obwohl ich vermasselt habe, als ich das zitierte. Durch diesen Aufruf wird sichergestellt, dass Sie den gesamten gewünschten Speicher zuweisen und verhindern können, dass dieser ausgelagert wird. Der virtuelle Speicher wird nie verwendet. Das ist nicht was du willst.

Ich denke, Sie können C API an Matlab binden. - - Haben Sie eine Idee, Swap zu deaktivieren, wenn ein Fehler in den Prozessen auftritt?

  • Ich werde hier ehrlich sein, das Konzept der Verwaltung von Auslagerungsdateien in der von Ihnen vorgeschlagenen Weise ist lächerlich. Die Aufgabe des Betriebssystems ist es, Ressourcen zu verwalten und sie auf faire und konsistente Weise zu verteilen. Sobald Sie mehr Ressourcen zur Verfügung stellen, werden diese nach Belieben verwendet. Sie können es nicht sagen, wenn Sie fertig sind und ziehen Ressourcen darunter hervor. Das Betriebssystem teilt Ihnen mit, wann es fertig ist.

Wenn ich das Betriebssystem nach einem Speicheradressraum frage, gelingt dies manchmal nicht immer, was nicht bedeutet, dass ich es nicht erneut versuchen kann. Dass matlab nicht herausfinden kann, wie man malloc zweimal anruft, ist das Problem von matlab.

Also, um Einfluss auf die Änderung , die Sie wollen, wenn das 100G Platz ist wirklich an einer Prämie , dann müssen Sie herausfinden, wie das Betriebssystem zu erklären , um es den Speicherbedarf trim (durch Clearing - Caches für den Anfang) , so der Speicher - Manager nicht das Bedürfnis verspüren, den bereitgestellten zusätzlichen Auslagerungsspeicher zu nutzen. Dann und nur dann können Sie den Speichermanager auffordern, die Auslagerungsdatei freizugeben.

Es ist einfach, Dinge wie Speicher und Festplatten zu vergrößern, und es ist viel schwieriger, sie zu verkleinern. Durch das Verkleinern wird ein Neuausgleich aller Benutzer erzwungen, denen in diesem Bereich Ressourcen zugewiesen sind. Wenn ich stattdessen sagte: "Ich habe ein 100-TB-Speicherarray, aber jetzt benötige ich nur 60 TB. Warum funktioniert das Array nicht mehr, wenn ich 40 TB Festplatte entferne?" Nun, die Antwort wäre klar, oder?

Also hier sind Ihre Optionen, wie ich es sehe.

  1. Untersuchen Sie die matlab C-API, um festzustellen, ob Sie die Speicherzuweisung für diese umfangreichen Arbeitssätze besser steuern können.

  2. Überarbeiten Sie Ihre Berechnung, um zu berechnen, was Sie jetzt haben, indem Sie Submatrizen oder eine andere spärliche Datendarstellung verwenden.

  3. Schreiben Sie Ihr eigenes Programm in C / C ++, indem Sie die zahlreichen linearen Algebra-Bibliotheken verwenden, um die Berechnung durchzuführen, und verwenden Sie mallocoder mmapanonym, um den von Ihnen benötigten Adressraum zuzuweisen.

ppetraki
quelle
Ja, aber es reicht möglicherweise nicht aus, und Sie müssen möglicherweise warten und es erneut versuchen, bevor es erfolgreich ist, falls dies jemals der Fall ist.
ppetraki
1
heh, der Rest deines Kommentars ist nicht auf meinem Smartphone aufgetaucht. Sie können nicht so sudo Echo, stattdessen tun. echo 3 | sudo tee /proc/sys/vm/drop_caches
ppetraki
Ich akzeptiere diese Antwort, weil sie den richtigen Sinn in ihrer Antwort hat. Das Ausführen von Client in demselben Skript wie das Einrichten der Umgebung ist wahnsinnig fehleranfällig. Weitere Diskussionen dazu finden Sie hier unix.stackexchange.com/a/298543/16920 - - Es wäre großartig, wenn Sie Ihren Körper nur wenig aufräumen könnten.
Léo Léopold Hertz 준영
12

Sie können keinen Swap für eine Software reservieren. Sie können ein Shell-Skript erstellen, das einen Swap erstellt, MATLAB startet und den Swap löscht, wenn MATLAB beendet wird.

Hier ist ein Beispielskript, das einen Swap von 10 MB im Verzeichnis / tmp erstellt, diesen einbindet, R startet (ich habe kein Matlab), auf das Beenden von R wartet, die Swap-Datei umbindet und sie löscht.

Beachten Sie Folgendes: - Sie erhalten eine Warnung, da die Auslagerungsdatei nicht im Besitz von root ist. Das liegt daran, dass das System für jede Software verwendet wird, die möglicherweise nicht von Ihnen ausgeführt wird, und Sie können diese Datei lesen ... Ich lasse Sie es reparieren. - Wenn Sie [Strg] - [c] das Skript oder Abmelden oder usw., bleibt der Swap aktiviert. Ich lasse dich das auch reparieren.

#!/usr/bin/env bash

SWAP_FILE=/tmp/my_swap_file
SIZE_MB=10
TO_RUN="R"

dd if=/dev/zero of=${SWAP_FILE} bs=1M count=${SIZE_MB}
mkswap ${SWAP_FILE}
chmod 0600 ${SWAP_FILE}
sudo swapon -v ${SWAP_FILE}
echo "Swap enabled. Press enter to continue"; read
${TO_RUN}
echo "I will remove the swap. Press enter to continue"; read
sudo swapoff -v ${SWAP_FILE}
rm -vf ${SWAP_FILE}
Michael Hooreman
quelle
1
Nun, es ist nicht wirklich MATLAB gewidmet, aber für jede Situation, die vorübergehend mehr RAM benötigt. Bitte beachten Sie, dass Swapon / Swapoff Root-Recht benötigt (also: sudo)
Michael Hooreman
1
Ja, du hast. So werden Sie root.
Michael Hooreman
Gute Antwort. Ich persönlich würde mich dem nähern und mein eigenes Skript add-swap.sh für diese schönen Momente aufbewahren, in denen die Erinnerung aufgebraucht ist
Sergiy Kolodyazhnyy
Ich habe das Kopfgeld hier vergeben, weil es mich dazu gebracht hat, die Sache richtig zu machen. Ich kann die Antwort jedoch nicht akzeptieren, da das Fehlermanagement sehr schwierig und unvollständig ist. Es ist am besten, den Swap getrennt von Matlab einzurichten.
Léo Léopold Hertz 준영
1

So können Sie Ihren SWAP-Speicher mit einer externen Festplatte erweitern :

  • Notieren Sie sich zunächst Ihren tatsächlichen SWAP-Speicher, indem Sie Folgendes ausführen:

    free -m
    
  • Zweitens haben Sie den Ordner Ihrer Festplatte zur Hand. Es sollte so etwas sein /media/myhdd.

  • Bestimmen Sie die Größe des zusätzlichen SWAP, den Sie hinzufügen möchten. Sagen wir, X GB.
  • Berechnen Sie die Anzahl der Bytes, die die Menge ist. In GB ist dies: Y = X * 1024 ^ 3 , wobei Y das Ergebnis Ihrer Berechnung ist.
  • Wählen Sie die Blockgröße der Datei (in Byte). Verwenden wir hier die Standardeinstellung: 4096 (Weitere Informationen hierzu finden Sie hier ).
  • Berechnen Sie die Anzahl der Blöcke, die die Datei haben wird: Z = Y / 4096
  • Erstellen Sie eine Datei der Größe X GB mit dem folgenden Befehl in einem Terminal:

    dd if=/dev/zero of=/media/myhdd/swapfile bs=4096 count=Z
    
  • Erstellen Sie den SWAP in der Datei mit:

    sudo mkswap /media/myhdd/swapfile -f
    
  • Aktivieren Sie zum Schluss den SWAP:

    sudo swapon -p 1000 /media/myhdd/swapfile
    

Jetzt hat sich dein SWAP erhöht. Prüfen Sie noch einmal mitfree -m


Wir können dies in einem nicht interaktiven Skript einrichten ( sudobenötigte Fähigkeiten):

#!/bin/bash

### Inputs ###

swap_GB=$(expr 1) # Enter here size of the swap memory to create, in GB.
swap_bs=$(expr 4096) # Enter here block size, in bytes (must be a multiple of 8).
HDD_folder="/media/myhdd/" # Enter absolute path of HDD inside the brackets.

### Swap creation ###

swap_size=$(expr $swap_GB \* 1024 \* 1024 \* 1024 / $swap_bs)
dd if=/dev/zero of=${HDD_folder}"/swapfile" bs=$swap_bs count=$swap_size
mkswap ${HDD_folder}"/swapfile" -f
swapon -p 1000 ${HDD_folder}"/swapfile"

### EOF ###

PS: bitte nach Möglichkeit optimieren / korrigieren. Wie gesagt, es ist mein erstes Drehbuch überhaupt :)


quelle
Nun, Swap ist schon langsam, aber ich kann mir nicht vorstellen, Swap auf einem USB-Laufwerk zu haben. Es wird langsam wie die Hölle IMHO
Michael Hooreman
Ein Skript als Zusammenfassung wäre hier großartig.
Léo Léopold Hertz 준영
1
Ich habe noch nie ein Skript erstellt, werde es aber ausprobieren.
1

Ich würde zumindest testen, wie gut komprimiertes RAM (zram-Kernelmodul, verfügbar seit Kernel-Version 3.14) funktioniert.

Im Anschluss an archlinux Wiki Anweisungen

modprobe zram
echo lz4 > /sys/block/zram0/comp_algorithm
echo 4G > /sys/block/zram0/disksize
mkswap --label zram0 /dev/zram0
swapon --priority 100 /dev/zram0

Ich vermute, dass komprimierter RAM schneller sein sollte als Festplatten-E / A.

Um die Änderung auch nach dem Neustart beizubehalten, geben Sie die Befehle für die Startzeit ein /etc/rc.localund führen Sie sie aus sudo systemctl enable rc-local.service.

JJ Hakala
quelle
Ich habe die Antwort auf den Thread unix.stackexchange.com/q/297752/16920 erweitert, um die Auswirkung von zram auf die Speichergröße und die Paging-Rate zu erfahren. Ich kann keine Auswirkung auf die Speichergröße feststellen, wahrscheinlich hauptsächlich auf das Paging. Die systemd / ... -Warnung hat jedoch mit runit zugenommen. Es wäre toll, über die Fehlerrate von zram Bescheid zu wissen.
Léo Léopold Hertz 준영
Im Fall von zram0 sind einige Statistiken in / sys / block / zram0 in den Dateien orig_data_size und compr_data_size verfügbar . Ich habe dort nicht viel Daten ausgetauscht, aber für das, was da ist, ist das Verhältnis ungefähr 0,35. Mit diesem Verhältnis könnten 11 GB Daten in 4 GB RAM passen. Dies kann bedeuten, dass 7 GB Daten nicht auf die Festplatte übertragen wurden.
JJ Hakala
1
Sie können Boot-Time-Befehle in /etc/rc.local und dannsudo systemctl enable rc-local.service
JJ Hakala
Ich fand heraus , dass zramfür Swap auf HDD / SSD nicht anwendbar ist , so zramist hier nicht anwendbar, bitte den Faden sehen askubuntu.com/a/472227/25388
Léo Léopold Hertz 준영
1

Verwenden zswapSie diese Option, wenn Sie Teile auf der Festplatte / SSD austauschen. Da das Modul zramkeine Swap-Teile auf der Festplatte / SSD enthält, ist Hakalas Antwort nicht zutreffend. Siehe den Faden zram vs zswap vs zcache Ultimate Guide: wenn zu verwenden , die eine für Erklärungen. Setup zswapwie im Thread beschrieben Wie aktiviere ich Zswap erfolgreich für die Matlab-Berechnung in Ubuntu 16.04?

  • Ersetzen Sie die entsprechende Zeile durch die folgende Zeile in /etc/default/grub

    # https://wiki.archlinux.org/index.php/Zswap
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1 zswap.max_pool_percent=25 zswap.compressor=lzo"
    
  • Rennen sudo update-grub.

Léo Léopold Hertz 준영
quelle