In my previous post, a number of memory management techniques were discussed.
Over-commitment, ballooning, and swapping help to maximise efficiency of physical memory available to the hypervisor, but have to be carefully tuned and controlled, in order to prevent performance problems.
The answer is simple – it’s time to stop monitoring and start controlling.
Manual (Monitoring) Approaches Don't Scale
Traditionally, techniques such as memory reservation are used to guarantee performance of the most important workloads. The environment is then closely monitored, and metrics from the Guest OS and Hypervisor are correlated to identify the root cause of any problems once they occur. Ballooning and host swapping occur at the Hypervisor level, however, might manifest in problems at the Virtual Machine level.
However, most environments are NOT static. So as things change, Virtual Machines move around, as application demand spikes and dips, the environment has to be constantly tuned to adequately guarantee performance. Manual management becomes very cumbersome, and as the environment grows and additional complexity is introduced, this becomes impossible for a human to manage.
Solving the Memory Management Challenge with Economic Algorithms
Using a patented economic scheduling engine, VMTurbo looks at this problem using the following principles.
- The goal is to keep the entire environment in a safe state. This means that excessive swapping is avoided, either at guest or hypervisor level.
- Resizing is employed to increase the margins of physical to virtual memory. Virtual Machines are allocated memory based on their needs, eliminating guess work. By allocating memory based on demand, this means that the available infrastructure supply is matched with application demand to ensure that all the Virtual machines make use of physical memory in the most efficient way.
- Resource usage is kept away from unsafe states by providing actionable recommendations (which can be automated), as the environment approaches this ‘forbidden region’.
- For example, if a Guest OS experiences increasing levels of swapping, it will either be allocated more physical memory from the hypervisor, or migrate to another hypervisor – making the best decision based on the current state of the whole environment.
- Where Hypervisor swapping starts to increase, the hypervisor increases the ‘price’ of memory, which leads to Virtual Machines migrating to another Hypervisor, and reduces swapping
- Ballooning also increases memory prices, triggering either a migration of Virtual Machines, or tuning of balloon parameters.
- The pricing mechanism co-ordinates swapping at both guest and hypervisor level. Any specific business policies and higher priority workloads can be added to the logic of VMTurbo, providing the best possible decisions at any point in time.
No need to monitor, analyse or mater memory management techniques, interactions and problems. Using an automated control mechanism, unsafe operation is avoided altogether. At the same time, efficiency is maximized by identifying underutilized resources.
Memory is only one of the many aspects of the environment you have to keep your eye on. Throw in CPU, storage (IOPS and latency), network and this slowly becomes an n-dimensional problem.
You don’t need more data, more monitoring, smart alerts – you need a control system.