-Xms -Xmx 配置一样,一般情况为最大内存的80%
-XX:NewSize 新生代初始大小 -XX:MaxNewSize 新生代最大大小 一般情况为整个堆1/3比较合适
-Xmn 新生代内存大小 一般配合-XX:SurvivorRatio使用, 和
-XX:NewRatio=n 设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
-XX:SurvivorRatio=n 年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5
1)新生代设置过小 GC次数非常频繁,增大系统消耗;二是导致大对象直接进入旧生代,占据了旧生代剩余空间,诱发Full GC 2)新生代设置过大 会导致旧生代过小(堆总量一定),从而诱发Full GC;二是新生代GC耗时大幅度增加
-XX:PermSize -XX:MaxPermSize=n 设置持久代大小(JDK1.8舍弃, 使用元空间)
-XX:MetaspaceSize -XX:MaxMetaspaceSize 设置元空间
垃圾收集器
https://blog.csdn.net/wfh6732/article/details/57422967?utm_source=itdadao&utm_medium=referral
-XX:MetaspaceSize=8m -XX:MaxMetaspaceSize=80m
1G内存 常用配置JDK1.8
并发收集器,以响应时间优先
JAVA_OPTS="-server -Xms768m -Xmx768m -Xmn125m -XX:SurvivorRatio=8 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -Xss128K -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:+UseFastAccessorMethods
-XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0"
并行收集器, 以吞吐量优先, 建议用此方式
JAVA_OPTS="-server -Xms768m -Xmx768m -Xmn125m -XX:SurvivorRatio=8 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -Xss128K
-XX:+DisableExplicitGC -XX:+UseParallelGC -XX:ParallelGCThreads=1 -XX:MaxGCPauseMillis=100 -XX:+UseParallelOldGC
-XX:+UseAdaptiveSizePolicy -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dump.log"
-XX:+DisableExplicitGC 禁用System.gc(), 如果应用中使用了java nio中的direct memory,那么使用-XX:+DisableExplicitGC一定要小心,存在潜在的内存泄露风险。
-XX:+UseParallelGC
-XX:MaxGCPauseMillis=100 设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。
-XX:ParallelGCThreads=1 配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。
可通过 cat /proc/cpuinfo| grep "processor"| wc -l 查看逻辑CPU个数,
-XX:+UseParallelOldGC 配置年老代垃圾收集方式为并行收集
-XX:+UseAdaptiveSizePolicy 设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低相应时间或者收集频率等,此值建议使 用并行收集器时,一直打开
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dump.log 设置dump文件
G1收集器
Windows 亲测, 本人本地用的是jdk1.7, 打开JConsole控制台
JDK1.7 1.4G 内存配置
JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xmn125m -XX:SurvivorRatio=8 -XX:PermSize=170m -XX:MaxPermSize=340m -Xss128K -XX:+DisableExplicitGC -XX:+UseParallelGC -XX:ParallelGCThreads=1 -XX:MaxGCPauseMillis=100 -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dump.log"
参考https://www.cnblogs.com/zhangfengshi/p/11343102.html
-server -Xms2G -Xmx2G -Xmn512m
-XX:SurvivorRatio=6 -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -Xss256K -XX:-XX:+DisableExplicitGC -XX:+UseParallelGC -XX:ParallelGCThreads=2 -XX:MaxGCPauseMillis=100 -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dump.log