JVM的GC日志查看

JVM的GC日志的主要参数包括如下几个:

-XX:+PrintGC 输出GC日志
-XX:+PrintGCDetails 输出GC的详细日志
-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)
-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)
-XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息
-XX:+PrintGCApplicationStoppedTime // 输出GC造成应用暂停的时间
-Xloggc:../logs/gc.log 日志文件的输出路径

GC的日志是以替换的方式(>)写入的,而不是追加(>>),如果下次写入到同一个文件中的话,以前的GC内容会被清空。

生产上设置的时候,要求-Xms和-Xmx参数保持一致:

1)如果二者不等,最开始的时候堆大小是Xms,随着heap内存消耗,jvm很有可能需要申请更大的空间直到Xmx;相似的,jvm在申请到Xmx空间时可能又用不了,这时会缩小jvm空间,这样,虽然可以动态调整jvm堆申请的大小,但是每一次调整都需要一定的系统开销(jvm与os之间)。但是,注意前提——生产环境,生产环境意味着一台机器或者一个容器只有一个服务,独占机器意味着没有必要调整jvm大小,直接分配Xmx就行了。否则每一次调整都可能会有开销。只有在开发环境,比如个人电脑,运行的进程特别多,jvm内存动态调整才可能有必要。
2)另外,在产环境的这一前提下,如果最开始堆大小是Xms,也意味着可能会有比较多的gc,影响性能。

在这里插入图片描述

对于新生代回收的一行日志,其基本内容如下:

[GC (Allocation Failure) [PSYoungGen: 334480K->4736K(334848K)] 597914K->270331K(1017536K), 0.0209890 secs] [Times: user=0.03 sys=0.00, real=0.02 secs] 

GC (minor )日志
对于老生代回收的一行日志,其基本内容如下:

[Full GC (Allocation Failure) [PSYoungGen: 504K->0K(2560K)] [ParOldGen: 261K->693K(7168K)] 765K->693K(9728K), [Metaspace: 3143K->3143K(1056768K)], 0.0033658 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

在这里插入图片描述

发布了20 篇原创文章 · 获赞 1 · 访问量 1170
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览