Ich frage mich, was der Unterschied zwischen dem Erstellen einer Swap-Datei ist
fallocate -l 1G /swapfile
und
dd if=/dev/zero of=/swapfile bs=1024 count=1024
beide scheinen gut zu funktionieren, aber hat einer einen Vorteil gegenüber dem anderen?
Das einzige, was ich online finden konnte, war, dass fallocate
es nicht auf allen Dateisystemen funktioniert.
fallocate
ist normalerweise schneller (da die erstellte Datei nicht mit Nullen gefüllt wird) - ansonsten gibt es keine Unterschiede, das Endergebnis ist dasselbe. Siehe: antipaucity.com/2017/08/31/…Antworten:
Von der
mkswap
Manpage :Und von der
swapon
Manpage :Daraus folgt, dass die Erstellung von Auslagerungsdateien
fallocate
zwar schneller als möglich istdd
, sie jedoch nicht für die Erstellung von Auslagerungsdateien geeignet ist und von Tools, die sich auf Auslagerungen beziehen, nicht unterstützt wird.quelle
fallocate --length 8GiB swapfile
ich ihn verwirrt habe.fallocate
das ein Problem sein könnte. Es scheint, gut, den Raum zuzuteilen. (Wie heißt es auf dem Etikett.) Und dabeifallocate -l 1g /swaptest && mkswap /swaptest && swapon /swaptest
aufext4
beschwert sich nicht über alles.truncate -l 1g
wäre anders, da es nur die Dateigröße festlegt, aber keine Blöcke zuweist.Fallocate ist schneller. Aus der Fallocate-Manpage:
fallocate wird verwendet, um den zugewiesenen Speicherplatz für eine Datei zu bearbeiten, entweder um die Zuordnung aufzuheben oder um sie vorab zuzuweisen. Bei Dateisystemen, die den Systemaufruf fallocate unterstützen, erfolgt die Vorbelegung schnell, indem Blöcke zugewiesen und als nicht initialisiert markiert werden, ohne dass eine E / A für die Datenblöcke erforderlich ist. Dies ist viel schneller als das Erstellen einer Datei durch Füllen mit Nullen.
fallocate(1)
quelle