Virtualizing and Tuning Large Scale Java Applications
summary
Practical recipe for running large Java on vSphere: use CMS for old gen with ParNew for young gen, keep XMN <= 33% of XMX, start JVM:vCPU at 1:2 JVM:vCPU and prefer 2 vCPU per JVM; set survivorRatio ~8, tune parallel GC threads to ~50% of available cores, and pin big heaps to NUMA nodes. Real-world results from ~250 customer engagements show consolidation from thousands to a few hundred JVMs, virtual=physical performance to ~80% CPU, and tested to 356GB heaps using a field-proven GC recipe.
AI-written summary · about
chapters (11)
- 0:00Introduction and speaker background
- 1:26Virtualization impact on Java platforms
- 7:35Designing and sizing Java platforms
- 12:34JVM memory breakdown and sizing
- 22:23Young generation GC tuning
- 33:47NUMA architecture and optimization
- 43:53JVM to vCPU ratio best practices
- 51:45GC tuning for latency vs throughput
- 1:06:02GC tuning recipe and flags
- 1:15:01Large JVM scaling limits and workloads
- 1:24:26Performance study results and Q&A
related talks
01h 32mTuning Large Scale Java Platforms
01h 32mBuilding and Tuning High Performance Java Platforms
47mManaging and monitoring a JVM
47mSecrets of Performance Tuning Java on Kubernetes
01h 28mThe dark art of performance tuning or how to become a performance hero ...
47mLegal JVM Doping in Your Containers
52mJava 9: The Quest for Very Large Heaps
06mSimple Tweaks to Get the Most Out of your JVM
