Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Z Garbage Collector


Brief overview of ZGC delivered during the Japan Java User's Group Night Seminar, March 28th 2019.

In this short introduction we cover:

- introduction to ZGC and its goals
- brief overview of the implementation
- performance results
- usage
- future roadmap

  • Login to see the comments

  • Be the first to like this

Z Garbage Collector

  1. 1. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | The Z Garbage Collector Scalable Low-Latency GC in JDK 11 David Buck JVM Engineer Java Platform Group, Oracle March 28, 2019
  2. 2. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 2
  3. 3. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • JVM Sustaining Engineer • OpenJDK Update Project Maintainer • JavaOne Rock Star • Co-author of Oracle WebLogic Server 11g 構築・運用ガイド • @DavidBuckJP • https://blogs.oracle.com/buck/ Who am I? バック デイビッド(左)
  4. 4. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Agenda ZGC って何? 実装 パフォーマンス ZGC の使い方 ロードマップ 1 2 3 4 5 4
  5. 5. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC って何? 5
  6. 6. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | まずは Z の意味。。。 6
  7. 7. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZFS 7
  8. 8. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZFS Zettabyte File System 8
  9. 9. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Zettabyte 9
  10. 10. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Zettabyte? 10
  11. 11. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Zettabyte == 1000^7 bytes 11
  12. 12. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Zettabyte == 1000^7 bytes == 1000 Exabytes 12
  13. 13. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Zettabyte == 1000^7 bytes == 1000 Exabytes == 1,000,000 Petabytes 13
  14. 14. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Zettabyte == 1000^7 bytes == 1000 Exabytes == 1,000,000 Petabytes == 1,000,000,000 Terabytes 14
  15. 15. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Zettabyte != Zebibyte 1000^7 != 1024^7 15
  16. 16. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZFS 最大 FS サイズ 256,000,000,000 yobibytes 最大ファイルサイズ 16 exbibytes 16
  17. 17. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZFS ZGC 17
  18. 18. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZFS ZGC 18
  19. 19. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZFS ZGC 19
  20. 20. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZFS ZGC ??? 20
  21. 21. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC 21
  22. 22. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | JDK 11 以降の新しい GC (実験的 Linux/x86_64 のみ) 22
  23. 23. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | A Scalable Low-Latency Garbage Collector 23
  24. 24. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 目的 複数 TB のヒープ 以下の停止時間 楽なチューニング 以下のオーバーヘッド 10msTB 15% 24
  25. 25. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC のイロハ Concurrent Tracing Compacting Single Generation 25 Region 式 NUMA 対応 Load barriers Colored pointers
  26. 26. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC の特徴 ヒープと生存データのサイズが停止時間に 影響を及ぼさない 26
  27. 27. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC の特徴 ルート参照の数が停止時間に 影響を及ぼす (Java スレッドの数) 27
  28. 28. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | コンカレント? Serial Parallel CMS G1 ZGC Marking Relocation/Compaction Reference Processing Relocation Set Selection StringTable Cleaning JNI WeakRef Cleaning JNI GlobalRefs Scanning Class Unloading Thread Stack Scanning 28
  29. 29. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | コンカレント? Serial Parallel CMS G1 ZGC Marking - - Relocation/Compaction - - Reference Processing - - Relocation Set Selection - - StringTable Cleaning - - JNI WeakRef Cleaning - - JNI GlobalRefs Scanning - - Class Unloading - - Thread Stack Scanning - - 29
  30. 30. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | コンカレント? Serial Parallel CMS G1 ZGC Marking - - ✔* ✔* Relocation/Compaction - - - - Reference Processing - - - - Relocation Set Selection - - - - StringTable Cleaning - - - - JNI WeakRef Cleaning - - - - JNI GlobalRefs Scanning - - - - Class Unloading - - - - Thread Stack Scanning - - - - 30 **) Old Gen Only
  31. 31. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | コンカレント? Serial Parallel CMS G1 ZGC Marking - - ✔* ✔* ✔ Relocation/Compaction - - - - ✔ Reference Processing - - - - ✔ Relocation Set Selection - - - - ✔ StringTable Cleaning - - - - ✔ JNI WeakRef Cleaning - - - - ✔ JNI GlobalRefs Scanning - - - - ✔** Class Unloading - - - - ✔** Thread Stack Scanning - - - - - 31 **) Old Gen Only **) JDK 12 以降
  32. 32. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 実装 32
  33. 33. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Heap Address Space ヒープのアドレス空間 Maps into Max heap size (Xmx) Large address space reservation Heap Memory/RegionsHeap Memory/Regions 33
  34. 34. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC Phases Concurrent Mark/Remap Pause Mark End Pause Relocate StartPause Mark Start Concurrent Prepare for Reloc. Concurrent Relocate GC Cycle 34
  35. 35. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC Phases Concurrent Mark/Remap Pause Mark End Pause Relocate StartPause Mark Start Concurrent Prepare for Reloc. Concurrent Relocate GC Cycle Scan thread stacks 35
  36. 36. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC Phases Concurrent Mark/Remap Pause Mark End Pause Relocate StartPause Mark Start Concurrent Prepare for Reloc. Concurrent Relocate GC Cycle Walk object graph 36
  37. 37. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC Phases Concurrent Mark/Remap Pause Mark End Pause Relocate StartPause Mark Start Concurrent Prepare for Reloc. Concurrent Relocate GC Cycle Synchronization point 37
  38. 38. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC Phases Concurrent Mark/Remap Pause Mark End Pause Relocate StartPause Mark Start Concurrent Prepare for Reloc. Concurrent Relocate GC Cycle Reference processing Weak root cleaning Relocation set selection 38
  39. 39. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC Phases Concurrent Mark/Remap Pause Mark End Pause Relocate StartPause Mark Start Concurrent Prepare for Reloc. Concurrent Relocate GC Cycle Scan thread stacks 39
  40. 40. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC Phases Concurrent Mark/Remap Pause Mark End Pause Relocate StartPause Mark Start Concurrent Prepare for Reloc. Concurrent Relocate GC Cycle Compact heap 40
  41. 41. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC Phases Concurrent Mark/Remap Pause Mark End Pause Relocate StartPause Mark Start Concurrent Prepare for Reloc. Concurrent Relocate GC Cycle 41
  42. 42. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC Phases Concurrent Mark/Remap Pause Mark End Pause Relocate StartPause Mark Start Concurrent Prepare for Reloc. Concurrent Relocate GC Cycle 42 < 10 ms < 10 ms < 10 ms
  43. 43. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Colored Pointers (タグを含むポインター) • ZGC の設計の基盤となる概念の一つ • 利用されていないビットにメタデータを格納する – 32-bit の JVM はサポート対象外 – CompressedOops もサポート対象外 43 Object のアドレス (42 bits, 4TB アドレス空間) 64-bit Object ポインター 未使用 (18 ビット) Colors
  44. 44. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Heap Multi-Mapping on Linux/x86_64 Heap Remapped View Heap Marked1 View Heap Marked0 View 0x00007FFFFFFFFFFF (128TB) 0x0000140000000000 (20TB) 0x0000100000000000 (16TB) 0x00000C0000000000 (12TB) 0x0000080000000000 (8TB) 0x0000040000000000 (4TB) 0x0000000000000000 Heap Memory Address Space Same memory mapped in 3 different locations Colored pointer (Remapped) 0x0000100012345678 Colorless pointer 0x0000000012345678 Colored pointer (Marked1) 0x0000080012345678 Colored pointer (Marked0) 0x0000040012345678 44
  45. 45. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Load Barrier • 特定の処理にコードを組み込む – Object の参照をヒープから読み込む場合 • 読み込んだポインタの色(color)が「正しい」かどうかを確認 – 正しくない場合、直す 45
  46. 46. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Load Barrier String n = person.name; // Loading an object reference from heap 46 String name; int age; double height; ... Person String
  47. 47. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Load Barrier String n = person.name; // Loading an object reference from heap <load barrier needed here> 47 String name; int age; double height; ... Person String
  48. 48. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Load Barrier String n = person.name; // Loading an object reference from heap <load barrier needed here> String p = n; // No barrier, not a load from heap n.isEmpty(); // No barrier, not a load from heap int age = person.age; // No barrier, not an object reference 48 String name; int age; double height; ... Person String
  49. 49. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Load Barrier String n = person.name; // Loading an object reference from heap <load barrier needed here> 49 String name; int age; double height; ... Person String
  50. 50. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Load Barrier String n = person.name; // Loading an object reference from heap if (n & bad_bit_mask) { slow_path(register_for(n), address_of(person.name)); } 50 String name; int age; double height; ... Person String
  51. 51. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Load Barrier mov 0x10(%rax), %rbx // String n = person.name; test %rbx, (0x16)%r15 // Bad color? jnz slow_path // Yes -> Enter slow path and // mark/relocate/remap, adjust // 0x10(%rax) and %rbx 51
  52. 52. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Load Barrier mov 0x10(%rax), %rbx // String n = person.name; test %rbx, (0x16)%r15 // Bad color? jnz slow_path // Yes -> Enter slow path and // mark/relocate/remap, adjust // 0x10(%rax) and %rbx ~4% 実行オーバーヘッド SPECjbb®2015 52
  53. 53. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | パフォーマンス 53
  54. 54. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Mode: Composite Heap Size: 128G OS: Oracle Linux 7.4 HW: Intel Xeon E5-2690 2.9GHz 2 sockets, 16 cores (32 hw-threads) SPECjbb®2015 is a registered trademark of the Standard Performance Evaluation Corporation (spec.org). The actual results are not represented as compliant because the SUT may not meet SPEC's requirements for general availability. SPECjbb®2015 – Score 54 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% ZGC Parallel G1 (Higher is better) max-JOPS (Throughput) critical-JOPS (Throughput with latency requirements)
  55. 55. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Mode: Composite Heap Size: 128G OS: Oracle Linux 7.4 HW: Intel Xeon E5-2690 2.9GHz 2 sockets, 16 cores (32 hw-threads) SPECjbb®2015 is a registered trademark of the Standard Performance Evaluation Corporation (spec.org). The actual results are not represented as compliant because the SUT may not meet SPEC's requirements for general availability. SPECjbb®2015 – Score 55 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% ZGC Parallel G1 (Higher is better) max-JOPS (Throughput) critical-JOPS (Throughput with latency requirements) 50% 29%
  56. 56. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 0 100 200 300 400 500 600 ZGC Parallel G1 GCPauseTimes(ms) Linear scale (Lower is better) Average 95th percentile 99th percentile 99.9th percentile Max SPECjbb®2015 – Pause Times 56
  57. 57. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 1 10 100 1000 ZGC Parallel G1 GCPauseTimes(ms) Logarithmic scale (Lower is better) Average 95th percentile 99th percentile 99.9th percentile Max SPECjbb®2015 – Pause Times 57
  58. 58. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 1 10 100 1000 ZGC Parallel G1 GCPauseTimes(ms) Logarithmic scale (Lower is better) Average 95th percentile 99th percentile 99.9th percentile Max SPECjbb®2015 – Pause Times 58 1.96 1.10 156 306 211 544
  59. 59. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 1 10 100 1000 ZGC Parallel G1 GCPauseTimes(ms) Logarithmic scale (Lower is better) Average 95th percentile 99th percentile 99.9th percentile Max SPECjbb®2015 – Pause Times 59 1.96 1.10 156 306 211 544
  60. 60. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC の使い方 60
  61. 61. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 有効にする -XX:+UseZGC 61
  62. 62. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 有効にする -XX:+UnlockExperimentalVMOptions -XX:+UseZGC 62
  63. 63. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | チューニング 63
  64. 64. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | チューニング -Xmx<size> 最大のヒープサイズ 64
  65. 65. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | チューニング -Xmx<size> -XX:ConcGCThreads=<number> (必要に応じて)GC のワーカースレッド 65
  66. 66. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | チューニング -Xmx<size> -XX:ConcGCThreads=<number> これだけ? 66
  67. 67. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ログ出力 -Xlog:gc (基本) -Xlog:gc* (詳細) 67
  68. 68. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Garbage Collection (Proactive) 13426M(10%)->2492M(2%) Garbage Collection (Allocation Rate) 87676M(67%)->19578M(15%) Garbage Collection (Allocation Rate) 55302M(42%)->17646M(13%) Garbage Collection (Allocation Rate) 61794M(47%)->26794M(20%) Garbage Collection (Allocation Rate) 60856M(46%)->31926M(24%) Garbage Collection (Allocation Rate) 52744M(40%)->38050M(29%) Garbage Collection (Allocation Rate) 42542M(32%)->32204M(25%) Garbage Collection (Allocation Rate) 49974M(38%)->8534M(7%) Garbage Collection (System.gc()) 8534M(7%)->282M(0%) Garbage Collection (Allocation Rate) 95454M(73%)->25660M(20%) Garbage Collection (Allocation Rate) 42478M(32%)->23812M(18%) Garbage Collection (Allocation Rate) 56714M(43%)->29090M(22%) Garbage Collection (Allocation Rate) 62802M(48%)->28648M(22%) Garbage Collection (Allocation Rate) 59748M(46%)->23770M(18%) Garbage Collection (Allocation Rate) 74946M(57%)->23284M(18%) Garbage Collection (System.gc()) 44902M(34%)->422M(0%) Garbage Collection (Allocation Rate) 94510M(72%)->20456M(16%) Garbage Collection (Allocation Rate) 59694M(46%)->25834M(20%) Garbage Collection (Allocation Rate) 63494M(48%)->29128M(22%) Garbage Collection (Allocation Rate) 59034M(45%)->27094M(21%) Garbage Collection (Allocation Rate) 66110M(50%)->25278M(19%) Garbage Collection (Allocation Rate) 73410M(56%)->27968M(21%) Garbage Collection (Allocation Rate) 70010M(53%)->32236M(25%) Garbage Collection (Allocation Rate) 64444M(49%)->27612M(21%) Garbage Collection (Allocation Rate) 64484M(49%)->29910M(23%) Garbage Collection (Allocation Rate) 64128M(49%)->33184M(25%) Garbage Collection (Allocation Rate) 59148M(45%)->27800M(21%) Garbage Collection (Allocation Rate) 63104M(48%)->27976M(21%) Garbage Collection (Allocation Rate) 64418M(49%)->34390M(26%) Garbage Collection (Allocation Rate) 52284M(40%)->30654M(23%) Garbage Collection (Allocation Rate) 58746M(45%)->32028M(24%) Garbage Collection (Allocation Rate) 59468M(45%)->32804M(25%) Garbage Collection (Allocation Rate) 53342M(41%)->18436M(14%) 68
  69. 69. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Garbage Collection (Proactive) 13426M(10%)->2492M(2%) Garbage Collection (Allocation Rate) 87676M(67%)->19578M(15%) Garbage Collection (Allocation Rate) 55302M(42%)->17646M(13%) Garbage Collection (Allocation Rate) 61794M(47%)->26794M(20%) Garbage Collection (Allocation Rate) 60856M(46%)->31926M(24%) Garbage Collection (Allocation Rate) 52744M(40%)->38050M(29%) Garbage Collection (Allocation Rate) 42542M(32%)->32204M(25%) Garbage Collection (Allocation Rate) 49974M(38%)->8534M(7%) Garbage Collection (System.gc()) 8534M(7%)->282M(0%) Garbage Collection (Allocation Rate) 95454M(73%)->25660M(20%) Garbage Collection (Allocation Rate) 42478M(32%)->23812M(18%) Garbage Collection (Allocation Rate) 56714M(43%)->29090M(22%) Garbage Collection (Allocation Rate) 62802M(48%)->28648M(22%) Garbage Collection (Allocation Rate) 59748M(46%)->23770M(18%) Garbage Collection (Allocation Rate) 74946M(57%)->23284M(18%) Garbage Collection (System.gc()) 44902M(34%)->422M(0%) Garbage Collection (Allocation Rate) 94510M(72%)->20456M(16%) Garbage Collection (Allocation Rate) 59694M(46%)->25834M(20%) Garbage Collection (Allocation Rate) 63494M(48%)->29128M(22%) Garbage Collection (Allocation Rate) 59034M(45%)->27094M(21%) Garbage Collection (Allocation Rate) 66110M(50%)->25278M(19%) Garbage Collection (Allocation Rate) 73410M(56%)->27968M(21%) Garbage Collection (Allocation Rate) 70010M(53%)->32236M(25%) Garbage Collection (Allocation Rate) 64444M(49%)->27612M(21%) Garbage Collection (Allocation Rate) 64484M(49%)->29910M(23%) Garbage Collection (Allocation Rate) 64128M(49%)->33184M(25%) Garbage Collection (Allocation Rate) 59148M(45%)->27800M(21%) Garbage Collection (Allocation Rate) 63104M(48%)->27976M(21%) Garbage Collection (Allocation Rate) 64418M(49%)->34390M(26%) Garbage Collection (Allocation Rate) 52284M(40%)->30654M(23%) Garbage Collection (Allocation Rate) 58746M(45%)->32028M(24%) Garbage Collection (Allocation Rate) 59468M(45%)->32804M(25%) Garbage Collection (Allocation Rate) 53342M(41%)->18436M(14%) 69 Garbage Collection (Allocation Rate) 95454M(73%)->25660M(20%)
  70. 70. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Garbage Collection (Allocation Rate) Pause Mark Start 0.949ms Concurrent Mark 1151.425ms Pause Mark End 0.882ms Concurrent Process Non-Strong References 0.367ms Concurrent Reset Relocation Set 18.090ms Concurrent Destroy Detached Pages 0.002ms Concurrent Select Relocation Set 12.295ms Concurrent Prepare Relocation Set 70.922ms Pause Relocate Start 1.419ms Concurrent Relocate 645.941ms Load: 15.77/10.68/9.93 MMU: 2ms/0.0%, 5ms/57.5%, 10ms/78.7%, 20ms/87.8%, 50ms/93.7%, 100ms/96.8% Mark: 4 stripe(s), 2 proactive flush(es), 1 terminate flush(es), 0 completion(s), 0 continuation(s) Relocation: Successful, 867M relocated NMethods: 3209 registered, 1559 unregistered Soft: 466881 encountered, 0 discovered, 0 enqueued Weak: 5421 encountered, 3526 discovered, 1742 enqueued Final: 55 encountered, 6 discovered, 0 enqueued Phantom: 74 encountered, 59 discovered, 0 enqueued Mark Start Mark End Relocate Start Relocate End High Low Capacity: 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) Reserve: 72M (0%) 72M (0%) 72M (0%) 72M (0%) 72M (0%) 72M (0%) Free: 7654M (6%) 5898M (4%) 24018M (18%) 126296M (96%) 126306M (96%) 5866M (4%) Used: 123346M (94%) 125102M (95%) 106982M (82%) 4704M (4%) 125134M (95%) 4694M (4%) Live: - 1722M (1%) 1722M (1%) 1722M (1%) - - Allocated: - 1796M (1%) 1962M (1%) 3766M (3%) - - Garbage: - 121623M (93%) 103353M (79%) 127M (0%) - - Reclaimed: - - 18270M (14%) 121496M (93%) - - Garbage Collection (Allocation Rate) 123346M(94%)->4704M(4%) 70
  71. 71. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Garbage Collection (Allocation Rate) Pause Mark Start 0.949ms Concurrent Mark 1151.425ms Pause Mark End 0.882ms Concurrent Process Non-Strong References 0.367ms Concurrent Reset Relocation Set 18.090ms Concurrent Destroy Detached Pages 0.002ms Concurrent Select Relocation Set 12.295ms Concurrent Prepare Relocation Set 70.922ms Pause Relocate Start 1.419ms Concurrent Relocate 645.941ms Load: 15.77/10.68/9.93 MMU: 2ms/0.0%, 5ms/57.5%, 10ms/78.7%, 20ms/87.8%, 50ms/93.7%, 100ms/96.8% Mark: 4 stripe(s), 2 proactive flush(es), 1 terminate flush(es), 0 completion(s), 0 continuation(s) Relocation: Successful, 867M relocated NMethods: 3209 registered, 1559 unregistered Soft: 466881 encountered, 0 discovered, 0 enqueued Weak: 5421 encountered, 3526 discovered, 1742 enqueued Final: 55 encountered, 6 discovered, 0 enqueued Phantom: 74 encountered, 59 discovered, 0 enqueued Mark Start Mark End Relocate Start Relocate End High Low Capacity: 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) Reserve: 72M (0%) 72M (0%) 72M (0%) 72M (0%) 72M (0%) 72M (0%) Free: 7654M (6%) 5898M (4%) 24018M (18%) 126296M (96%) 126306M (96%) 5866M (4%) Used: 123346M (94%) 125102M (95%) 106982M (82%) 4704M (4%) 125134M (95%) 4694M (4%) Live: - 1722M (1%) 1722M (1%) 1722M (1%) - - Allocated: - 1796M (1%) 1962M (1%) 3766M (3%) - - Garbage: - 121623M (93%) 103353M (79%) 127M (0%) - - Reclaimed: - - 18270M (14%) 121496M (93%) - - Garbage Collection (Allocation Rate) 123346M(94%)->4704M(4%) 71 Pause Mark Start 0.949ms Concurrent Mark 1151.425ms Pause Mark End 0.882ms Concurrent Process Non-Strong References 0.367ms Concurrent Reset Relocation Set 18.090ms Concurrent Destroy Detached Pages 0.002ms Concurrent Select Relocation Set 12.295ms Concurrent Prepare Relocation Set 70.922ms Pause Relocate Start 1.419ms Concurrent Relocate 645.941ms
  72. 72. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Garbage Collection (Allocation Rate) Pause Mark Start 0.949ms Concurrent Mark 1151.425ms Pause Mark End 0.882ms Concurrent Process Non-Strong References 0.367ms Concurrent Reset Relocation Set 18.090ms Concurrent Destroy Detached Pages 0.002ms Concurrent Select Relocation Set 12.295ms Concurrent Prepare Relocation Set 70.922ms Pause Relocate Start 1.419ms Concurrent Relocate 645.941ms Load: 15.77/10.68/9.93 MMU: 2ms/0.0%, 5ms/57.5%, 10ms/78.7%, 20ms/87.8%, 50ms/93.7%, 100ms/96.8% Mark: 4 stripe(s), 2 proactive flush(es), 1 terminate flush(es), 0 completion(s), 0 continuation(s) Relocation: Successful, 867M relocated NMethods: 3209 registered, 1559 unregistered Soft: 466881 encountered, 0 discovered, 0 enqueued Weak: 5421 encountered, 3526 discovered, 1742 enqueued Final: 55 encountered, 6 discovered, 0 enqueued Phantom: 74 encountered, 59 discovered, 0 enqueued Mark Start Mark End Relocate Start Relocate End High Low Capacity: 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) Reserve: 72M (0%) 72M (0%) 72M (0%) 72M (0%) 72M (0%) 72M (0%) Free: 7654M (6%) 5898M (4%) 24018M (18%) 126296M (96%) 126306M (96%) 5866M (4%) Used: 123346M (94%) 125102M (95%) 106982M (82%) 4704M (4%) 125134M (95%) 4694M (4%) Live: - 1722M (1%) 1722M (1%) 1722M (1%) - - Allocated: - 1796M (1%) 1962M (1%) 3766M (3%) - - Garbage: - 121623M (93%) 103353M (79%) 127M (0%) - - Reclaimed: - - 18270M (14%) 121496M (93%) - - Garbage Collection (Allocation Rate) 123346M(94%)->4704M(4%) 72 Mark Start Mark End Relocate Start Relocate End Capacity: 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) Reserve: 72M (0%) 72M (0%) 72M (0%) 72M (0%) Free: 7654M (6%) 5898M (4%) 24018M (18%) 126296M (96%) Used: 123346M (94%) 125102M (95%) 106982M (82%) 4704M (4%) Live: - 1722M (1%) 1722M (1%) 1722M (1%) Allocated: - 1796M (1%) 1962M (1%) 3766M (3%) Garbage: - 121623M (93%) 103353M (79%) 127M (0%) Reclaimed: - - 18270M (14%) 121496M (93%)
  73. 73. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC Phases Concurrent Mark/Remap Pause Mark End Pause Relocate StartPause Mark Start Concurrent Prepare for Reloc. Concurrent Relocate GC Cycle 73
  74. 74. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Garbage Collection (Allocation Rate) Pause Mark Start 0.949ms Concurrent Mark 1151.425ms Pause Mark End 0.882ms Concurrent Process Non-Strong References 0.367ms Concurrent Reset Relocation Set 18.090ms Concurrent Destroy Detached Pages 0.002ms Concurrent Select Relocation Set 12.295ms Concurrent Prepare Relocation Set 70.922ms Pause Relocate Start 1.419ms Concurrent Relocate 645.941ms Load: 15.77/10.68/9.93 MMU: 2ms/0.0%, 5ms/57.5%, 10ms/78.7%, 20ms/87.8%, 50ms/93.7%, 100ms/96.8% Mark: 4 stripe(s), 2 proactive flush(es), 1 terminate flush(es), 0 completion(s), 0 continuation(s) Relocation: Successful, 867M relocated NMethods: 3209 registered, 1559 unregistered Soft: 466881 encountered, 0 discovered, 0 enqueued Weak: 5421 encountered, 3526 discovered, 1742 enqueued Final: 55 encountered, 6 discovered, 0 enqueued Phantom: 74 encountered, 59 discovered, 0 enqueued Mark Start Mark End Relocate Start Relocate End High Low Capacity: 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) Reserve: 72M (0%) 72M (0%) 72M (0%) 72M (0%) 72M (0%) 72M (0%) Free: 7654M (6%) 5898M (4%) 24018M (18%) 126296M (96%) 126306M (96%) 5866M (4%) Used: 123346M (94%) 125102M (95%) 106982M (82%) 4704M (4%) 125134M (95%) 4694M (4%) Live: - 1722M (1%) 1722M (1%) 1722M (1%) - - Allocated: - 1796M (1%) 1962M (1%) 3766M (3%) - - Garbage: - 121623M (93%) 103353M (79%) 127M (0%) - - Reclaimed: - - 18270M (14%) 121496M (93%) - - Garbage Collection (Allocation Rate) 123346M(94%)->4704M(4%) 74 Mark Start Mark End Relocate Start Relocate End Capacity: 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) Reserve: 72M (0%) 72M (0%) 72M (0%) 72M (0%) Free: 7654M (6%) 5898M (4%) 24018M (18%) 126296M (96%) Used: 123346M (94%) 125102M (95%) 106982M (82%) 4704M (4%) Live: - 1722M (1%) 1722M (1%) 1722M (1%) Allocated: - 1796M (1%) 1962M (1%) 3766M (3%) Garbage: - 121623M (93%) 103353M (79%) 127M (0%) Reclaimed: - - 18270M (14%) 121496M (93%)
  75. 75. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Garbage Collection (Allocation Rate) Pause Mark Start 0.949ms Concurrent Mark 1151.425ms Pause Mark End 0.882ms Concurrent Process Non-Strong References 0.367ms Concurrent Reset Relocation Set 18.090ms Concurrent Destroy Detached Pages 0.002ms Concurrent Select Relocation Set 12.295ms Concurrent Prepare Relocation Set 70.922ms Pause Relocate Start 1.419ms Concurrent Relocate 645.941ms Load: 15.77/10.68/9.93 MMU: 2ms/0.0%, 5ms/57.5%, 10ms/78.7%, 20ms/87.8%, 50ms/93.7%, 100ms/96.8% Mark: 4 stripe(s), 2 proactive flush(es), 1 terminate flush(es), 0 completion(s), 0 continuation(s) Relocation: Successful, 867M relocated NMethods: 3209 registered, 1559 unregistered Soft: 466881 encountered, 0 discovered, 0 enqueued Weak: 5421 encountered, 3526 discovered, 1742 enqueued Final: 55 encountered, 6 discovered, 0 enqueued Phantom: 74 encountered, 59 discovered, 0 enqueued Mark Start Mark End Relocate Start Relocate End High Low Capacity: 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) 131072M (100%) Reserve: 72M (0%) 72M (0%) 72M (0%) 72M (0%) 72M (0%) 72M (0%) Free: 7654M (6%) 5898M (4%) 24018M (18%) 126296M (96%) 126306M (96%) 5866M (4%) Used: 123346M (94%) 125102M (95%) 106982M (82%) 4704M (4%) 125134M (95%) 4694M (4%) Live: - 1722M (1%) 1722M (1%) 1722M (1%) - - Allocated: - 1796M (1%) 1962M (1%) 3766M (3%) - - Garbage: - 121623M (93%) 103353M (79%) 127M (0%) - - Reclaimed: - - 18270M (14%) 121496M (93%) - - Garbage Collection (Allocation Rate) 123346M(94%)->4704M(4%) 75
  76. 76. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | GC Statistics (統計) === Garbage Collection Statistics ======================================================================================================================= Last 10s Last 10m Last 10h Total Avg / Max Avg / Max Avg / Max Avg / Max Collector: Garbage Collection Cycle 1906.804 / 1906.804 1871.019 / 2184.368 2764.747 / 4655.377 2764.747 / 4655.377 ms Contention: Mark Segment Reset Contention 3 / 24 0 / 34 0 / 73 0 / 73 ops/s Contention: Mark SeqNum Reset Contention 0 / 0 0 / 0 0 / 2 0 / 2 ops/s Contention: Relocation Contention 27 / 275 9 / 1137 14 / 9460 14 / 9460 ops/s Critical: Allocation Stall 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 ms Critical: Allocation Stall 0 / 0 0 / 0 0 / 0 0 / 0 ops/s Critical: GC Locker Stall 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 ms Critical: GC Locker Stall 0 / 0 0 / 0 0 / 0 0 / 0 ops/s Memory: Allocation Rate 1458 / 1672 1089 / 1904 1679 / 7914 1679 / 7914 MB/s Memory: Heap Used After Mark 125102 / 125102 97411 / 125102 70566 / 125102 70566 / 125102 MB Memory: Heap Used After Relocation 4704 / 4704 4019 / 4814 17042 / 34092 17042 / 34092 MB Memory: Heap Used Before Mark 123346 / 123346 95981 / 123346 61669 / 123346 61669 / 123346 MB Memory: Heap Used Before Relocation 106982 / 106982 85095 / 106982 60136 / 106982 60136 / 106982 MB Memory: Out Of Memory 0 / 0 0 / 0 0 / 0 0 / 0 ops/s Memory: Page Cache Flush 0 / 0 0 / 0 0 / 0 0 / 0 MB/s Memory: Page Cache Hit L1 710 / 1037 499 / 1037 771 / 3777 771 / 3777 ops/s Memory: Page Cache Hit L2 12 / 77 3 / 179 5 / 517 5 / 517 ops/s Memory: Page Cache Miss 8 / 81 19 / 651 29 / 1932 29 / 1932 ops/s Memory: Undo Object Allocation Failed 1 / 12 0 / 18 0 / 64 0 / 64 ops/s Memory: Undo Object Allocation Succeeded 26 / 263 9 / 1137 13 / 9460 13 / 9460 ops/s Memory: Undo Page Allocation 3 / 30 5 / 249 9 / 1027 9 / 1027 ops/s Phase: Concurrent Destroy Detached Pages 0.002 / 0.002 0.001 / 0.002 0.041 / 2.230 0.041 / 2.230 ms Phase: Concurrent Mark 1151.425 / 1151.425 1163.417 / 1452.750 1584.987 / 3028.289 1584.987 / 3028.289 ms Phase: Concurrent Mark Continue 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 ms Phase: Concurrent Prepare Relocation Set 70.922 / 70.922 67.627 / 74.532 81.298 / 374.926 81.298 / 374.926 ms Phase: Concurrent Process Non-Strong References 0.367 / 0.367 0.391 / 0.463 0.394 / 0.774 0.394 / 0.774 ms Phase: Concurrent Relocate 645.941 / 645.941 602.340 / 645.941 1051.985 / 2198.100 1051.985 / 2198.100 ms Phase: Concurrent Reset Relocation Set 18.090 / 18.090 13.636 / 18.090 11.832 / 28.342 11.832 / 28.342 ms Phase: Concurrent Select Relocation Set 12.295 / 12.295 15.162 / 28.735 20.960 / 57.464 20.960 / 57.464 ms Phase: Pause Mark End 0.882 / 0.882 0.997 / 1.095 0.941 / 1.199 0.941 / 1.199 ms Phase: Pause Mark Start 0.949 / 0.949 0.875 / 0.983 0.832 / 1.013 0.832 / 1.013 ms Phase: Pause Relocate Start 1.419 / 1.419 1.532 / 2.091 1.474 / 2.127 1.474 / 2.127 ms Subphase: Concurrent Mark 1151.055 / 1151.287 1162.724 / 1452.499 1059.510 / 3028.035 1059.510 / 3028.035 ms Subphase: Concurrent Mark Idle 1.058 / 1.060 1.088 / 2.320 2.727 / 22.115 2.727 / 22.115 ms Subphase: Concurrent Mark Try Flush 0.779 / 1.862 0.603 / 5.829 8.556 / 50.035 8.556 / 50.035 ms Subphase: Concurrent Mark Try Terminate 0.849 / 1.062 0.940 / 2.321 2.766 / 45.114 2.766 / 45.114 ms 76
  77. 77. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | === Garbage Collection Statistics ======================================================================================================================= Last 10s Last 10m Last 10h Total Avg / Max Avg / Max Avg / Max Avg / Max Collector: Garbage Collection Cycle 1906.804 / 1906.804 1871.019 / 2184.368 2764.747 / 4655.377 2764.747 / 4655.377 ms Contention: Mark Segment Reset Contention 3 / 24 0 / 34 0 / 73 0 / 73 ops/s Contention: Mark SeqNum Reset Contention 0 / 0 0 / 0 0 / 2 0 / 2 ops/s Contention: Relocation Contention 27 / 275 9 / 1137 14 / 9460 14 / 9460 ops/s Critical: Allocation Stall 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 ms Critical: Allocation Stall 0 / 0 0 / 0 0 / 0 0 / 0 ops/s Critical: GC Locker Stall 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 ms Critical: GC Locker Stall 0 / 0 0 / 0 0 / 0 0 / 0 ops/s Memory: Allocation Rate 1458 / 1672 1089 / 1904 1679 / 7914 1679 / 7914 MB/s Memory: Heap Used After Mark 125102 / 125102 97411 / 125102 70566 / 125102 70566 / 125102 MB Memory: Heap Used After Relocation 4704 / 4704 4019 / 4814 17042 / 34092 17042 / 34092 MB Memory: Heap Used Before Mark 123346 / 123346 95981 / 123346 61669 / 123346 61669 / 123346 MB Memory: Heap Used Before Relocation 106982 / 106982 85095 / 106982 60136 / 106982 60136 / 106982 MB Memory: Out Of Memory 0 / 0 0 / 0 0 / 0 0 / 0 ops/s Memory: Page Cache Flush 0 / 0 0 / 0 0 / 0 0 / 0 MB/s Memory: Page Cache Hit L1 710 / 1037 499 / 1037 771 / 3777 771 / 3777 ops/s Memory: Page Cache Hit L2 12 / 77 3 / 179 5 / 517 5 / 517 ops/s Memory: Page Cache Miss 8 / 81 19 / 651 29 / 1932 29 / 1932 ops/s Memory: Undo Object Allocation Failed 1 / 12 0 / 18 0 / 64 0 / 64 ops/s Memory: Undo Object Allocation Succeeded 26 / 263 9 / 1137 13 / 9460 13 / 9460 ops/s Memory: Undo Page Allocation 3 / 30 5 / 249 9 / 1027 9 / 1027 ops/s Phase: Concurrent Destroy Detached Pages 0.002 / 0.002 0.001 / 0.002 0.041 / 2.230 0.041 / 2.230 ms Phase: Concurrent Mark 1151.425 / 1151.425 1163.417 / 1452.750 1584.987 / 3028.289 1584.987 / 3028.289 ms Phase: Concurrent Mark Continue 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 ms Phase: Concurrent Prepare Relocation Set 70.922 / 70.922 67.627 / 74.532 81.298 / 374.926 81.298 / 374.926 ms Phase: Concurrent Process Non-Strong References 0.367 / 0.367 0.391 / 0.463 0.394 / 0.774 0.394 / 0.774 ms Phase: Concurrent Relocate 645.941 / 645.941 602.340 / 645.941 1051.985 / 2198.100 1051.985 / 2198.100 ms Phase: Concurrent Reset Relocation Set 18.090 / 18.090 13.636 / 18.090 11.832 / 28.342 11.832 / 28.342 ms Phase: Concurrent Select Relocation Set 12.295 / 12.295 15.162 / 28.735 20.960 / 57.464 20.960 / 57.464 ms Phase: Pause Mark End 0.882 / 0.882 0.997 / 1.095 0.941 / 1.199 0.941 / 1.199 ms Phase: Pause Mark Start 0.949 / 0.949 0.875 / 0.983 0.832 / 1.013 0.832 / 1.013 ms Phase: Pause Relocate Start 1.419 / 1.419 1.532 / 2.091 1.474 / 2.127 1.474 / 2.127 ms ... 77
  78. 78. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | === Garbage Collection Statistics ======================================================================================================================= Last 10s Last 10m Last 10h Total Avg / Max Avg / Max Avg / Max Avg / Max Collector: Garbage Collection Cycle 1906.804 / 1906.804 1871.019 / 2184.368 2764.747 / 4655.377 2764.747 / 4655.377 ms Contention: Mark Segment Reset Contention 3 / 24 0 / 34 0 / 73 0 / 73 ops/s Contention: Mark SeqNum Reset Contention 0 / 0 0 / 0 0 / 2 0 / 2 ops/s Contention: Relocation Contention 27 / 275 9 / 1137 14 / 9460 14 / 9460 ops/s Critical: Allocation Stall 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 ms Critical: Allocation Stall 0 / 0 0 / 0 0 / 0 0 / 0 ops/s Critical: GC Locker Stall 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 ms Critical: GC Locker Stall 0 / 0 0 / 0 0 / 0 0 / 0 ops/s Memory: Allocation Rate 1458 / 1672 1089 / 1904 1679 / 7914 1679 / 7914 MB/s Memory: Heap Used After Mark 125102 / 125102 97411 / 125102 70566 / 125102 70566 / 125102 MB Memory: Heap Used After Relocation 4704 / 4704 4019 / 4814 17042 / 34092 17042 / 34092 MB Memory: Heap Used Before Mark 123346 / 123346 95981 / 123346 61669 / 123346 61669 / 123346 MB Memory: Heap Used Before Relocation 106982 / 106982 85095 / 106982 60136 / 106982 60136 / 106982 MB Memory: Out Of Memory 0 / 0 0 / 0 0 / 0 0 / 0 ops/s Memory: Page Cache Flush 0 / 0 0 / 0 0 / 0 0 / 0 MB/s Memory: Page Cache Hit L1 710 / 1037 499 / 1037 771 / 3777 771 / 3777 ops/s Memory: Page Cache Hit L2 12 / 77 3 / 179 5 / 517 5 / 517 ops/s Memory: Page Cache Miss 8 / 81 19 / 651 29 / 1932 29 / 1932 ops/s Memory: Undo Object Allocation Failed 1 / 12 0 / 18 0 / 64 0 / 64 ops/s Memory: Undo Object Allocation Succeeded 26 / 263 9 / 1137 13 / 9460 13 / 9460 ops/s Memory: Undo Page Allocation 3 / 30 5 / 249 9 / 1027 9 / 1027 ops/s Phase: Concurrent Destroy Detached Pages 0.002 / 0.002 0.001 / 0.002 0.041 / 2.230 0.041 / 2.230 ms Phase: Concurrent Mark 1151.425 / 1151.425 1163.417 / 1452.750 1584.987 / 3028.289 1584.987 / 3028.289 ms Phase: Concurrent Mark Continue 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 ms Phase: Concurrent Prepare Relocation Set 70.922 / 70.922 67.627 / 74.532 81.298 / 374.926 81.298 / 374.926 ms Phase: Concurrent Process Non-Strong References 0.367 / 0.367 0.391 / 0.463 0.394 / 0.774 0.394 / 0.774 ms Phase: Concurrent Relocate 645.941 / 645.941 602.340 / 645.941 1051.985 / 2198.100 1051.985 / 2198.100 ms Phase: Concurrent Reset Relocation Set 18.090 / 18.090 13.636 / 18.090 11.832 / 28.342 11.832 / 28.342 ms Phase: Concurrent Select Relocation Set 12.295 / 12.295 15.162 / 28.735 20.960 / 57.464 20.960 / 57.464 ms Phase: Pause Mark End 0.882 / 0.882 0.997 / 1.095 0.941 / 1.199 0.941 / 1.199 ms Phase: Pause Mark Start 0.949 / 0.949 0.875 / 0.983 0.832 / 1.013 0.832 / 1.013 ms Phase: Pause Relocate Start 1.419 / 1.419 1.532 / 2.091 1.474 / 2.127 1.474 / 2.127 ms ... Last 10s Last 10m Last 10h Total Avg / Max Avg / Max Avg / Max Avg / Max Allocation Rate 1458 / 1672 1089 / 1904 1679 / 7914 1679 / 7914 MB/s 78
  79. 79. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | === Garbage Collection Statistics ======================================================================================================================= Last 10s Last 10m Last 10h Total Avg / Max Avg / Max Avg / Max Avg / Max Collector: Garbage Collection Cycle 1906.804 / 1906.804 1871.019 / 2184.368 2764.747 / 4655.377 2764.747 / 4655.377 ms Contention: Mark Segment Reset Contention 3 / 24 0 / 34 0 / 73 0 / 73 ops/s Contention: Mark SeqNum Reset Contention 0 / 0 0 / 0 0 / 2 0 / 2 ops/s Contention: Relocation Contention 27 / 275 9 / 1137 14 / 9460 14 / 9460 ops/s Critical: Allocation Stall 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 ms Critical: Allocation Stall 0 / 0 0 / 0 0 / 0 0 / 0 ops/s Critical: GC Locker Stall 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 ms Critical: GC Locker Stall 0 / 0 0 / 0 0 / 0 0 / 0 ops/s Memory: Allocation Rate 1458 / 1672 1089 / 1904 1679 / 7914 1679 / 7914 MB/s Memory: Heap Used After Mark 125102 / 125102 97411 / 125102 70566 / 125102 70566 / 125102 MB Memory: Heap Used After Relocation 4704 / 4704 4019 / 4814 17042 / 34092 17042 / 34092 MB Memory: Heap Used Before Mark 123346 / 123346 95981 / 123346 61669 / 123346 61669 / 123346 MB Memory: Heap Used Before Relocation 106982 / 106982 85095 / 106982 60136 / 106982 60136 / 106982 MB Memory: Out Of Memory 0 / 0 0 / 0 0 / 0 0 / 0 ops/s Memory: Page Cache Flush 0 / 0 0 / 0 0 / 0 0 / 0 MB/s Memory: Page Cache Hit L1 710 / 1037 499 / 1037 771 / 3777 771 / 3777 ops/s Memory: Page Cache Hit L2 12 / 77 3 / 179 5 / 517 5 / 517 ops/s Memory: Page Cache Miss 8 / 81 19 / 651 29 / 1932 29 / 1932 ops/s Memory: Undo Object Allocation Failed 1 / 12 0 / 18 0 / 64 0 / 64 ops/s Memory: Undo Object Allocation Succeeded 26 / 263 9 / 1137 13 / 9460 13 / 9460 ops/s Memory: Undo Page Allocation 3 / 30 5 / 249 9 / 1027 9 / 1027 ops/s Phase: Concurrent Destroy Detached Pages 0.002 / 0.002 0.001 / 0.002 0.041 / 2.230 0.041 / 2.230 ms Phase: Concurrent Mark 1151.425 / 1151.425 1163.417 / 1452.750 1584.987 / 3028.289 1584.987 / 3028.289 ms Phase: Concurrent Mark Continue 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 0.000 / 0.000 ms Phase: Concurrent Prepare Relocation Set 70.922 / 70.922 67.627 / 74.532 81.298 / 374.926 81.298 / 374.926 ms Phase: Concurrent Process Non-Strong References 0.367 / 0.367 0.391 / 0.463 0.394 / 0.774 0.394 / 0.774 ms Phase: Concurrent Relocate 645.941 / 645.941 602.340 / 645.941 1051.985 / 2198.100 1051.985 / 2198.100 ms Phase: Concurrent Reset Relocation Set 18.090 / 18.090 13.636 / 18.090 11.832 / 28.342 11.832 / 28.342 ms Phase: Concurrent Select Relocation Set 12.295 / 12.295 15.162 / 28.735 20.960 / 57.464 20.960 / 57.464 ms Phase: Pause Mark End 0.882 / 0.882 0.997 / 1.095 0.941 / 1.199 0.941 / 1.199 ms Phase: Pause Mark Start 0.949 / 0.949 0.875 / 0.983 0.832 / 1.013 0.832 / 1.013 ms Phase: Pause Relocate Start 1.419 / 1.419 1.532 / 2.091 1.474 / 2.127 1.474 / 2.127 ms ... Last 10s Last 10m Last 10h Total Avg / Max Avg / Max Avg / Max Avg / Max Pause Mark End 0.882 / 0.882 0.997 / 1.095 0.941 / 1.199 0.941 / 1.199 ms Pause Mark Start 0.949 / 0.949 0.875 / 0.983 0.832 / 1.013 0.832 / 1.013 ms Pause Relocate Start 1.419 / 1.419 1.532 / 2.091 1.474 / 2.127 1.474 / 2.127 ms 79
  80. 80. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ロードマップ 80
  81. 81. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ロードマップ • 短期 – 正式サポート 81
  82. 82. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ロードマップ • 短期 – 正式サポート -XX:+UnlockExperimentalVMOptions 82
  83. 83. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ロードマップ • 短期 – 正式サポート • 長期 – 世代別 – 1ミリ秒以下の停止時間 – 他のプラットフォームのサポート – Graal JIT の対応 83
  84. 84. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ロードマップ • 短期 – 正式サポート • 長期 – 世代別 – 1ミリ秒以下の停止時間 – 他のプラットフォームのサポート – Graal JIT の対応 世代別 • より速いアロケーション速度 • ヒープオーバーヘッドを抑える • CPU 使用量を減らす 84
  85. 85. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ロードマップ • 短期 – 正式サポート • 長期 – 世代別 – 1ミリ秒以下の停止時間 – 他のプラットフォームのサポート – Graal JIT の対応 1ミリ秒以下の停止時間 • 出来るはず • ルート参照の数を減らす • Time-to-Safepoint、など 85
  86. 86. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ロードマップ • 短期 – 正式サポート • 長期 – 世代別 – 1ミリ秒以下の停止時間 – 他のプラットフォームのサポート – Graal JIT の対応 他のプラットフォーム • macOS? • Windows? • Aarch64? 86
  87. 87. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ロードマップ • 短期 – 正式サポート • 長期 – 世代別 – 1ミリ秒以下の停止時間 – 他のプラットフォームのサポート – Graal JIT の対応 87
  88. 88. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 是非参加してください! 88
  89. 89. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC プロジェクト zgc-dev@openjdk.java.net http://wiki.openjdk.java.net/display/zgc/Main Follow, Participate, Give Feedback 89
  90. 90. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ZGC Project http://hg.openjdk.java.net/jdk/jdk http://hg.openjdk.java.net/zgc/zgc ソースコード 90
  91. 91. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ありがとうございます! 91
  92. 92. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 質問? 92

×