Java Performance on Kubernetes
Talkat JCON Europe 2023 · on Tuesday, 2023-06-20· at 12:00· Cinema Blackbox, Im Mediapark 1, 50670 Köln, Germany·
summary
Most JVMs on Kubernetes with 1–2 CPUs and ≤1 GB memory default to serial GC and 256 MB max-heap, which surprises teams and causes out‑of‑memory and latency issues; New Relic survey shows most pods use 1–2 cores and ~1 GB. Demo compares Spring Boot, Quarkus, Micronaut, Vert.x and a minimal JVM: Vert.x starts in ~490 ms, Spring ~3–10 s, larger CPU cuts startup time. Recommendations: set heap to ~75% of container, prefer Parallel GC, give pods 2 CPUs/4 GB, set CPU requests but avoid hard CPU limits.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:31JVM resource considerations
- 3:29JVM ergonomics and GC
- 7:35Configuration pitfalls
- 9:01Thread pool impacts
- 13:37Netty and non-blocking I/O
- 15:37Startup time and stability
- 18:12Framework performance demo
- 25:41Cluster design strategies
- 28:58Recommended configurations
- 30:46Requests versus limits
- 33:56Q&A and concluding remarks
related talks
47mSecrets of Performance Tuning Java on Kubernetes
53mThe Next Evolution of Java: ☕️ Achieving Hyper Performance and Efficiency in Cloud Native Workloads
46mKubernetes and the JVM
51mWhy You Need Performance Tests for Proper Kubernetes Scaling
49mThe Diabolical Developer's Guide to JVM Ergonomics in Containers
49mJava Particle Acceleration using Quarkus
48mSupersonic, Subatomic Java with Quarkus
53mCalibrate Garbage Collection on the Ground and Run Your Java App
