Soweit ich weiß, ist die theoretische Grenze für eine Auslagerungsdatei wahnsinnig groß, je nachdem, ob ein 32-Bit- oder ein 64-Bit-System verwendet wird.
Ich habe eine 16-GB-Auslagerungsdatei auf einem 4-GB-RAM-64-Bit-System mit ansonsten niedrigen Durchschnittsspezifikationen erstellt, da ich mehr als genug Speicherplatz auf meiner internen 1-TB-Festplatte habe ...
Aber macht die große Auslagerungsdatei tatsächlich einen Unterschied in Geschwindigkeit / Leistung?
Antworten:
Sie können bis zu 32 Auslagerungsbereiche (Dateien oder Partitionen) mit jeweils bis zu ~ 4 Milliarden (2 ^ 32) Seiten haben, wobei eine "Seite" auf einem herkömmlichen System (z. B. x86 oder x86_64) 4 KB groß ist, auf einem anderen jedoch größer sein kann Architekturen oder wenn Sie große Seiten speziell konfiguriert haben.
Dies ergibt ein theoretisches Maximum von 16 TB pro Swap-Bereich und bis zu 32 Swap-Bereiche. Möglicherweise gelten andere Einschränkungen, bevor Sie dies erreichen. Dies ist jedoch ein ebenso großer Swap-Bereich, den Sie
mkswap
erstellen können.Wie viel Sie möchten, jeder Swap-Bereich, der über das tatsächlich genutzte Maximum hinausgeht, trägt nichts zur Systemleistung oder -stabilität bei. Der Trick besteht darin, die maximale Auslastung zu schätzen, die jemals in einer normalen oder sogar abnormalen Situation auftreten wird, und diese als Auslagerungsdateigröße und nicht mehr zu verwenden.
Zum Zeitpunkt des Schreibens ist es sehr unwahrscheinlich, dass ein Swap-Speicherplatz verwendet wird, der größer als etwa 4 GB mehr als Ihre physische Speichergröße ist, es sei denn, Ihr System ist sehr abnormal. Auf einem typischen System wie einem Desktop-System, das jeweils von einer Person verwendet wird, können Sie wahrscheinlich sogar bei maximal 6 GB bis 8 GB anhalten, selbst wenn Ihr physischer Speicher größer ist.
quelle
Es macht keinen Unterschied in Bezug auf Geschwindigkeit oder Leistung. Sie können lediglich bis zu 20 GB virtuellen Speicher verwenden, bevor der OOM-Killer Prozesse beendet, um Speicher zurückzugewinnen.
Wenn Sie eine bessere Leistung wünschen:
swappiness
Sie den Wert, wenn Sie nicht so oft mehr als 4 GB verwendenquelle
Nach der Antwort von Gilles
Zusätzlich zitiert er Manpage für
mkswap
:In der Bibliothek linux / swap.h gibt es einen
MAX_SWAPFILES
Eintrag, daher ist die Anzahl der Auslagerungsdateien auf Kernelebene begrenzt, dies ist jedoch anscheinend auch kein endgültiger Bereich. Nach dem verlinkten Dokument:Was ich verstehe, hat maximal bis zu 64 Auslagerungsdateien auf den 32-Bit-Architekturen. Ich habe jedoch in dem Dokument nicht bemerkt, was bei einer 64-Bit-Architektur passieren würde. Erwähnenswert ist auch, dass in diesem Fall die Bemühungen von OP, Auslagerungsdateien zu erstellen, beim 30. Eintrag fehlgeschlagen sind.
Was Swap-Partitionen betrifft, scheint es im Kernel keine Begrenzung zu geben, abgesehen von zuvor erwähnten Konstaten, aber die Anzahl der Partitionen würde immer noch durch das zugrunde liegende BIOS und das Festplattenlayout begrenzt .
quelle
Diese Antwort ist möglicherweise nicht für Ubuntu 18.04 geeignet (danke an @Chai T. Rex für den Hinweis in den Kommentaren).
Wie auch immer für frühere Versionen, hier ist es (es gibt noch kein vorgeschlagenes Update LTS> LTS, daher könnte dies immer noch relevant sein):
Es ist keine Datei, es ist eine Partition, und ja, aufgrund von Swappiness
Wenn Ihre Swap-Partition also viel größer ist als der RAM, über den Sie verfügen, neigt das System dazu, mehr zu tauschen, was zu einer allgemeinen Langsamkeit führt.
quelle
Es gibt keinen großen Unterschied in Geschwindigkeit oder Leistung, wenn die Swap-Partition beliebig groß wird.
Es gibt verschiedene Faktoren im Zusammenhang mit dem Austausch, die sich auf die Leistung auswirken können, z. B. den
swappiness
Festplattentyp (SDD oder HDD).Der Swap ist ziemlich langsam und eine zunehmende Swapiness verringert die Leistung. Dies wirkt sich jedoch nur aus, wenn nicht genügend RAM vorhanden ist. Aber es ist besser, als keinen Tausch zu haben. Meine Empfehlung ist, die Größe der Swap-Partition doppelt so groß wie Ihr RAM zu machen.
quelle
Ich komme zu der Tatsache, dass eine Auslagerungsdatei oder eine Auslagerungspartition praktisch keine Begrenzung hat. Außerdem ist meine 16-GB-Auslagerungsdatei ziemlich groß, aber die Größe hat keinen Einfluss auf die Geschwindigkeit.
Was ich jedoch erfahre, ist, dass das System tatsächlich diesen Swap-Bereich nutzt, im Gegensatz zur physischen Hardware.
Meine Lösung besteht darin, einen hohen Swapiness-Wert zu erzielen, damit der Swap im Gegensatz zur schnelleren Hardware nicht übermäßig verwendet wird. so tat ich:
Zur Datei hinzugefügt:
speichern
zu aktualisieren (oder hätte gerade neu gestartet werden können)
quelle
#vm.swappiness = 50
zu/etc/sysctl.conf
hat keine Auswirkung. Die führende#
Zeile macht diese Zeile zu einem Kommentar. Entfernen Sie sie. Sie können den Austausch mit überprüfencat /proc/sys/vm/swappiness
.