about MaxPermSize of jvm option.

book

Article ID: 111486

calendar_today

Updated On:

Products

STARTER PACK-7 CA Rapid App Security CA API Gateway

Issue/Introduction



API Gateway 9.2 (Appliance).
The current java version is "1.8.0_102".

"- XX: MaxPermSize = 256 M" is set as the Java startup option.
Howerver, the corresponding memory area was changed from JDK 8 to metaspace.
So, it seems this option is not enable.

Is the Java option("- XX: MaxPermSize = 256 M") correct?
If it is incorrect how should it be changed?

Environment

API Gateway 9.2
API Gateway 9.3

Resolution

In JDK 8.0 the Permanent Generation (PermGen) space has completely been removed and is kind of replaced by a new space called Metaspace.
The consequences of the PermGen removal is that obviously the PermSize and MaxPermSize JVM arguments are ignored and you will never get a java.lang.OutOfMemoryError: PermGen error.
The JDK 8 HotSpot JVM is now using native memory for the representation of class metadata and is called Metaspace.
So no need to use Java option("- XX: MaxPermSize = 256 M") for above JDK 8.0 versions

Alos, as of now there isn't a need to set a Metaspace size. 
Considering the major reason that Java made this change was to allow the JVM to dynamically adjust its size during runtime. 

for more info on metaspace https://dzone.com/articles/java-8-permgen-metaspace