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