RFR: 8264482: container info misleads on non-container environment
Yasumasa Suenaga
ysuenaga at openjdk.java.net
Wed Mar 31 09:51:34 UTC 2021
hs_err log and `VM.info` dcmd shows cgroup information as container information even though the process run on non-container environment as following.
container (cgroup) information:
container_type: cgroupv2
cpu_cpuset_cpus: not supported
cpu_memory_nodes: not supported
active_processor_count: 4
cpu_quota: not supported
cpu_period: not supported
cpu_shares: not supported
memory_limit_in_bytes: unlimited
memory_and_swap_limit_in_bytes: unlimited
memory_soft_limit_in_bytes: unlimited
memory_usage_in_bytes: 164163584
memory_max_usage_in_bytes: not supported
We can use cgroup outside of container, so it is useful to show. However cgroup is different from container. We should distinguish them.
And also it is useful if we can see container runtime in this section. So I added it. We can see following contents in this section after this change.
cgroup information:
cgroup_type: cgroupv2
container runtime: podman
cpu_cpuset_cpus: not supported
cpu_memory_nodes: not supported
active_processor_count: 4
cpu_quota: not supported
cpu_period: not supported
cpu_shares: not supported
memory_limit_in_bytes: unlimited
memory_and_swap_limit_in_bytes: unlimited
memory_soft_limit_in_bytes: unlimited
memory_usage_in_bytes: 256176128
memory_max_usage_in_bytes: not supported
In case of systemd, it checks PID (PID 1 or not) and `$container` in PID 1. We should check them to know the JVM runs on the container or not.
https://github.com/systemd/systemd/blob/68337e55f62cf49b7bdfb73dc5662e23b0ea17fa/src/basic/virt.c#L619
-------------
Commit messages:
- 8264482: container info misleads on non-container environment
Changes: https://git.openjdk.java.net/jdk/pull/3280/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3280&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8264482
Stats: 44 lines in 3 files changed: 34 ins; 0 del; 10 mod
Patch: https://git.openjdk.java.net/jdk/pull/3280.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/3280/head:pull/3280
PR: https://git.openjdk.java.net/jdk/pull/3280
More information about the hotspot-runtime-dev
mailing list