前言
JVM 调优,归根结底,调试的参数值。首先要知道这些参数干嘛用的,才知道怎么设置,怎么去调
参数 | 作用 | 描述 |
---|---|---|
-Xms/–Xmx | 堆大小设置 | Xms堆最小值,Xmx 最大值 |
-Xss | 线程栈大小设置 | 默认 512k~1024k |
-Xmn | 设置年轻代的大小,一般不用动 | |
-XX:MetaspsaceSize | 设置元空间的大小 | jdk8使用本地内存 |
-XX:+PrintGCDetails | GC打印配置 | 默认关闭 |
-XX:SurvivorRatio | 年轻代S0/S1配置比例 | 默认(uintx SurvivorRatio = 8) Eden:S0:S1=8:1:1 |
-XX:+HeapDumpOnOutOfMemoryError | 发生OOM时生成dump文件 | 默认关闭,生产建议开启 |
-XX:HeapDumpOnCtrlBreak | ctrl+break时生成dump文件 | 默认关闭 |
-XX:+UseConcMarkSweepGC | CMS垃圾收集 | |
-XX:+UseParNewGC | 并行垃圾收集 | |
-XX:+ParallelGCThreads | 并行垃圾收集线程数 | |
-XX:+MaxGCPauseMillis | Parakke Scavenge 垃圾收最大停顿时间,设置时间大于0毫秒 | |
-XX:+GCTimeRatio | Parakke Scavenge 垃圾收集吞吐量大小(0~100) | (CPU)运行代码时间/(运行代码时间+垃圾收集时间) |
-Xmn | 新生代大小 | |
-XX:+PretenureSizeThreshold | 对象进入老年代大小 | |
-XX:NewRatio | 年轻代与老年代的占比 | 默认新生代整个堆的 1/3,配置:NewRatio=2 新生代1,老年代是2 |
-XX:+CMSInitiatingOccupancyFriaction | CMS和用户程序同时运行,CMS启动时预留给用户线程的内存空间 | 设置较大时CMS运行时空间不足,会出现"Concurrent Mode Failure",临时启动备用Serial Old 清理,导致STW,停顿时间过长 |
-XX:+UseCMSCompactAtFullCollection | 默认开启,老年代内存不足时CMS 开始内存碎片整理。合并。导致线程停顿 | |
-XX:+CMSFullGCsBefoCompaction | 几次不带压缩的FGC后,执行一次带压缩FGC | 默认0,每次FGC时压缩碎片 |
未完待续