From baf940b9105b04bc6d14144d3689614223dff3f3 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 11 Nov 2015 09:41:43 +0000 Subject: [PATCH] SSDM-2600: log MaxPermSize setting in JMXMemoryMonitor SVN: 35034 --- .../common/monitoring/JMXMemoryMonitor.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/common/source/java/ch/systemsx/cisd/common/monitoring/JMXMemoryMonitor.java b/common/source/java/ch/systemsx/cisd/common/monitoring/JMXMemoryMonitor.java index 0a5e6ce0f2a..93eb8a06792 100644 --- a/common/source/java/ch/systemsx/cisd/common/monitoring/JMXMemoryMonitor.java +++ b/common/source/java/ch/systemsx/cisd/common/monitoring/JMXMemoryMonitor.java @@ -19,11 +19,14 @@ package ch.systemsx.cisd.common.monitoring; import java.lang.management.ManagementFactory; import java.lang.management.MemoryMXBean; import java.lang.management.MemoryUsage; +import java.lang.management.RuntimeMXBean; +import java.util.List; import java.util.Timer; import java.util.TimerTask; import org.apache.log4j.Logger; +import ch.systemsx.cisd.common.filesystem.FileUtilities; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; @@ -76,7 +79,22 @@ public class JMXMemoryMonitor { this.logIntervalMillis = logIntervallMillis; this.memoryHighwaterMarkPercent = memoryHighWatermarkPercent; - machineLog.info("Maximum heap size: " + Runtime.getRuntime().maxMemory()); + machineLog.info("Maximum heap size: " + FileUtilities.byteCountToDisplaySize(Runtime.getRuntime().maxMemory())); + logMaxPermSize(); + } + + private void logMaxPermSize() + { + RuntimeMXBean memMXBean = ManagementFactory.getRuntimeMXBean(); + String prefix = "-XX:MaxPermSize="; + List<String> jvmArgs = memMXBean.getInputArguments(); + for (final String jvmArg : jvmArgs) + { + if (jvmArg.startsWith(prefix)) + { + machineLog.info("MaxPermSize: " + jvmArg.substring(prefix.length())); + } + } } private int percentageUsed(MemoryUsage usage) -- GitLab