< prev index next >

src/java.base/linux/classes/jdk/internal/platform/cgroupv1/CgroupV1Subsystem.java

Print this page
@  rev 57734 : Review feedback
|
o  rev 57733 : 8231111: Cgroups v2: Rework Metrics in java.base so as to recognize unified hierarchy
|  Reviewed-by: bobv, mchung
~
o  rev 56862 : 8231111: Cgroups v2: Rework Metrics in java.base so as to recognize unified hierarchy
|  Reviewed-by: bobv
~

*** 31,43 **** import java.util.stream.Stream; import jdk.internal.platform.CgroupSubsystem; import jdk.internal.platform.CgroupSubsystemController; import jdk.internal.platform.CgroupUtil; ! import jdk.internal.platform.Metrics; ! public class CgroupV1Subsystem implements CgroupSubsystem { private CgroupV1MemorySubSystemController memory; private CgroupV1SubsystemController cpu; private CgroupV1SubsystemController cpuacct; private CgroupV1SubsystemController cpuset; private CgroupV1SubsystemController blkio; --- 31,43 ---- import java.util.stream.Stream; import jdk.internal.platform.CgroupSubsystem; import jdk.internal.platform.CgroupSubsystemController; import jdk.internal.platform.CgroupUtil; ! import jdk.internal.platform.MetricsCgroupV1; ! public class CgroupV1Subsystem implements CgroupSubsystem, MetricsCgroupV1 { private CgroupV1MemorySubSystemController memory; private CgroupV1SubsystemController cpu; private CgroupV1SubsystemController cpuacct; private CgroupV1SubsystemController cpuset; private CgroupV1SubsystemController blkio;
*** 263,273 **** private static long getLongValue(CgroupSubsystemController controller, String parm) { return CgroupSubsystemController.getLongValue(controller, parm, ! CgroupV1SubsystemController::convertStringToLong); } public String getProvider() { return PROVIDER_NAME; } --- 263,274 ---- private static long getLongValue(CgroupSubsystemController controller, String parm) { return CgroupSubsystemController.getLongValue(controller, parm, ! CgroupV1SubsystemController::convertStringToLong, ! CgroupSubsystem.LONG_RETVAL_UNLIMITED); } public String getProvider() { return PROVIDER_NAME; }
*** 294,308 **** } return percpu; } public long getCpuUserUsage() { ! return CgroupSubsystemController.getLongEntry(cpuacct, "cpuacct.stat", "user"); } public long getCpuSystemUsage() { ! return CgroupSubsystemController.getLongEntry(cpuacct, "cpuacct.stat", "system"); } /***************************************************************** * CPU Subsystem --- 295,309 ---- } return percpu; } public long getCpuUserUsage() { ! return CgroupV1SubsystemController.getLongEntry(cpuacct, "cpuacct.stat", "user"); } public long getCpuSystemUsage() { ! return CgroupV1SubsystemController.getLongEntry(cpuacct, "cpuacct.stat", "system"); } /***************************************************************** * CPU Subsystem
*** 318,342 **** } public long getCpuShares() { long retval = getLongValue(cpu, "cpu.shares"); if (retval == 0 || retval == 1024) ! return Metrics.LONG_RETVAL_UNLIMITED; else return retval; } public long getCpuNumPeriods() { ! return CgroupSubsystemController.getLongEntry(cpu, "cpu.stat", "nr_periods"); } public long getCpuNumThrottled() { ! return CgroupSubsystemController.getLongEntry(cpu, "cpu.stat", "nr_throttled"); } public long getCpuThrottledTime() { ! return CgroupSubsystemController.getLongEntry(cpu, "cpu.stat", "throttled_time"); } public long getEffectiveCpuCount() { return Runtime.getRuntime().availableProcessors(); } --- 319,343 ---- } public long getCpuShares() { long retval = getLongValue(cpu, "cpu.shares"); if (retval == 0 || retval == 1024) ! return CgroupSubsystem.LONG_RETVAL_UNLIMITED; else return retval; } public long getCpuNumPeriods() { ! return CgroupV1SubsystemController.getLongEntry(cpu, "cpu.stat", "nr_periods"); } public long getCpuNumThrottled() { ! return CgroupV1SubsystemController.getLongEntry(cpu, "cpu.stat", "nr_throttled"); } public long getCpuThrottledTime() { ! return CgroupV1SubsystemController.getLongEntry(cpu, "cpu.stat", "throttled_time"); } public long getEffectiveCpuCount() { return Runtime.getRuntime().availableProcessors(); }
*** 361,371 **** public int[] getEffectiveCpuSetMems() { return CgroupSubsystemController.stringRangeToIntArray(CgroupSubsystemController.getStringValue(cpuset, "cpuset.effective_mems")); } public double getCpuSetMemoryPressure() { ! return CgroupSubsystemController.getDoubleValue(cpuset, "cpuset.memory_pressure"); } public Boolean isCpuSetMemoryPressureEnabled() { long val = getLongValue(cpuset, "cpuset.memory_pressure_enabled"); return (val == 1); --- 362,372 ---- public int[] getEffectiveCpuSetMems() { return CgroupSubsystemController.stringRangeToIntArray(CgroupSubsystemController.getStringValue(cpuset, "cpuset.effective_mems")); } public double getCpuSetMemoryPressure() { ! return CgroupV1SubsystemController.getDoubleValue(cpuset, "cpuset.memory_pressure"); } public Boolean isCpuSetMemoryPressureEnabled() { long val = getLongValue(cpuset, "cpuset.memory_pressure_enabled"); return (val == 1);
*** 386,413 **** if (retval > CgroupV1SubsystemController.UNLIMITED_MIN) { if (memory.isHierarchical()) { // memory.limit_in_bytes returned unlimited, attempt // hierarchical memory limit String match = "hierarchical_memory_limit"; ! retval = CgroupSubsystemController.getLongValueMatchingLine(memory, "memory.stat", ! match, ! CgroupV1Subsystem::convertHierachicalLimitLine); } } return CgroupV1SubsystemController.longValOrUnlimited(retval); } - public static long convertHierachicalLimitLine(String line) { - String[] tokens = line.split("\\s"); - if (tokens.length == 2) { - String strVal = tokens[1]; - return CgroupV1SubsystemController.convertStringToLong(strVal); - } - return CgroupV1SubsystemController.UNLIMITED_MIN + 1; // unlimited - } - public long getMemoryMaxUsage() { return getLongValue(memory, "memory.max_usage_in_bytes"); } public long getMemoryUsage() { --- 387,404 ---- if (retval > CgroupV1SubsystemController.UNLIMITED_MIN) { if (memory.isHierarchical()) { // memory.limit_in_bytes returned unlimited, attempt // hierarchical memory limit String match = "hierarchical_memory_limit"; ! retval = CgroupV1SubsystemController.getLongValueMatchingLine(memory, "memory.stat", ! match); } } return CgroupV1SubsystemController.longValOrUnlimited(retval); } public long getMemoryMaxUsage() { return getLongValue(memory, "memory.max_usage_in_bytes"); } public long getMemoryUsage() {
*** 455,468 **** if (retval > CgroupV1SubsystemController.UNLIMITED_MIN) { if (memory.isHierarchical()) { // memory.memsw.limit_in_bytes returned unlimited, attempt // hierarchical memory limit String match = "hierarchical_memsw_limit"; ! retval = CgroupSubsystemController.getLongValueMatchingLine(memory, "memory.stat", ! match, ! CgroupV1Subsystem::convertHierachicalLimitLine); } } return CgroupV1SubsystemController.longValOrUnlimited(retval); } --- 446,458 ---- if (retval > CgroupV1SubsystemController.UNLIMITED_MIN) { if (memory.isHierarchical()) { // memory.memsw.limit_in_bytes returned unlimited, attempt // hierarchical memory limit String match = "hierarchical_memsw_limit"; ! retval = CgroupV1SubsystemController.getLongValueMatchingLine(memory, "memory.stat", ! match); } } return CgroupV1SubsystemController.longValOrUnlimited(retval); }
*** 473,483 **** public long getMemoryAndSwapUsage() { return getLongValue(memory, "memory.memsw.usage_in_bytes"); } public Boolean isMemoryOOMKillEnabled() { ! long val = CgroupSubsystemController.getLongEntry(memory, "memory.oom_control", "oom_kill_disable"); return (val == 0); } public long getMemorySoftLimit() { return CgroupV1SubsystemController.longValOrUnlimited(getLongValue(memory, "memory.soft_limit_in_bytes")); --- 463,473 ---- public long getMemoryAndSwapUsage() { return getLongValue(memory, "memory.memsw.usage_in_bytes"); } public Boolean isMemoryOOMKillEnabled() { ! long val = CgroupV1SubsystemController.getLongEntry(memory, "memory.oom_control", "oom_kill_disable"); return (val == 0); } public long getMemorySoftLimit() { return CgroupV1SubsystemController.longValOrUnlimited(getLongValue(memory, "memory.soft_limit_in_bytes"));
*** 488,500 **** * BlKIO Subsystem ****************************************************************/ public long getBlkIOServiceCount() { ! return CgroupSubsystemController.getLongEntry(blkio, "blkio.throttle.io_service_bytes", "Total"); } public long getBlkIOServiced() { ! return CgroupSubsystemController.getLongEntry(blkio, "blkio.throttle.io_serviced", "Total"); } } --- 478,490 ---- * BlKIO Subsystem ****************************************************************/ public long getBlkIOServiceCount() { ! return CgroupV1SubsystemController.getLongEntry(blkio, "blkio.throttle.io_service_bytes", "Total"); } public long getBlkIOServiced() { ! return CgroupV1SubsystemController.getLongEntry(blkio, "blkio.throttle.io_serviced", "Total"); } }
< prev index next >