赞
踩
对于 java 应用我们可以通过一些配置把程序运行过程中的 gc 日志全部打印出来,然后分析 gc 日志得到关键性指标,分析 GC 原因,调优 JVM 参数:
java -jar
‐Xloggc:./gc‐%t.log
‐XX:+PrintGCDetails
‐XX:+PrintGCDateStamps
‐XX:+PrintGCTimeStamps
‐XX:+PrintGCCause
‐XX:+UseGCLogFileRotation
‐XX:NumberOfGCLogFiles=10
‐XX:GCLogFileSize=100M
main.jar
我们可以看到图中第一行红框,是项目的配置参数。这里不仅配置了打印 GC 日志,还有相关的 VM 内存参数。
第二行红框中的是在这个 GC 时间点发生 GC 之后相关 GC 情况。
从日志可以发现几次fullgc都是由于元空间不够导致的,所以我们可以将元空间调大点:
‐XX:MetaspaceSize=256M ‐XX:MaxMetaspaceSize=256M
GC 日志太多,人工无法很好的分析出原因,可以利用一些工具:
其实GC日志就是 jvm 执行期间那些 C++ 代码打印的日志而已,和我们应用中的日志没有差别,只要系统没有非常频繁的发生GC 会导致日志太大,对应用造成的性能影响可以忽略
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。