The Diabolical Developer's Guide to JVM Ergonomics in Containers
summary
Microsoft reports running 2 million JVMs internally and cites LinkedIn's move of 300,000 JVMs to Java 11 producing double‑digit percentage cost savings; New Relic analysis covers 10 million JVMs. Default container ergonomics only choose serial or G1 (serial when memory <1792 MB or CPU <2), so explicitly set GC and sizes: use MaxRAMPercentage (start at 75%), select ZGC for heaps >4 GB with ≥2 CPUs, watch Kubernetes millicore throttling, and use Java Flight Recorder, Java Mission Control and the open‑sourced Microsoft GC toolkit for diagnosis.
AI-written summary · about
chapters (23)
- 0:00Introduction
- 2:00Java at Microsoft
- 5:35Hardware Resources
- 7:15Cloud Resources
- 11:17Get Your Math
- 13:45JVM Ergonomics
- 15:18Poll Results
- 18:13Survey Summary
- 20:26The Algorithm
- 21:47Demo
- 26:36Garbage Collectors
- 28:20Microsoft PowerPoint
- 29:03More Default Ergonomics
- 32:11Garbage Collection
- 33:41Kubernetes
- 34:05millicores
- 35:31multithreaded
- 37:46decision tree
- 39:13AKS example
- 40:14Stacking JVMs in Containers
- 41:10Topology
- 42:56Steps
- 44:18Cloud Kubernetes
related talks
48mJava in Containers - Part Deux
47mLegal JVM Doping in Your Containers
49mJava and Containers Make it Awesome
42mContainers & Java: What I wish I have been told!
07mBest Practices with JVMs in Containers
47mJava inside Application Containers, System Containers and VMs
40mJava Performance on Kubernetes
47mSecrets of Performance Tuning Java on Kubernetes
