JDK

JVM调优常用参数

2020-03-17  本文已影响0人  雪飘千里

1、调优的目的

2、GC 事件分类

根据垃圾收集回收的区域不同,垃圾收集主要分为:

3、常用参数总结

3.1 堆设置

-Xms:初始堆大小

-Xmx:最大堆大小

-Xmn:新生代大小
-Xss:线程堆栈大小,默认为1M

-XX:NewRatio=n:设置新生代和年老代的比值,默认为1:2。如为3,表示新生代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4

-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。默认为8:2
如:6,表示Eden:Survivor=6:4,一个Survivor区占整个年轻代的2/10

-XX:MaxPermSize=n:设置持久代大小

3.2 收集器设置

-XX:+UseParallelGC:设置并行收集器
-XX:+UseParalledlOldGC:设置并行年老代收集器

-XX:+UseG1GC:使用G1做为GC收集器
-XX:+UseConcMarkSweepGC:设置并发收集器CMS

3.3 垃圾回收统计信息

-XX:+PrintGC:输出形式:
[GC 118250K->113543K(130112K), 0.0094143 secs]
[Full GC 121376K->10414K(130112K), 0.0650971 secs]
-XX:+PrintGCDetails:输出形式:
[GC [DefNew: 8614K->781K(9088K), 0.0123035 secs] 118250K->113543K(130112K), 0.0124633 secs]
[GC [DefNew: 8614K->8614K(9088K), 0.0000665 secs][Tenured: 112761K->10414K(121024K), 0.0433488 secs] 121376K->10414K(130112K), 0.0436268 secs]

-XX:+PrintGCTimeStamps:打印GC停顿耗时
-XX:+PrintGCApplicationStoppedTime:打印垃圾回收期间程序暂停的时间.
-XX:+PrintHeapAtGC:打印GC前后的详细堆栈信息
-Xloggc:filename:把相关日志信息记录到文件以便分析.

3.4 并行收集器参数设置

-XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数。并行收集线程数。STW期间,并行GC线程数

-XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间

-XX:GCTimeRatio=n:设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)

3.5 并发收集器设置

-XX:+CMSIncrementalMode:设置为增量模式。适用于单CPU情况。

-XX:ParallelGCThreads=n:设置并发收集器年轻代收集方式为并行收集时,使用的CPU数。并行收集线程数

4、实例

A/B-Test jvm调试,默认情况下,系统压测800qps,优化后能达到1000

优化参数:
-XX:NewRatio=1:设置新生代和年老代的比值为2:1
-Xss:线程堆栈大小,默认为1M,调整为512K
-XX:+UseG1GC:使用G1做为GC收集器
-XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间为20ms

上一篇 下一篇

猜你喜欢

热点阅读