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

[Containers] Improve systemd slice memory limit support

XMLWordPrintable

    • b18
    • linux_redhat_8.0

        From http://mail.openjdk.java.net/pipermail/hotspot-dev/2019-January/036292.html:

        Current container awareness for OpenJDK seems to work for systemd
        slices too, on some systems. To be precise, this works for older
        Kernels e.g. 3.10. However, we've noticed that this breaks for newer
        Kernel versions[1] such as the one in F28, currently 4.19.14-200. If
        the container support would also look at hierarchical memory limits
        exposed via memory.stat in the cgroup file system, it would again
        work[2]. A proof of concept implementation is here:

        http://cr.openjdk.java.net/~sgehwolf/webrevs/container-systemd-slice-01/webrev/

        This enhancement wouldn't change any existing container memory limit
        detection as it only kicks in when all other look-ups determined that
        there is no limit in place. I've verified this by running Docker
        container tests. The idea is to look for hierarchical_memory_limit and
        hierarchical_memsw_limit lines in the memory.stat file of the cgroup
        tree.

        Would it be possible to consider such an enhancement upstream? If so,
        I'll file a bug and propose it for review.

        This issue has been originally raised here:
        https://bugzilla.redhat.com/show_bug.cgi?id=1509371

        [1] Java process gets killed by oom killer.
            See: http://cr.openjdk.java.net/~sgehwolf/webrevs/container-systemd-slice-01/before.txt
        [2] Java process throws OutOfMemoryError as expected.
            See: http://cr.openjdk.java.net/~sgehwolf/webrevs/container-systemd-slice-01/after.txt

              sgehwolf Severin Gehwolf
              sgehwolf Severin Gehwolf
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: