Optimizing JVM at Alibaba, for e-commerce apps running on 100,000+ servers
summary
Alibaba runs 175,000 TPS on 11.11 traffic and uses a customized OpenJDK AGGDK (custom OpenJDK) that implements three concrete changes: tenant containers that map Java threads/native tasks into Linux cgroups and G1 region ownership so each app unit has CPU and heap limits and JMX visibility; coroutines via Da Vinci Machine scheduled on a selector to replace callbacks and save ~10% CPU normally and up to ~30% on I/O workloads; and quick warmup precompilation that records class/method load in a beta run and precompiles hot methods to avoid JIT CPU spikes.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 0:21Agenda
- 2:43Container Resource Management
- 15:33Loom
- 15:58Single API
- 17:16Single API Demo
- 19:20Selector
- 21:55Schedule Process
- 28:13Proposal
- 29:10Implementation
- 30:14Warmup
- 31:01Application Context
- 31:54Initializing
- 33:22Results
- 34:42Considerations
- 35:48Engineer Support
- 37:15Demonstration
- 39:55Summary
- 40:13QA
related talks
39mSpeed JVM Performance with JWarmUp
41mA glimpse into Alibaba Drogonwell: Towards a Java Runtime for Cloud Computing
01mA glimpse into Alibaba Dragonwell
47mOptimize your Java application for containers and serverless
06mSimple Tweaks to Get the Most Out of your JVM
21mFaster Data With Faster Java
01h 32mBuilding and Tuning High Performance Java Platforms
47mLegal JVM Doping in Your Containers
