1.Java @
2.0x1,
3.GreenTea JUG 2018-03 http://greenteajug.cn/
4.
5.
6. Hardware OPS Stable Session Pause-less based KPI Perf Multiple Non-volatile languages Cost Manual
7.
8.“ ”
9.GC
10.
11.Java Spring FastJson DAO …… App Server Magic JDK JVM
12.• • • • •
13.• JDK • • • 90% • • C4
14.0x2,
15.: Hbase Bucket Cache 0xfffa0120… offset Bucket Cache (byte array)
16.: GCIH (GC Invisible Heap) 0xfffa000.. GCIH Obj Obj Obj 0xfffb000.. Java heap 0xffff000..
17. …… • • • • … • Epsilon GC • http://openjdk.java.net/jeps/318
18. …. • Java Delete • delete • Java HEAP Java HEAP • GC + Delete • New + Delete New Delete BridgedCHeap https://github.com/luchsh/bridgedCHeap
19.0x3,
20.RI • ZGC • • • throughput • RI GC • Load barrier • 15% throughput
21. 4TB 4TB 4TB 4TB 42 64
22.• Java GC • Project Valhalla
23.• Eden Survivor • heap • OLD • • • • Code cache Metaspace • C-HEAP Stack Static
24. profiling • • GC Log APM • • Allocation site • • • •
25.• profile • TLAB JIT • • Stack • Age • Object move
26.0 Nursery Tenured
27.0 0 0 0
28.• • Gc • VM • • • • • throughput ! VM APP
29. Eden Survivor NewGen JVM JVM Old PermHeap
30.
31.
32.0x4,
33. REG • • L1 • L2 • • L3 DDR NVM DISK/TAPE
34.Non-Volatile Memory • • • •
35. JVM-1 JVM-2 Reboot/upgrade/recovery obj obj obj Save Restore Klass-1 obj obj obj obj Klass-2 Klass-3 obj obj obj Metadata Persistent Heap Docker/ECS/VM
36.• • MMU • barrier •
37.• • • • • GC • GC • • Java
38.BACKUP
39.JVM-JDK API API bug JDK Class library (API) JDK JVM JDK 6 JDK 6 JDK 6 JDK 6 JDK 6 ……. JVM 6 JVM 7 JVM 8 JVM 9 JVM 30
40.• • Jvm • • • •