Elastic Memory for Java


Published on

Elastic Memory for Java is an intelligent balloon driver for Java that resides drectly within the Java heap and is able to balloon Java memory in a way that minimally impacts performane. By contrast ESXi's traditional memory management techniques such as the VMware Tools balloon can lead to performance problems when used in VMs running Java. EM4J is new with ESXi 5 and vFabric 5.

Note: For best results download the file and view in slideshow mode. Also it looks awful in OOO so don't use that.

Published in: Technology
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Following BP 3 prevents you from realizing the benefits of overcommit.
  • Elastic Memory for Java

    1. 1. Consolidation Matters: The App Explosion Is Upon Us. Mobile: 500,000 apps. 2007 iPhone Launch1990 2011 1991 Linus Torvalds Releases Linux Linux: 40,000 apps.
    2. 2. What does this have to do with virtualization? More and more applications are moving to the datacenter. (Think Google Docs)
    3. 3. In Other Words:The next wave of computing will produce 10x more applicationsthan the last wave.Most of these will need cloud back-ends.Your choice: Get ready to buy lots more servers to support 10x more VMs. Or raise consolidation ratios higher than ever.
    4. 4. What does this have to do with Java? “The data collection tier was originally written in Ruby, but was eventually ported over to Java. The primary driver for this change was performance. This tier currently supports over 180k requests per minute and responds in around 2.5 milliseconds with plenty of headroom to go.” -- New Relic Think Java is the Cobol of the 1990s? Think again. Many SaaS and mobile backends will select Java.
    5. 5. Introducing Elastic Memory for Java.Elastic Memory for Java is a balloon driver that runs inside vFabrictc Server.Elastic Memory for Java lets VMware ESX share memory betweenVMs running Java.Two benefits: • Java Memory Overcommit  On ESX, you can allocate more memory to VMs than physically available to ESX.  This means higher consolidation ratios and less hardware to buy, power and cool.• Java Memory Reservoirs  Give Java some extra cushion to protect against workload spikes.  Memory your application doesn’t need is simply shared. No waste.
    6. 6. ESXi: The Industry’s Most Advanced Memory Sharing.ESXi has many memory sharing techniques: • Transparent Page Sharing. • OS Balloon. • Memory Compression. • Host Swapping. • New with ESXi 5: Elastic Memory for Java.The most advanced memory sharing, the industry’s bestconsolidation ratios.
    7. 7. Sharing Memory Impacts Performance. Transparent Guest Memory Host Page Balloon Compression Swapping SharingLess Application Impact More Application Impact
    8. 8. How ESX Page Sharing Works. ESX slowly scans memory looking for identical pages. Identical pages are “factored out”. Works well when many VMs run the same OS or app. Can take weeks to converge.
    9. 9. ESX Ballooning via VMware Tools.The guest balloon inflates and takes memory pages from the OS.The pages are pinned into memory so the OS cannot reclaim them.The balloon tells ESX the addresses so these pages can be reassigned.
    10. 10. Host Swapping and Memory Compression. Case (a) + (b): ESX writes memory pages to disk and reuses them. Case (c): Pages are compressed into a compression cache. ESX has to undo the operation when the page is read or written.
    11. 11. Sharing Memory Impacts Performance. Transparent Guest Memory Host Page Balloon Compression Swapping SharingLess Application Impact More Application Impact
    12. 12. Who Decides What Memory To Share? The OS understands memory needs better than ESX. It can make better decisions memory to give up. But the OS has no understanding of Java memory. OS ESX Transparent Guest Memory Host Page Balloon Compression Swapping Sharing OS LRU ESX Working Set EstimateLess Application Impact More Application Impact
    13. 13. How Ballooning Works Usage Spike Usage Spike in VM2 in VM3 Danger!Low Memory! VM2 VM1 VM3 Balloon Available ESX Memory
    14. 14. Guest balloon can cause garbage collection pauses. Tenured Space OS swaps pages that seem to be unused Java Heap Garbage collection swaps it all back in at great Eden Young cost Guest Balloon Memory pressure14 Confidential
    15. 15. Why swapping objects in hurts so much. Disk seeks are 100,000 times slower than memory reads! (10,000,000 ns = 10 ms)
    16. 16. When using shared storage latency may be even higher. Latencies approaching 100ms are possible. Source: Scalable Storage Performance, VMware Whitepaper
    17. 17. Java on ESX: Today’s Best Practices.
    18. 18. Today’s Java Best Practices Summarized. # Best Practice 1 Size heap memory to fit within the VM. 2 Enable large pages in the OS and JVM. 3 Guarantee the VM always has 100% of its memory. 4 Match Java threads and virtual CPUs. 5 Ensure disk latencies are low. 6 Watch out for timekeeping impact.
    19. 19. Java Can Exhibit “Catastrophic Collapse” When Swapped.Source: IBM Whitepaper
    20. 20. How Swap Kills Java Garbage Collection. Assumption Value Total Memory in the Heap 1 GB Average Object Size 5000 bytes Total Number of Objects 200,000 % Swapped Out 20% % Objects Read Per Access 5% Total Unique Accesses 8,000 Situation Pause Time In Memory 0.02s Local Storage (10ms) 1m 30s Slow Shared Storage (100ms) 14m
    21. 21. Sharing Memory Impacts Performance. Transparent Guest Memory Host Page Balloon Compression Swapping SharingLess Application Impact More Application Impact
    22. 22. Introducing Elastic Memory for Java. OS ESX Transparent Guest Memory Host Page Balloon Compression Swapping Sharing Elastic Memory for Java Balloon Inside the Java heap. Able to intelligently optimize Java memory.Less Application Impact More Application Impact
    23. 23. EM4J Works Directly In The Java Heap Tenured Space EM4J reserves heap space and gives Java it back if Heap needed No expensive disk seeks Eden Young EM4J Balloon23 Confidential
    24. 24. EM4J Can Clean Garbage From The Heap Tenured Space Java Heap If memory is very low, EM4J may need to do even more. Eden Young EM4J Balloon24 Confidential
    25. 25. Experimental Results Using Modified Spring Travel Spring Travel simulates a hotel booking site. Modified to have more virtual hotels. 500 simulated users, simultaneous access. Overhead as Function of Overcommit % 8% 7% 6% 5% 4% 3% EM4J 2% 1% 0% 0 15 25
    26. 26. Experimental Results Using vFabric GemFire: A Java-based in-memory database. Test Environment: Multiple VMs running a GemFire app, load applied to one VM at a time. At 15% overcommit, almost no overhead with EM4J. Overhead grows predictably compared to guest balloon. Overhead as Function of Overcommit % 500% 400% 300% Guest 200% EM4J 100% 0% 15 25 30 35
    27. 27. Pieces That Make Elastic Memory for Java Work. Your Java App tc Server Balloon Driver (Java Agent)Feedback VMware Tools LoopDetermines Balloon ESX 5+ Virtual API Interface Target ESX ESX Resource Management
    28. 28. What Is tc Server Anyway?Efficient, lean, fit-to-purpose Java application serverLower cost and complexityEnterprise capabilities on Tomcat-compatible baseBest platform to run Spring applicationsIncludes Spring Insight and Elastic Memory for Java
    29. 29. Enabling EM4J At The VM.
    30. 30. Enabling EM4J Within tc Server.Step 1: Create a tc Server instance with the elastic-memory template.Step 2: Add your application WAR file to the template.
    31. 31. Consolidation In The vRAM Era.Utilizations remain low, even after consolidation.The average ESX host uses only half of its memory.The average VM has 42% more memory than it needs. Source: VMware Customer Survey
    32. 32. Overcommit and Run Fewer Physical Servers.AssumptionsServer Cost CapEX ($) $10,000 per serverServer Cost OpEX ($) $2,000 per server per yearSoftware License Cost Per Server ($) $8,000 per serverAverage Server Memory Size (GB) 32 GB of physical memoryAverage VM Size (GB) 4 GB of allocated memoryNumber of Workload VMs (#) 300 VMsOvercommit Ratio (%) 30 % of allocated memory overcommittedResultsVMs per server without EM4J 8 VMs per serverNumber of servers without EM4J 38 vSphere host serversVMs per server with EM4J 10 VMs per serverNumber of servers with EM4J 30 vSphere host serversReduction in Number of Servers Needed 8 vSphere host serversTotal Server CapEx Cost Savings $80,000.00Total Server OpEx Cost Savings $16,000.00 per yearTotal Software License Savings $64,000.00Total Value of EM4J Per VM $533.33 per VM for year one (CapEx + OpEx)
    33. 33. EM4J and tc Server: Join us on the journey to greater efficiency. Download Todayhttp://www.vmware.com/products/vfabric-tcserver/
    34. 34. Questions?
    35. 35. EM4J and tc Server:Maximum Consolidation for Java on ESX Download Today http://www.vmware.com/products/vfabric-tcserver/