JBOSS heap memory issue. Application performance is getting degraded.
amala123 Oct 28, 2015 4:44 AMWe are facing the performance degrade of the application after 2 days of restart.
Previously we are using jre version 1.7.4 , there seems to be no performance issues with that.
After the upgrade to jre version 1.7.80 , there are lot of performance issues.
Previously the JBOSS parameters are
-server -XX:+UseCompressedOops -XX:+TieredCompilation -Xms1024m -Xmx1536m -XX:MaxPermSize=384m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.server.default.config=standalone.xml -Xss256k -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:-UseSplitVerifier -XX:+HeapDumpOnOutOfMemoryError -XX:ReservedCodeCacheSize=128m -Dorg.jboss.server.bootstrap.maxThreads=8
1) After the upgrade, the application seems to be slow after 2 days of restart,
We removed the JBOSS parameter "-XX:+TieredCompilation" and restarted the application.
2) After removing the Tiered Compilation also, the application becoming slow after one week of restart.
We have seen the Old Gen Space is becoming full and the Garbage Collector Threads are running continuously.
concurrent mark-sweep generation:
capacity = 1073741824 (1024.0MB)
used = 1073741824 (1024.0MB)
free = 0 (0.0MB)
100.0% used
We have added JBOSS tuning parameters "-XX:+UseCompressedOops","-XX:CMSInitiatingOccupancyFraction=70","-XX:+UseCMSInitiatingOccupancyOnly","-XX:NewRatio=3" and increased the heap size as "-Xms1536m -Xmx2048m"
Present the JBOSS Parameters are as follows.
-server -XX:+UseCompressedOops -Xms1536m -Xmx2048m -XX:MaxPermSize=384m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.server.default.config=standalone.xml -Xss256k -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+UseCompressedOops -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:NewRatio=3 -XX:-UseSplitVerifier
But also after the concurrent mark-sweep generation becoming 80% the Garbage Collector Threads are running continuously and the CPU Utilization for Java Process for the application is above 600-700 percentage all the time.
And concurrent mark-sweep generation is above 80% after two days of restart of application.
concurrent mark-sweep generation:
capacity = 1610612736 (1536.0MB)
used = 1348910168 (1286.4209823608398MB)
free = 261702568 (249.57901763916016MB)
83.75136603911717% used
Please post your suggestions..