How to increase PermSize/MaxPermSize in JBoss?
Quick definition of PermSize:
The permanent generation is used to hold reflective data of the VM itself such as class objects and method objects. These reflective objects are allocated directly into the permanent generation, and it is sized independently from the other generations
If you are working around big Enterprise Application, you may face memory issues in Jboss. In order to solve this you need to increase JVM PermSize for Jboss. Lets see the steps to increase Jboss PermSize.
Note: I tested this settings under jboss-as-7.1.1.Final
For Windows:
Step 1: Goto bin folder of Jboss
Step 2: Open standalone.conf.bat file in notepad or other editor.
Step 3: Find set "JAVA_OPTS=-Xms64M -Xmx512M -XX:MaxPermSize=256M" and change the MaxPermSize as per your requirement and save it.
Step 4: Restart the Jboss.
For Linux:
Step 1: Goto bin folder of Jboss either terminal or places.
Step 2: Open standalone.conf file in gedit(Ubuntu) or in terminal.
Step 3: Find JAVA_OPTS="-Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000" and change the MaxPermSize as per your requirement and save it.
Step 4: Restart the Jboss.
Jboss console log :
Caused by: java.lang.OutOfMemoryError: PermGen space at sun.misc.Unsafe.defineClass(Native Method) [rt.jar:1.6.0_24] at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:45) [rt.jar:1.6.0_24] at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:381) [rt.jar:1.6.0_24] at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.6.0_24] at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:377) [rt.jar:1.6.0_24] at sun.reflect.MethodAccessorGenerator.generateMethod(MethodAccessorGenerator.java:59) [rt.jar:1.6.0_24] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:28) [rt.jar:1.6.0_24] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_24] at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_24] at net.sf.beanlib.provider.BeanPopulator.invokeMethodAsPrivileged(BeanPopulator.java:221) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.BeanPopulator.doit(BeanPopulator.java:194) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.BeanPopulator.processSetterMethod(BeanPopulator.java:172) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.BeanPopulator.populate(BeanPopulator.java:270) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.replicator.ReplicatorTemplate.populateBean(ReplicatorTemplate.java:174) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.replicator.BeanReplicator.replicateBean(BeanReplicator.java:173) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.hibernate3.Hibernate3JavaBeanReplicator.replicateBean(Hibernate3JavaBeanReplicator.java:71) [beanlib-hibernate-5.0.1beta.jar:] at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicateByBeanReplicatable(ReplicatorTemplate.java:125) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicate(ReplicatorTemplate.java:120) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.BeanTransformer.transform(BeanTransformer.java:224) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.BeanPopulator.doit(BeanPopulator.java:201) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.BeanPopulator.processSetterMethod(BeanPopulator.java:172) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.BeanPopulator.populate(BeanPopulator.java:270) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.replicator.ReplicatorTemplate.populateBean(ReplicatorTemplate.java:174) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.replicator.BeanReplicator.replicateBean(BeanReplicator.java:173) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.hibernate3.Hibernate3JavaBeanReplicator.replicateBean(Hibernate3JavaBeanReplicator.java:71) [beanlib-hibernate-5.0.1beta.jar:] at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicateByBeanReplicatable(ReplicatorTemplate.java:125) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.replicator.ReplicatorTemplate.replicate(ReplicatorTemplate.java:120) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.provider.BeanTransformer.transform(BeanTransformer.java:224) [beanlib-5.0.1beta.jar:] at net.sf.beanlib.hibernate.HibernateBeanReplicator.copy(HibernateBeanReplicator.java:133) [beanlib-hibernate-5.0.1beta.jar:] at net.sf.beanlib.hibernate.HibernateBeanReplicator.copy(HibernateBeanReplicator.java:111) [beanlib-hibernate-5.0.1beta.jar:]
0 comments :