Uridium
Commander
- Registriert
- Juni 2005
- Beiträge
- 2.522
Swap macht auch bei viel Ram in gewissen Fällen durchaus Sinn, insbesondere wenn man z.B. verhältnismäßig viel Ram für VMs benutzt. Bei Paravirtualisierung und anderen Kernelfunktionen (Device Memory, Drivers, etc) ist es wichtig, dass der Speicher nicht fragmentiert, weil das zu einer abgelehnten Anforderung führen kann, wenn kein ausreichend großer zusammenhängender Speicherbereich vorhanden ist. Im Userspace ist das eher egal, da alles auf den 'virtual address space' gemappt wird.
Auch ist das Linux Speichermanagement ein recht eigenartiges Konstrukt. Programmierer neigen dazu grundsätzlich zu viel Speicher anzufordern (kann ja nicht schaden...), weshalb der Kernel mehr (virtuellen) Speicher genehmigt als physikalisch vorhanden ist (overcommitment). Sollte die spekulative Rechnung nicht aufgehen, kommt der OOM (out-of-memory manager) ins Spiel und kickt Prozesse nach dem 'oom_score' aus dem Speicher. Das Lustige ist, dass das auch das Programm sein kann, das den Speicher in diesem Momentangefordert hat belegen will, den Kernel damit in Bedrängnis bringt, jener den OOM zu Hilfe holt und dann das Programm kickt. Auch hier kann Swap durch Vergrößerung des virtuellen Speichers entgegenwirken.
Auch ist das Linux Speichermanagement ein recht eigenartiges Konstrukt. Programmierer neigen dazu grundsätzlich zu viel Speicher anzufordern (kann ja nicht schaden...), weshalb der Kernel mehr (virtuellen) Speicher genehmigt als physikalisch vorhanden ist (overcommitment). Sollte die spekulative Rechnung nicht aufgehen, kommt der OOM (out-of-memory manager) ins Spiel und kickt Prozesse nach dem 'oom_score' aus dem Speicher. Das Lustige ist, dass das auch das Programm sein kann, das den Speicher in diesem Moment
Zuletzt bearbeitet: