First page Back Continue Last page Overview Graphics
Bad memory management examples
Linux : ''Unused memory is wasted memory''
- True for physical boxes, false for virtual ones
- UML caches will contain long-unused data
- which it will never give up
- Swapping UML is a partial solution
- UML knows better than host what it doesn't need
Needed : a mechanism for communicating memory pressure from host to UML
The largest problem is the policy that unused memory is wasted memory. The Linux VM system will hang onto any data that has any chance of being useful for as long as that memory isn't needed for anything else. This is obviously true for physical machines, since their memory can't be used in any other way, but false for virtual ones, since their memory can possibly be put to better use by the host and by other virtual machines.
There is a partial solution in allowing UMLs to be swapped by the host. This isn't very good because it doesn't take into account the knowledge that the UMLs have about their own memory and what they don't really need any more.
So, what is needed here is a mechanism for communicating memory pressure from the host to the UMLs and for the UMLs to respond by releasing memory back to the host.