先看Linux内存大小(假设为2G)
cat /proc/meminfo |grep MemTotal
查看java初始配置
java -XX:+PrintFlagsInitial
Tomcat配置
export JAVA_OPTS="-server -Xms*M -Xmx*M ***"

-server  即tomcat以真实的production模式运行(更好的性能),  默认为-client模式

详细配置

#最大堆内存
-Xmx1400M
#初始堆内存       
-Xms1400M
#年轻代 内存
-Xmn200M
#持久代 内存,(JDK1.7 )
-XX:PermSize=100M -XX:MaxPermSize=100M
#元空间 内存(JDK1.8) https://www.cnblogs.com/dennyzhangdd/p/6770188.html
-XX:MetaspaceSize=100m
-XX:MaxMetaspaceSize=100m
#单个线程 的内存, 小项目128k一般较大项目256K够了
-Xss256K
#关闭System.gc()
-XX:+DisableExplicitGC
# Eden区与Survivor区的大小比值 设置为8,则Eden区:Survivor=8:2, 一个Survivor区占整个年轻代的1/10
#设置为1, 则Eden区:Survivor=1:2,(Survivor固定为2) 所以Eden区= Xmn200m/3=66.6M
-XX:SurvivorRatio=1
#设置并发收集器 -XX:+UseConcMarkSweepGC
#设置年轻代为并行收集
-XX:+UseParNewGC
#降低标记停顿
-XX:+CMSParallelRemarkEnabled
#在FULL GC的时候, 对年老代的压缩
-XX:+UseCMSCompactAtFullCollection
#多少次后进行内存压缩 由于并发收集器不对内存空间进行压缩,整理,所以运行一段时间以后会产生"碎片",使得运行效率降低.此值设置运行多少次GC以后对内存空间进行压缩,整理.
-XX:CMSFullGCsBeforeCompaction=0
-XX:+CMSClassUnloadingEnabled
#内存页的大小不可设置过大, 会影响Perm的大小
-XX:LargePageSizeInBytes=128M
#原始类型的快速优化
-XX:+UseFastAccessorMethods
#使用手动定义初始化定义开始CMS收集 禁止hostspot自行触发CMS GC
-XX:+UseCMSInitiatingOccupancyOnly
#(Xmx-Xmn)*(100-CMSInitiatingOccupancyFraction)/100>=Xmn 就不会出现promotion failed
-XX:CMSInitiatingOccupancyFraction=80
#每兆堆空闲空间中SoftReference的存活时间 一般为0 -XX:SoftRefLRUPolicyMSPerMB=0
#garbage collects before printing the histogram. -XX:+PrintClassHistogram
#GC 输出的形式
-XX:+PrintGCDetails
#GC 输出的形式 可与 -XX:+PrintGC -XX:+PrintGCDetails混合使用
-XX:+PrintGCTimeStamps
#打印GC前后的详细堆栈信息
-XX:+PrintHeapAtGC
#把相关日志信息记录到文件以便分析.
-Xloggc:log/gc.log

 

参考 配置收集器,

https://blog.csdn.net/wfh6732/article/details/57422967?utm_source=itdadao&utm_medium=referral

 

posted on 2018-03-27 14:49  1161588342  阅读(256)  评论(0编辑  收藏  举报