Warum nutzt Linux nicht den gesamten verfügbaren Speicher?

Warum nutzt Linux nicht den gesamten verfügbaren Speicher?

Ich habe einen Linux-VPS mit 256 MB Speicher ( freefindet aber nur 248). Allerdings habe ich anscheinend noch 85 MB frei,AberEs werden 255 MB ausgelagert. Warum ist das so?

free -m

              total       used       free     shared    buffers     cached
Mem:           248        245          3          0         41         40
-/+ buffers/cache:        163         85
Swap:         1971        255       1716

Antwort1

Sie haben 3 MB frei, nicht 85 MB. Da Sie 255 MB Swap-Speicher verwendet haben und nur 88 MB Speicher, die potenziell zum Speichern ausgelagerter Daten verwendet werden könnten, hat der Kernel keine andere Wahl, als mindestens 167 MB auszulagern. Der Grund dafür, dass er mehr ausgelagert hat, ist, dass der Kernel der Ansicht war, dass die Leistung besser wäre, wenn er diesen Speicher für einen Festplattencache (technisch gesehen für das Seiten-Caching) verwenden würde, anstatt ihn zum Speichern von Anwendungsdaten zu verwenden, auf die in letzter Zeit nicht zugegriffen wurde.

Der Grund, warum 3 MB freigehalten werden, besteht darin, Lastspitzen in Kontexten zu bewältigen, in denen Speicher nicht einfach freigegeben oder anderweitig verwendet werden kann. Zum Beispiel bei einer Lastspitze im Netzwerkverkehr oder wenn die Festplatten-E/A abgeschlossen ist.

verwandte Informationen