[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-API] [XCP] Frequently-Asked Questions (FAQ) for Dynamic Memory Control (DMC)
Jonathan Knowles ÐÐÑÐÑ: However one thing not obvious from the FAQ is that the memory ballooning daemon is a replaceable component, built separately from Xapi, and running as a separate service on each XCP host. George Shuklin replied: I'm sorry, I think this point is wrong. Balloon is not a server/dom0 component, it is a kernel module for domU kernel. It reads from XenStore variables: static-max = "4194304" target = "1048576" dynamic-min = "1048576" dynamic-max = "1048576" When I talk about the "memory ballooning daemon", I'm referring to the following service that runs within domain 0: /etc/init.d/squeezed The ballooning daemon is reponsible for choosing, for every VM running on a host, a target that lies between dynamic-min and dynamic-max. The ballooning daemon writes targets into XenStore. The ballooning daemon's default behaviour is to assign targets proportionally, as described in the previous mail. You can find more information about it its design here: http://wiki.xensource.com/xenwiki/squeezed (courtesy of Dave Scott) Of course, DMC also relies on each guest having a balloon driver that responds appropriately to changes in its XenStore target. So when someone set xe vm-memory-target-set (or dynamic) it simply order to xapi master to order xapi slaves change those values and balloon driver in domU will do all work. The default behaviour of: xe vm-memory-target-set target=<x> is equivalent to: xe vm-memory-dynamic-range-set min=<x> max=<x> They both directly update the VM.memory-dynamic-{min,max} fields with the same value. See the following FAQ section for more details: http://wiki.xensource.com/xenwiki/Dynamic_Memory_Control Is there an equivalence between target mode and dynamic range mode? George Shuklin replied: I'd like to announce our own system named MOD (Memory on Demand) wich one use xenballoon for graceful memory allocating to guest machines. Right now it under research and testing, but it looks really good: it never steal memory to cause oom killer doing it dirty job. Main idea: we looking to memory data, calculating free memory and setting target for xenballoon to preserve some amount of free memory (We use static-min static-max values as borders for allowed changes). I'm intrigued. Have you considered using dynamic-{min, max} for limits, rather than static-{min, max}? Using dynamic limits instead of static limits may give administrators a little more flexibility when constraining their VMs' memory allocations. (The current design of XCP allows you to change the dynamic limits while a VM is running, but changing the static limits requires you to reboot the VM.) Right now we using strightforward algorithm 'preserve X MiB of free memory', in future I think we can switch to some more intellectual algorithm with prediction system. Out of interest, how do you measure "free" memory? Do you intend to count buffer memory as "free"? I'd be very interested to learn more about your design. Cheers, Jonathan _______________________________________________ xen-api mailing list xen-api@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/mailman/listinfo/xen-api
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |