Unterstützt Ubuntu die dynamische Größe von Auslagerungsdateien?


13

Ich kann mir nicht vorstellen, warum eine Auslagerungsdatei eine feste Größe haben muss. Warum lassen Sie es nicht dynamisch die Größe ändern, wie die Festplatten-Image-Datei für eine virtuelle Box?


Linux unterstützt keine dynamischen Swap-Space-Größen, es sei denn, Sie haben die Option, zur Laufzeit ganze Swap-Spaces hinzuzufügen und zu entfernen. (Windows übrigens auch nicht.)
David Foerster

Unterstützt der Mac Dynamic Swap?
Tom Mercer

Ich habe keine Ahnung. Es ist ein ganz anderer Kernel, den ich nicht studiert habe. Wahrscheinlich ist es ähnlich, Speicherplatz in Linux zu tauschen. Könnten Sie bitte eine neue Frage zu Unix & Linux oder zu Ask Different öffnen, wenn Sie eine neue Frage oder eine Folgefrage zum Darwin-Kernel von OS X haben? Der Kommentarbereich ist nicht geeignet oder für neue Fragen oder erweiterte Diskussionen gedacht. :-) Vielen Dank.
David Foerster

@DavidFoerster unter Windows können Sie die minimale und maximale Größe für jede Auslagerungsdatei festlegen. Windows erhöht die Auslagerungsdatei bei Bedarf. tomshardware.com/news/…
phuclv

Antworten:


11

Es sieht nicht so aus, als ob Linux die dynamische Größe von Auslagerungsdateien unterstützt (jedenfalls konnte ich nicht feststellen, dass sich die Größe einer Auslagerungsdatei ohne swapoff/ geändert hat swapon).

Vermutlich ist es einfacher anzunehmen, dass sich die Dateigröße einer Auslagerungsdatei nicht dynamisch ändert, wenn Code für deren Unterstützung geschrieben wird. Ich sehe auch keine große Verwendung dafür. Da Sie mehrere Auslagerungsdateien verwenden können, hindert nichts Sie daran, bei Bedarf weitere Auslagerungsdateien zu erstellen.

Beachten Sie auch diesen Absatz in der swaponManpage :

The  swap file implementation in the kernel expects to be able to write
to the file directly, without the assistance of the  filesystem.   This
is  a problem on preallocated files (e.g.  fallocate(1)) on filesystems
like XFS or ext4, and on copy-on-write filesystems like btrfs.

Ich würde denken, dass das gleiche Problem für eine Auslagerungsdatei mit dynamischer Größe gelten würde.


Es sieht so aus, als ob dies zutrifft und Swapspace die Größe von Swap nicht einmal dynamisch ändert.
Tom Mercer

2

SwapSpace ist ein Dienstprogramm, mit dem Sie einen Swap mit dynamischer Größe durchführen können, wenn Sie danach suchen. Ich glaube, es ist in Ubuntu verfügbar.


Während es vor 2 Jahren eine neue Version gab , scheinen alle Versionen, die für Ubuntu gepackt wurden, uralt zu sein. Wie gut funktioniert es
muru

Ich kann mir nicht vorstellen, dass sich die Methode zum Schreiben der Auslagerungsdatei geändert hat, aber ich kann es nicht mit Sicherheit sagen. Funktioniert gut unter Debian.
user231695

Ich stimme immer noch für Ihre Antwort, da es genauso einfach ist, neuen Raum zu schaffen.
user231695

Ich werde es versuchen und berichten.
Tom Mercer

@ user231695 Es ist zwar einfach, einen neuen Auslagerungsbereich zu erstellen, aber fürchterlich unpraktisch und möglicherweise als Lösung völlig unbrauchbar. Das einzige Mal, wenn ein Benutzer einen neuen Swap-Bereich hinzufügen möchte, ist der Moment, in dem der vorhandene Swap voll ist. Daher meine Frage zur dynamischen Dimensionierung der Auslagerungsdatei.
Tom Mercer

1

Ich weiß, dass es spät ist, aber ich denke, die beste Lösung für einen dynamischen Austausch ist:

sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable

Einstellung dann CONF_SWAPFACTOR=2in /etc/dphys-swapfileund schließlich

sudo service dphys-swapfile start

Die Swap-Größe scheint nicht dynamisch geändert zu werden. Sieht aus wie ein Skript zum Initialisieren einer Auslagerungsdatei einer bestimmten Größe, die standardmäßig 2x RAM-Kapazität hat.
Tom Mercer

Hi @TomMercer, setze SwapFactor und Maxswap, laut den Kommentaren in der Datei: "# setze die Größe auf den berechneten Wert, diesmal passt sich die RAM-Größe dynamisch an, garantiert, dass es genügend Swap gibt, ohne übermäßigen Speicherplatz zu verschwenden". "passt sich dynamisch an" scheint das zu sein, wonach Sie suchen. Best
Denis Pitzalis

Weicht die Größe meiner Auslagerungsdatei dadurch beispielsweise von 1 KB bis 16 GB ab, während ich das Betriebssystem verwende und den Arbeitsspeicher auffülle? Das ist, was "dynamisch die Größe ändern" Swap bedeutet. Das Erstellen einer Auslagerungsdatei mit einem Vielfachen der RAM-Größe ist nicht dynamisch. Es hat keinen Sinn, eine Auslagerungsdatei zu haben, bis der Arbeitsspeicher voll ist, und dann soll die Auslagerungsdatei genau die Größe des von Ihnen verwendeten VRAM haben. Wenn Sie die Registerkarten oder das riesige Bild schließen, an dem Sie arbeiten, sollte die Größe der Auslagerungsdatei dynamisch zurückgesetzt werden. Swapfile sollte immer genau 100% voll sein, indem die Größe dynamisch angepasst wird.
Tom Mercer

0

Swap Space kann einem laufenden System mit dem swaponBefehl hinzugefügt werden . Es wird eine vorhandene (nicht verwendete) Swap-Datei / Partition benötigt. Um eine zu erstellen, verwenden Sie den ddBefehl, um eine zusammenhängende Datei zuzuweisen, und mkswapfügen Sie dann der Datei / Partition die richtigen Steuerinformationen hinzu.

Verwenden Sie zum Entfernen einer Auslagerungsdatei swapoff; Die Datei kann dann gelöscht werden.

Ich vermute, das ist was SwapSpacedæmon, dass @ user231695 erwähnt wird.

Beachten Sie, dass das Auslagern ein langsamer Vorgang sein kann, wenn die Auslagerungsdatei verwendet wird. Alle Daten müssen in einen anderen Swap-Bereich übertragen werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.