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.
How AI, OpenAI, and ChatGPT impact business and software.
Elastic Memory for Java
1. Consolidation Matters: The App Explosion Is Upon Us.
Mobile: 500,000 apps.
2007
iPhone
Launch
1990 2011
1991
Linus Torvalds
Releases Linux Linux: 40,000 apps.
2. What does this have to do with virtualization?
More and more applications are moving to the datacenter.
(Think Google Docs)
3. In Other Words:
The next wave of computing will produce 10x more applications
than 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. 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. Introducing Elastic Memory for Java.
Elastic Memory for Java is a balloon driver that runs inside vFabric
tc Server.
Elastic Memory for Java lets VMware ESX share memory between
VMs 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. 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 best
consolidation ratios.
7. Sharing Memory Impacts Performance.
Transparent
Guest Memory Host
Page
Balloon Compression Swapping
Sharing
Less Application Impact More Application Impact
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. 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. 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. Sharing Memory Impacts Performance.
Transparent
Guest Memory Host
Page
Balloon Compression Swapping
Sharing
Less Application Impact More Application Impact
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 Estimate
Less Application Impact More Application Impact
13. How Ballooning Works
Usage Spike Usage Spike
in VM2 in VM3
Danger!
Low Memory!
VM2
VM1 VM3
Balloon
Available ESX Memory
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
pressure
14 Confidential
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. When using shared storage latency may be even higher.
Latencies approaching 100ms are possible.
Source: Scalable Storage Performance, VMware Whitepaper
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. Java Can Exhibit “Catastrophic Collapse” When Swapped.
Source: IBM Whitepaper
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. Sharing Memory Impacts Performance.
Transparent
Guest Memory Host
Page
Balloon Compression Swapping
Sharing
Less Application Impact More Application Impact
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. 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
Balloon
23 Confidential
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
Balloon
24 Confidential
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. 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. Pieces That Make Elastic Memory for Java Work.
Your Java App
tc Server
Balloon Driver (Java Agent)
Feedback
VMware Tools
Loop
Determines
Balloon ESX 5+ Virtual API Interface
Target
ESX
ESX Resource Management
28. What Is tc Server Anyway?
Efficient, lean, fit-to-purpose Java application server
Lower cost and complexity
Enterprise capabilities on Tomcat-compatible base
Best platform to run Spring applications
Includes Spring Insight and Elastic Memory for Java
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. 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. Overcommit and Run Fewer Physical Servers.
Assumptions
Server Cost CapEX ($) $10,000 per server
Server Cost OpEX ($) $2,000 per server per year
Software License Cost Per Server ($) $8,000 per server
Average Server Memory Size (GB) 32 GB of physical memory
Average VM Size (GB) 4 GB of allocated memory
Number of Workload VMs (#) 300 VMs
Overcommit Ratio (%) 30 % of allocated memory overcommitted
Results
VMs per server without EM4J 8 VMs per server
Number of servers without EM4J 38 vSphere host servers
VMs per server with EM4J 10 VMs per server
Number of servers with EM4J 30 vSphere host servers
Reduction in Number of Servers Needed 8 vSphere host servers
Total Server CapEx Cost Savings $80,000.00
Total Server OpEx Cost Savings $16,000.00 per year
Total Software License Savings $64,000.00
Total Value of EM4J Per VM $533.33 per VM for year one (CapEx + OpEx)
33. EM4J and tc Server:
Join us on the journey to greater
efficiency.
Download Today
http://www.vmware.com/products/vfabric-tcserver/