Es klingt für mich ziemlich kontraproduktiv, ausgelagerte Seiten zwischenzuspeichern. Wenn Sie Seiten austauschen, was ist der Vorteil, wenn Sie sie zuerst im Speicher zwischenspeichern und dann an die richtige Stelle verschieben müssen? Auch wenn Seiten proaktiv ausgetauscht werden, ist es nicht sinnvoller, sie "nur" einzutauschen? Ist das Zwischenspeichern von Swap nicht nur eine Verschwendung von Ressourcen?
kernel
swap
cache
algorithms
txwikinger
quelle
quelle
Antworten:
Nach einigen weiteren Recherchen habe ich festgestellt, dass der Begriff SwapCached in
/proc/meminfo
irreführend ist. Tatsächlich bezieht es sich auf die Anzahl der Bytes, die gleichzeitig im Speicher und im Swap vorhanden sind, sodass diese Seiten nicht ausgetauscht werden müssen, wenn sie nicht verschmutzt sind.quelle
Ich habe noch nie davon gehört und es macht auch für mich keinen Sinn. Ich denke immer noch, dass die gute alte Regel, sicherzustellen, dass es überhaupt nicht tauscht (außer natürlich die Reservierungen), am besten ist. Theoretisch hat das Zwischenspeichern von Dingen im direkt verfügbaren Speicher, die eine Weile brauchen, um von etwas so Langsamem wie einer Festplatte geladen zu werden, einen offensichtlichen Vorteil. Aber wenn Sie in der Lage sind, zu tauschende Seiten zwischenzuspeichern, warum sollten Sie dann überhaupt wieder tauschen?
quelle
Wenn Sie Seiten zwischen Swap und RAM duplizieren, müssen Sie vermeiden, auf die Festplatte zu warten, wenn:
Etwas muss von ihnen lesen
Sie müssen vertrieben werden, um Platz für etwas anderes zu schaffen
Wenn sie nur im Tausch wären, würde Fall 1 bedeuten, darauf zu warten, dass sie von der Festplatte kommen; Wenn sie nur im RAM wären, würde Fall 2 bedeuten, darauf zu warten, dass sie auf die Festplatte gehen.
(Natürlich ist Fall 2 tatsächlich etwas komplizierter, da es offensichtlich billiger ist, solche Seiten zu entfernen, sodass der Kernel sie wahrscheinlich bevorzugt entfernt, aber der Punkt sollte klar sein.)
quelle