8313083: Print 'rss' and 'cache' as part of the container information
Reviewed-by: sgehwolf
This commit is contained in:
parent
a7db4feceb
commit
c96cbe481c
src/hotspot/os/linux
cgroupSubsystem_linux.hppcgroupV1Subsystem_linux.cppcgroupV1Subsystem_linux.hppcgroupV2Subsystem_linux.cppcgroupV2Subsystem_linux.hpposContainer_linux.cpposContainer_linux.hppos_linux.cpp
test/hotspot/jtreg/containers/docker
@ -266,6 +266,8 @@ class CgroupSubsystem: public CHeapObj<mtInternal> {
|
||||
virtual jlong memory_and_swap_limit_in_bytes() = 0;
|
||||
virtual jlong memory_soft_limit_in_bytes() = 0;
|
||||
virtual jlong memory_max_usage_in_bytes() = 0;
|
||||
virtual jlong rss_usage_in_bytes() = 0;
|
||||
virtual jlong cache_usage_in_bytes() = 0;
|
||||
|
||||
virtual char * cpu_cpuset_cpus() = 0;
|
||||
virtual char * cpu_cpuset_memory_nodes() = 0;
|
||||
|
@ -214,6 +214,17 @@ jlong CgroupV1Subsystem::memory_max_usage_in_bytes() {
|
||||
return memmaxusage;
|
||||
}
|
||||
|
||||
jlong CgroupV1Subsystem::rss_usage_in_bytes() {
|
||||
GET_CONTAINER_INFO_LINE(julong, _memory->controller(), "/memory.stat",
|
||||
"rss", JULONG_FORMAT, JULONG_FORMAT, rss);
|
||||
return rss;
|
||||
}
|
||||
|
||||
jlong CgroupV1Subsystem::cache_usage_in_bytes() {
|
||||
GET_CONTAINER_INFO_LINE(julong, _memory->controller(), "/memory.stat",
|
||||
"cache", JULONG_FORMAT, JULONG_FORMAT, cache);
|
||||
return cache;
|
||||
}
|
||||
|
||||
jlong CgroupV1Subsystem::kernel_memory_usage_in_bytes() {
|
||||
GET_CONTAINER_INFO(jlong, _memory->controller(), "/memory.kmem.usage_in_bytes",
|
||||
|
@ -79,6 +79,8 @@ class CgroupV1Subsystem: public CgroupSubsystem {
|
||||
jlong memory_soft_limit_in_bytes();
|
||||
jlong memory_usage_in_bytes();
|
||||
jlong memory_max_usage_in_bytes();
|
||||
jlong rss_usage_in_bytes();
|
||||
jlong cache_usage_in_bytes();
|
||||
|
||||
jlong kernel_memory_usage_in_bytes();
|
||||
jlong kernel_memory_limit_in_bytes();
|
||||
|
@ -139,6 +139,18 @@ jlong CgroupV2Subsystem::memory_max_usage_in_bytes() {
|
||||
return OSCONTAINER_ERROR; // not supported
|
||||
}
|
||||
|
||||
jlong CgroupV2Subsystem::rss_usage_in_bytes() {
|
||||
GET_CONTAINER_INFO_LINE(julong, _memory->controller(), "/memory.stat",
|
||||
"anon", JULONG_FORMAT, JULONG_FORMAT, rss);
|
||||
return rss;
|
||||
}
|
||||
|
||||
jlong CgroupV2Subsystem::cache_usage_in_bytes() {
|
||||
GET_CONTAINER_INFO_LINE(julong, _memory->controller(), "/memory.stat",
|
||||
"file", JULONG_FORMAT, JULONG_FORMAT, cache);
|
||||
return cache;
|
||||
}
|
||||
|
||||
char* CgroupV2Subsystem::mem_soft_limit_val() {
|
||||
GET_CONTAINER_INFO_CPTR(cptr, _unified, "/memory.low",
|
||||
"Memory Soft Limit is: %s", "%1023s", mem_soft_limit_str, 1024);
|
||||
|
@ -78,6 +78,8 @@ class CgroupV2Subsystem: public CgroupSubsystem {
|
||||
jlong memory_soft_limit_in_bytes();
|
||||
jlong memory_usage_in_bytes();
|
||||
jlong memory_max_usage_in_bytes();
|
||||
jlong rss_usage_in_bytes();
|
||||
jlong cache_usage_in_bytes();
|
||||
|
||||
char * cpu_cpuset_cpus();
|
||||
char * cpu_cpuset_memory_nodes();
|
||||
|
@ -92,6 +92,16 @@ jlong OSContainer::memory_max_usage_in_bytes() {
|
||||
return cgroup_subsystem->memory_max_usage_in_bytes();
|
||||
}
|
||||
|
||||
jlong OSContainer::rss_usage_in_bytes() {
|
||||
assert(cgroup_subsystem != nullptr, "cgroup subsystem not available");
|
||||
return cgroup_subsystem->rss_usage_in_bytes();
|
||||
}
|
||||
|
||||
jlong OSContainer::cache_usage_in_bytes() {
|
||||
assert(cgroup_subsystem != nullptr, "cgroup subsystem not available");
|
||||
return cgroup_subsystem->cache_usage_in_bytes();
|
||||
}
|
||||
|
||||
void OSContainer::print_version_specific_info(outputStream* st) {
|
||||
assert(cgroup_subsystem != nullptr, "cgroup subsystem not available");
|
||||
cgroup_subsystem->print_version_specific_info(st);
|
||||
|
@ -55,6 +55,8 @@ class OSContainer: AllStatic {
|
||||
static jlong memory_soft_limit_in_bytes();
|
||||
static jlong memory_usage_in_bytes();
|
||||
static jlong memory_max_usage_in_bytes();
|
||||
static jlong rss_usage_in_bytes();
|
||||
static jlong cache_usage_in_bytes();
|
||||
|
||||
static int active_processor_count();
|
||||
|
||||
|
@ -2398,6 +2398,8 @@ bool os::Linux::print_container_info(outputStream* st) {
|
||||
OSContainer::print_container_helper(st, OSContainer::memory_soft_limit_in_bytes(), "memory_soft_limit_in_bytes");
|
||||
OSContainer::print_container_helper(st, OSContainer::memory_usage_in_bytes(), "memory_usage_in_bytes");
|
||||
OSContainer::print_container_helper(st, OSContainer::memory_max_usage_in_bytes(), "memory_max_usage_in_bytes");
|
||||
OSContainer::print_container_helper(st, OSContainer::rss_usage_in_bytes(), "rss_usage_in_bytes");
|
||||
OSContainer::print_container_helper(st, OSContainer::cache_usage_in_bytes(), "cache_usage_in_bytes");
|
||||
|
||||
OSContainer::print_version_specific_info(st);
|
||||
|
||||
|
@ -117,7 +117,9 @@ public class TestMisc {
|
||||
"Maximum Memory Usage",
|
||||
"memory_max_usage_in_bytes",
|
||||
"maximum number of tasks",
|
||||
"current number of tasks"
|
||||
"current number of tasks",
|
||||
"rss_usage_in_bytes",
|
||||
"cache_usage_in_bytes"
|
||||
};
|
||||
|
||||
for (String s : expectedToContain) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user