MangoCool

启用和分析垃圾收集日志

2020-11-19 16:47:25   作者:Siva Prasad Rao Janapati   来源:dzone
在上一篇文章中,我们讨论了垃圾收集过程。在本文中,我们将了解如何启用垃圾收集日志,并了解从GC日志中可以获得哪些信息来优化JVM。

作为一名开发人员,每个人都会得到一个关于在生产服务器上启用GC日志的问题。是否建议在生产服务器上启用GC日志?是的,建议在生产服务器上启用GC日志。在JVM上启用GC日志的开销很小。根据标准性能评估公司(SPEC),世界上最高的高性能Java企业生产服务器都是在启用GC日志的情况下运行的。首先,必须传递JVM参数来启用GC日志。下面是JDK8 Oracle HotSpot JVM的选项。

注意:将堆大小设置小一点以获得此练习的GC日志:
-XX:+DisableExplicitGC
-XX:+PrintGCDetails
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCApplicationConcurrentTime
-XX:+PrintGCDateStamps
-Xloggc:gclog.log
-XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles=5
-XX:GCLogFileSize=2000k

让我们了解每个选项的目的。这些选项可能因操作系统、JVM供应商和Java版本而异。

DisableExplicitGC:默认情况下禁用此选项。有时候,开发人员可能通过调用System.gc()或Runtime.getRuntime().gc()来实际地调用垃圾收集。这是不可取的。因此,在生产系统中,我们启用了这个选项,以便禁用垃圾收集的实用调用。

PrintGCDetails默认情况下该选项是禁用的。如果启用这个选项,JVM会在每次垃圾收集时打印更多细节。

PrintGCApplicationStoppedTime默认情况下禁用此选项。如果我们启用它,它将打印GC期间应用程序暂停的信息。

PrintGCApplicationConcurrentTime默认情况下禁用此选项。如果我们启用它,它将在GC期间打印有关应用程序运行时间的信息。

PrintGCDateStamps默认情况下该选项是禁用的。如果我们启用它,它将在每次GC时打印日期和时间详细信息。

Xloggc这是一个字符串选项。我们必须传递gc日志文件的名称。在这个文件中,我们将获得所有的GC日志信息。

UseGCLogFileRotation该选项使JVM在文件大小达到指定大小时重新写日志文件。

NumberOfGCLogFiles默认值为1。日志文件数量的最大值。

GCLogFileSize默认值为8KB。日志文件大小的最大值。

通过设置上述选项,我们就可以获得GC日志了。要调优JVM,最好在负载测试期间启用这些选项,并在不同负载上获取GC日志进行分析。从GC日志中,我们必须观察以下参数。

Young GC和Full GC发生的频率是多少?GC事件之间应该有几分钟的时间间隔。如果Young GC发生得更频繁,那么我们可能需要查看分配的Young Gen space。如果Full GC发生得更频繁,那么我们需要查看分配的堆大小。

每个GC事件完成需要多少时间?理想情况下,Young GC将花费几毫秒,而Full GC将花费几毫秒到几秒。在任何情况下,如果GC花费了几秒到几分钟的时间,那么我们必须查看堆大小调优。如果GC线程完成垃圾收集的时间比垃圾收集的时间长,应用程序线程将处于等待状态(GC是一个停止世界事件)。这会影响用户体验。

我已经创建了一个示例应用程序来生成一个GC日志。现在,我们将理解这里的问题。

有一些GC日志查看器。下面是一个GC日志分析程序 GC log analyzers。如果您上传GC日志,它将提供详细的分析和图表来理解它。根据GC分析,我们可以调优堆大小、年轻代空间和长期空间。在以后的文章中,我们将讨论与性能相关的不同JVM选项。请继续关注!


原文地址:https://dzone.com/articles/enabling-and-analysing-the-garbage-collection-log

标签: java jvm gc 参数 分析

分享:

上一篇jvisualvm 监控 tomcat

下一篇理解java的内存模型和垃圾回收

关于我

崇尚极简,热爱技术,喜欢唱歌,热衷旅行,爱好电子产品的一介码农。

座右铭

当你的才华还撑不起你的野心的时候,你就应该静下心来学习,永不止步!

人生之旅历途甚长,所争决不在一年半月,万不可因此着急失望,招精神之萎葸。

Copyright 2015- 芒果酷(mangocool.com) All rights reserved. 湘ICP备14019394号

免责声明:本网站部分文章转载其他媒体,意在为公众提供免费服务。如有信息侵犯了您的权益,可与本网站联系,本网站将尽快予以撤除。