hmm, op het gevaar af weer een hoop onbegrip over me af te roepen het volgende.
Memory Overcommit is geen "goede feature" maar een simpele methode om te doen alsof er meer geheugen aanwezig is dan er daadwerkelijk beschikbaar is. In de hoop dat er meer geheugen beschikbaar komt geeft het systeem alvast toegang. In een tijd dat oude hardware geschikt moest worden gemaakt voor nieuwe software deed Linux daar goede zaken. meestal werkte het. Linux kon op die wijze gebruik maken van feitelijk niet bestaande systeembronnen.
Er is echter een groot nadeel, als er onvoldoende geheugen beschikbaar is dan kikt het systeem er een proces uit. Er zijn wel allerlei hulpmiddelen bedacht ( OOM killer) om grote problemen te voorkomen maar onderstaande anekdote blijft feitelijk nog steeds gelden.
An aircraft company discovered that it was cheaper to fly its planes with less fuel on board. The planes would be lighter and use less fuel and money was saved. On rare occasions however the amount of fuel was insufficient, and the plane would crash. This problem was solved by the engineers of the company by the development of a special OOF (out-of-fuel) mechanism. In emergency cases a passenger was selected and thrown out of the plane. (When necessary, the procedure was repeated.) A large body of theory was developed and many publications were devoted to the problem of properly selecting the victim to be ejected. Should the victim be chosen at random? Or should one choose the heaviest person? Or the oldest? Should passengers pay in order not to be ejected, so that the victim would be the poorest on board? And if for example the heaviest person was chosen, should there be a special exception in case that was the pilot? Should first class passengers be exempted? Now that the OOF mechanism existed, it would be activated every now and then, and eject passengers even when there was no fuel shortage. The engineers are still studying precisely how this malfunction is caused.
In de opeenvolgende Linux kernels zijn stees dfiepgaander aanpassingen gemaakt om de grootste nadelen tegen te gaan en om de belangrijkste misdragingen te voorkomen maar de feitelijke achitecturele fout blijft m.i gewoon bestaan en zal uiteindelijk ook tot structurele aanpassingen moeten leidden. Gezien het feit dat de huidige generatie hard en software moeiteloos grote hoeveelheden geheugen aan kan en gezien het grote aantal ontwikkelaars zal dit ongetwijfeld opgelost worden. In gevirtualiseerde omgevingen zijn echter voor met name XEN grote problemen te verwachten met de huidige insteek vrees ik.
Virtualisatie moet efficiënter
Gepubliceerd: Maandag 11 augustus 2008
Virtualisatie op basis van volledige virtuele machines is inefficiënt. Het domweg kopiëren van complete besturingssystemen kost te veel geheugen.
Toon volledig artikel
