JDK-8069085 : PLAB sizing during young gc impacts mixed gc negatively
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2015-01-15
  • Updated: 2022-07-25
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Relates :  
Relates :  
Description
The amount of data copied to the GCs of different type differs a lot. Hence particularly old gen PLAB sizing is very badly affected by previous sizing during young only GCs.

E.g. since young only gcs typically do not copy a lot to old gen, the old gen PLAB size will be shrunk continuously.

In a well tuned system, the number of young only gcs is typically much higher than mixed gcs, so at the beginning of mixed gc the old gen PLAB is very small, affecting performance.

This is particularly of concern, because allocation in the old gen requires taking a lock, which may be contended a lot. (There is one of these locks per region, but since currently we allocate into another region only if the current one is full, this does not help a lot).

Conversely, after mixed gc the old gen PLAB is too large for the young only gc (which just wastes memory).

The young gen PLAB sizing may be similarly mismatched as the young gen during mixed gc is much smaller than usual, meaning that often more allocation happens (because the objects have less time to die).

Investigate this issue and propose fixes.


Comments
JDK-8288966 should probably mitigate this issue well.
21-07-2022