JVM内存分配与垃圾回收机制管理
项目上线,性能优化有个重要组成就是jvm内存分配和垃圾回收机制的管理配置。
网上随便能搜到相关的具体步骤,以及内存中各种参数对应的意义,不再赘述。
干货就是直接抛出遇到的问题,以及如何解决的,再说说待探索的地方:
Linux【我用的centos6.7】下设置很顺利,直接通过vi修改服务器tomcat的bin/catalina.sh文件,在文件注释结束的第一行增加如下设置:
JAVA_OPTS=’-Xmx4000M
-Xms4000M
-Xmn600M
-XX:PermSize=500M
-XX:MaxPermSize=500M
-Xss256K
-XX:+DisableExplicitGC
-XX:SurvivorRatio=1
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-XX:+CMSParallelRemarkEnabled
-XX:+UseCMSCompactAtFullCollection
-XX:CMSFullGCsBeforeCompaction=0
-XX:+CMSClassUnloadingEnabled
-XX:LargePageSizeInBytes=128M
-XX:+UseFastAccessorMethods
-XX:+UseCMSInitiatingOccupancyOnly’
重启tomcat服务即可生效,具体可在监控页面查看。
Windows环境中出现了问题,根据很多分享的文章,修改“%TOMCAT_HOME%\bin\catalina.bat”文件,有的说是在文件开头增加如下设置:
set JAVA_OPTS=-Xms256m -Xmx512m 有的说是在echo Using CATALINA_HOME: "%CATALINA_HOME%"的下一行或下一行,有的说是echo Using CATALINA_BASE: "%CATALINA_BASE%"的下一行或上一行,但真的配置后重启,要么是启动闪退,要么是启动后的参数没有生效。
解决:
在“%TOMCAT_HOME%\bin\catalina.bat”文件文件中的“rem Guess CATALINA_HOME if not defined”注释行下面,直接添加set JAVA_OPTS=-Xms256m -Xmx512m······之类参数。
重启tomcat,通过监控页面查看,生效!
待解决的问题:添加-Xmn2048m参数,会导致启动闪退,去掉后可以成功,至今还没找到原因,可能跟Windows中其他设置冲突,所以我们当前的生产环境全部为centos。
如果有朋友知道如何解决,希望能留言告知一下。也希望总结的这个问题能帮助到一些朋友。