配置文件在tomcat/bin目录下catalina.sh中
JAVA_OPTS="-server -Xms595M -Xmx595M -Xmn223M -XX:SurvivorRatio=10 -Xss1M -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+UseCMSCompactAtFullCollection -XX:+ExplicitGCInvokesConcurrent -Djava.rmi.server.hostname=192.168.128.138 -Dcom.sun.management.jmxremote.port=1234 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
堆内存参数设置:
-
-server 服务器模式,性能会比较好,必须放到第一个参数
-
-Xms -Xmx 设置堆内存大小,-Xms代表最小,-Xmx代表最大;两个值设置为一样的大小,如果设置不一样,启动时会自动分配大小,造成性能浪费。一般设置为可用内存的80%
-
-Xmn 年轻代大小,年轻代一般设置为整个堆的八分之三
-
除去年轻代大小,剩余的年老代的大小
-
-XX:NewRadtio 如果设置时未使用-Xmn参数,可用此参数对年老代和年轻代根据比率设置(设置为2表示,年轻代占1/3,年老代占2/3)
-
-XX:SurvivorRadio 设置Eden与S区比率,一般设置成8~10之间的数字(如果设置为4,那么Eden:S0+S1=4:2)
非堆参数(持久代参数)设置:
-
一般情况下不用设置,用默认值就够了。但假设系统存在大量导入导出时,需要调大,否则有可能出现内存溢出。
-
-XX:PermSize 非堆内存初始值,默认为内存的1/64
-
-XX:MaxPermSize 非堆内存最大值,默认为内存的1/4
-
-XX:+UseConcMarkSweepGC:增强型参数,移除长久未使用的class
-
-XX:+CMSClassUnloadingEnabled:同-XX:+UseConcMarkSweepGC ,增强型参数,移除长久未使用的class
栈:
-
-Xss 线程栈大小,默认值1M,一般不用改。如果要改,建议不要超过2M.