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 0a5e6ce0f2a38a67e3a66bfe4182400313f8eb35..93eb8a0679216e4fca62c97c7a329b9898182cc7 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)