Swap: Besser eine dedizierte Swap-Partition erstellen oder eine Swap-Datei erstellen?

9

Gibt es eine Begründung, wann eine dedizierte Auslagerungspartition erstellt werden soll, anstatt eine Auslagerungsdatei zu erstellen, z. B. / tmp / swap?

In meinem bestimmten Fall ist der Arbeitsspeicher ziemlich niedrig (1 GB), der Speicherplatz auf einer SSD ist ziemlich groß (256 GB). Daher wird der Austausch ziemlich regelmäßig stattfinden.

Kommentare erwünscht!

Carsten

CarstenP
quelle
4
Beachten Sie, dass Sie die Lebensdauer Ihrer SSD verkürzen können, indem Sie sie für den Austausch verwenden. askubuntu.com/questions/652337/...
steve

Antworten:

3

Der Hauptnachteil, den ich bei der Verwendung von Auslagerungsdateien im Gegensatz zu Auslagerungspartitionen sehen kann, besteht darin, dass eine Auslagerungspartition nicht fragmentiert werden kann, wohingegen es möglich ist, dass bei der Erstellung eine Auslagerungsdatei in einem Extent-Dateisystem auf dem Dateisystem aufgeteilt wird Festplatte, was zu einem langsameren sequentiellen Zugriff führt.

DopeGhoti
quelle
2
Da SSDs keine Strafe für zufälliges Lesen haben, schadet die fragmentierte Datei kaum.
David King
Um ehrlich zu sein, habe ich mich seitdem für eine Swap-Partition
ausgesprochen
1
Ich mache oft Auslagerungsdateien für die vorübergehende Verwendung, wenn ich ein großes Projekt vorsehe, das den konfigurierten Arbeitsspeicher und die Auslagerungspartitionen möglicherweise erschöpft, aber ich möchte, dass es partitioniert bleibt. Auf diese Weise kann ich Swap-Partitionen zwischen Linux-Distributionen genauso schnell wiederverwenden wie Home-Partitionen.
DopeGhoti
1
Der Teil über "mehr Schichten von Kernel-Code, die beim Schreiben in eine Datei in einem Dateisystem durchlaufen werden müssen" ist nicht wahr: " Der Kernel generiert eine Karte mit Swap-Offset -> Plattenblöcken zum Swapon-Zeitpunkt und verwendet diese Map von nun an, um einen Swap durchzuführen E / A direkt in der zugrunde liegenden Festplattenwarteschlange unter Umgehung des gesamten Caching-, Metadaten- und Dateisystemcodes. ”- Linux-Kernel-Archiv: Re: Swap-Partition gegen Swap-Datei
Anthony Geoghegan
1

E / A-Vorgänge für eine Datei müssen mehr Kernel-Code-Schichten durchlaufen (z. B. VFS), sodass mit dem Auslagern in eine Datei mehr Aufwand verbunden ist. Auf der anderen Seite ist es ein flexibleres Setup und kann für Ihren Fall gut genug sein.

Karol Nowak
quelle
Vielleicht sollte ich mich mit Swap I / O Pomp, Enten und Umständen vertraut machen ... Gibt es nichts an Linux, nur nett, langsam und einfach zu sein? ^^: D PS: Nun, vergiss das "langsame" Ding ... ^^
CarstenP
Das stimmt eigentlich nicht: „ Der Kernel generiert eine Karte mit Swap-Offset -> Plattenblöcken zum Swapon-Zeitpunkt und verwendet diese Karte fortan, um Swap-E / A direkt für die zugrunde liegende Plattenwarteschlange durchzuführen, wobei alle Caching-, Metadaten- und Dateisystemcodes umgangen werden. ”- Linux-Kernel-Archiv: Re: Swap-Partition gegen Swap-Datei
Anthony Geoghegan
1

Der Zugriff auf Auslagerungsdateien erfolgt nicht über das Dateisystem. Der Kernel weiß, welche Festplattenblöcke ausgetauscht werden, und greift direkt darauf zu. 1 . Eine nicht zusammenhängende Datei kann jedoch Fragmente in verschiedenen Bereichen der Festplatte enthalten. Abhängig von der spezifischen Verwendung kann eine zusätzliche Suche sie langsamer machen als eine dedizierte Partition.

OTOH: Wenn Sie mit einem Cloud-Server arbeiten, der keine Swap-Partition hat und keine Möglichkeit zum Erstellen einer solchen besteht, kann eine Swap-Datei Ihre Anwendung speichern.


[1]Der Kernel generiert zum Swapon-Zeitpunkt eine Zuordnung von Swap-Offset -> Festplattenblöcken und verwendet diese Zuordnung, um Swap-E / A direkt für die zugrunde liegende Festplattenwarteschlange durchzuführen, wobei alle Caching-, Metadaten- und Dateisystemcodes umgangen werden. ”- Linux-Kernel-Archiv: Re: Partition gegen Swap-Datei tauschen

George
quelle
Was ist der Fall, wenn das fs Dateiblöcke verschiebt / in der Größe ändert? Ich denke, im Fall der Auslagerungsdateien sollte zumindest eine fs-Treiberinteraktion vorhanden sein.
Peter - Wiedereinstellung Monica
Upvoted. Dies sollte die akzeptierte Antwort sein, da dies die einzige Antwort ist, die besagt, dass der Kernel direkt auf die für den Austausch verwendeten Plattenblöcke zugreift.
Anthony Geoghegan