General Page
The Java runtime supports a built-in memory manager that tracks an application’s usage of the Java heap. Garbage Collection (GC) is a process that is triggered when the heap becomes exhausted.
Overview
The Java runtime supports a built-in memory manager that tracks an application’s usage of the Java heap. Garbage Collection (GC) is a process that is triggered when the heap becomes exhausted. During the GC process, the application is stalled in “stop-the-world” phases, to allow GC to identify and reclaim memory from Java objects that are no longer referenced. Untuned, such “stop-the-world” GC phases can have a detrimental impact to your application’s throughput and response time.
Pause-less Garbage Collection (GC) is a new GC mode in the 64-bit IBM SDK for Java, aimed to reduce the impact of GC “stop-the-world” phases, and improve the throughput and consistency of response-times for Java applications. This technology leverages the new Guarded Storage Facility introduced in IBM z14 hardware, to allow more parallel execution of GC-related processing with application code. Pause-less Garbage Collection is particularly relevant for applications with strict response-time Service Level Agreements (SLAs) and/or large Java heaps.
How To Enable
Please see the Requirements section below for the prerequisite hardware and software levels to support Pause-less Garbage Collection. The Pause-less GC mode is not enabled by default. To enable the new Pause-less GC mode in your application, please introduce -Xgc:concurrentScavenge to the JVM options.
To verify that Pause-less GC is enabled correctly, collect a verbose GC diagnostic with:
java -verbose:gc –version
And confirm the following attribute is set to true:
<attribute name=”concurrentScavenger” value=”true” />
Requirements
- IBM Java 8.0.5.0 (Java 8 SR5) or newer (64-bit)
- IBM z14 or newer with the Guarded Storage Facility enabled
- z/OS 2.3 or z/OS 2.2 with APAR OA51643
- z/VM 6.4 or newer
Availability
The pause-less GC mode is currently only available on 64-bit IBM SDK for z/OS.
Linux kernel support has been up streamed and awaiting Linux distribution adoption.
Linux kernel support has been up streamed and awaiting Linux distribution adoption.
Learn more
For more information about Pause-less GC please visit the following:
- Blog: How Concurrent Scavenge using the Guarded Storage Facility Works
- Blog: Reducing Garbage Collection pause times with Concurrent Scavenge and the Guarded Storage Facility
- Article:Java With z14 Features Hardware Facilities for Secure, High-Performance Transaction Processing
-
Video: What is Guarded Storage? – Interview with Anthony Saporito, STSM, IBM Z hardware development
[{"Line of Business":{"code":"LOB61","label":"IBM Technology Lifecycle Services"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SGMV104","label":"IBM Support for Java (Oracle)"},"ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Version(s)"}]
Was this topic helpful?
Document Information
Modified date:
10 February 2022
UID
ibm16320797