Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8205051

UseNUMA memory interleaving vs cpunodebind & localalloc

    Details

    • Type: Bug
    • Status: Open
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: 11
    • Fix Version/s: tbd
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
      gc

      Description

      UseNUMA does not check which cpu nodes are bound to the JVM processes before spreading the Java heap across regions for each node.

      If the JVM isn't allowed to run on all of the nodes (by numactl, cgroups, docker, etc), then a significant fraction of the Java heap will be unusable, causing early GC.

      This was seen on linux aarch64, using ParallelGC, but this doesn't look aarch64-specific. This is in JDK 9 /10 (probably always).

      For both linux and BSD, the numa_interleave_memory() function explicitly interleaves across "numa_all_nodes".

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                drwhite Derek White
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated: