By pooling JVM memory across virtual machines it's possible to operate flexible Magnolia CMS instances and overcome typical Java issues like out-of-memory events or resource over-provisioning.
Being experienced in providing IaaS, we can show you real-world examples of how we do it and what benefits can be achieved by hosting Magnolia CMS in a VMware vCloud™ Powered environment.
2. About us
☁ VMware vCloud™ Powered Service Provider
☁ Hosting hundreds of Magnolia CMS instances
☁ (Hosting Magnolia’s server infrastructure too)
www.mirocloud.com
9. About Memory
☁ How is JVM memory “seen”
by the OS (kernel) ?
www.mirocloud.com
10. About Memory
☁ Like a big chunk of memory assigned to a
process.
☁ Kernel won’t manage it (except if swapping!)
☁ No visibility
☁ Extremely painful if it’s virtual memory
(on a hypervisor, set full reservations)
www.mirocloud.com
11. Quick poll
☁ Who’s using VMware (vSphere) ?
☁ Hyper-V ?
☁ Xen ?
☁ KVM?
☁ Any other virtualization technology?
www.mirocloud.com
12. EM4J
☁ Part of VMware vFabric
☁ Elastic Memory for Java
☁ Java Heap Memory Pooling
www.mirocloud.com
14. How does it work?
☁ Ballooning
☁ Coordination with the Hypervisor
www.mirocloud.com
15. How does it work?
OS
Balloon
www.mirocloud.com
16. How does it work?
OS
JVM
Balloon
www.mirocloud.com
17. How does it work?
OS
JVM
Balloon
www.mirocloud.com
18. How does it work?
☁ Balance memory between VMs and hosts*
(*taking VMware’s Distributed Resource
Scheduler into account)
www.mirocloud.com
19. How does it work?
OS OS OS
JVM JVM JVM
Balloon
Balloon
Balloon
www.mirocloud.com
20. How does it work?
Magnolia ...
Balloon.jar
vFabric tc
OS
ESXi
www.mirocloud.com
21. Why?
☁ Less memory = less cost/power/licenses ...
☁ (but the most interesting ...)
☁ It’s elastic!
www.mirocloud.com
22. What does this mean?
☁ You can run applications ...
☁ ... more dynamically
☁ ... with less or no OOM events at all
☁ ... without over-allocating memory
www.mirocloud.com
23. What does this mean?
☁ In fact:
☁ We even allocate more memory
than before!
☁ Because that allocation is
the maximum memory the JVM
is going to consume.
www.mirocloud.com
24. Numbers
☁ You can save up to 40% of system memory
(at least that’s what we measured)
☁ Even if you allocate
more than you did before
www.mirocloud.com
25. “Elastic”
☁ real dynamic workload distribution
(“cloud”)
☁ traffic / workload “spikes” flattened out
☁ easy configuration
www.mirocloud.com
26. Interesting notes
☁ It’s adaptive by design
☁ = very little performance impact
☁ more “busy” JVMs get more
memory over time
www.mirocloud.com