使用垃圾回收透视图

在 Health Center 垃圾回收透视图中查看诸如堆使用率、暂停时间、摘要表、对象分配和调优建议部分之类的数据。某些数据无法用于非 Java™ 应用程序。

Health Center 垃圾回收透视图包含以下视图:

基本垃圾回收信息视图
这些视图可用于所有应用程序类型:
详细垃圾回收信息视图
这些视图仅可用于 Java 应用程序,且仅当您根据控制垃圾回收信息的收集(仅限 Java 应用程序)中的指示信息启用详细的垃圾回收信息时才可用:
  • 对象分配:显示指定大小范围内对象分配的表。
  • 按请求站点划分的采样:已采样对象分配的概要文件,按分配请求的调用站点分组。
  • 按对象划分的采样:已采样对象分配的概要文件,按已分配对象的类型分组。
  • 调用层次结构:当您在对象分配按请求站点划分的采样按对象划分的采样视图中选择了某行时,该视图将显示数据。 例如,如果在按对象划分的采样视图中选择了某行,那么该视图将显示该对象的分配的调用层次结构。
  • 时间线:对何时请求对象分配的直观表示。当您在对象分配按请求站点划分的采样视图中选择了某行时,该视图将显示数据。

堆使用率

堆使用率图用于识别应用程序内存使用量的趋势。如果内存占用量超出预期,堆分析工具可识别过度使用内存的领域。如果堆使用量随时间推移而不断增加,那么应用程序可能存在内存泄漏情况。如果应用程序仍引用已不再需要的对象,就会出现内存泄漏情况。 由于仍引用这些对象,因此无法对它们进行垃圾回收,从而无法释放空间以满足内存需求。随着内存消耗量的增长,就需要使用更多的处理器资源进行垃圾回收,这样留给应用程序运行的资源就相对减少。这样内存需求最终会耗尽堆,导致出现 OutOfMemoryError 异常,应用程序失败。

监控 WebSphere® Real Time for Linux JVM 时,您会看到一个关于已使用堆的图形,其中包含定期空间回收的典型模式。

暂停时间

暂停时间图用于评估垃圾回收的性能影响。运行垃圾回收时,所有应用程序线程都将暂停。对于某些应用程序(如批处理程序),长期暂停并不是问题。 而对于其他应用程序(如 GUI 应用程序或与其他系统交互的应用程序),长时间的垃圾回收暂停可能是不可接受的。

较长的垃圾回收暂停时间通常与较好的应用程序吞吐量相关联,而且不会造成性能问题。在垃圾回收上花费额外时间经常会改善内存分配并缩短内存访问时间。 垃圾回收调优的目标是仅当需要较短的响应时间时才缩短暂停时间。

对象分配(仅限 Java 应用程序)

使用对象分配视图标识正在分配大对象的代码。 您可以使用上下阈值来指定触发调用堆栈信息收集的对象范围。要了解更多信息,请参阅控制垃圾回收信息的收集(仅限 Java 应用程序)

该视图显示一张表,其中显示以下信息:
表 1. 对象分配
列标题 描述
计数 该请求站点的分配请求数
% 该请求站点的已记录分配的百分比
分配 % 列的图形表示法
平均大小 (KB) 已记录分配的平均对象大小
请求站点 分配请求的代码位置
选择表中一行以在“调用层次结构”视图中显示分配请求站点的调用路径。“时间线”视图直观表示何时请求分配。

按请求站点或对象划分的样本(仅限 Java 应用程序)

使用这些视图以标识正在分配大量对象的代码。

如果 JVM 已在线程本地堆之外分配指定的内存量,那么将发生分配采样事件。该内存量由 -Xgc:allocationSamplingGranularity=bytes 选项定义。 缺省值是 16 MB。采样事件的数量取决于受监控应用程序所请求的内存量。要增加样本数目,请减小 -Xgc:allocationSamplingGranularity 选项的值。 要获取最大数目的采样,请设置 -Xgc:allocationSamplingGranularity=1
注:-Xgc:allocationSamplingGranularity 选项的值设置为小于缺省值可能会影响受监控 JVM 的性能。
有关线程本地堆的更多信息,请参阅您的 IBM SDK Java Technology Edition 版本文档中的“线程本地堆”主题。例如,线程本地堆
使用按请求站点划分的采样视图查找发布分配请求最频繁的代码。只有在启用采样对象分配事件的调用堆栈收集时,才会显示数据。要了解更多信息,请参阅控制垃圾回收信息的收集(仅限 Java 应用程序)。该视图显示包含以下列的表:
表 2. 按请求站点划分的采样
列标题 描述
计数 该对象类型的采样分配请求数
% 该对象类型的采样分配的百分比
% % 列的图形表示法
请求站点 分配请求的代码位置
已分配的对象 该站点中正在分配对象的类名
选择表中一行以在调用层次结构视图中显示分配请求站点的调用路径,并在时间线视图中直观表示何时发出分配请求。
使用按对象划分的采样视图查找分配最频繁的对象。该视图显示包含以下列的表:
表 3. 按对象划分的采样
列标题 描述
计数 该对象类型的采样分配请求数
% 该对象类型的采样分配的百分比
% % 列的图形表示法
总大小 (KB) 采样分配已分配的总内存
已分配的对象 正在分配对象的类名
选择表中一行以在调用层次结构视图中显示分配请求站点的调用路径。 只有在启用采样对象分配事件的调用堆栈收集时,调用层次结构信息才可用。要了解更多信息,请参阅控制垃圾回收信息的收集(仅限 Java 应用程序)

摘要表

摘要表显示垃圾回收指标,包括平均暂停时间、前后两次垃圾回收之间的平均时间间隔以及垃圾回收所用的时间量。 应用程序在垃圾回收上所用的时间自身不能用作性能指标。某些垃圾回收策略(例如 IBM SDK Java Technology Edition 中的分代并发 (gencon) 策略)在垃圾回收上要花费更长的时间,但仍可提高应用程序性能。

调优建议(仅限 Java 应用程序)

Health Center 为 Java 应用程序提供一般的调优建议和意见。在某些特殊情形下,可能需要进一步的微调。Health Center 并不知道您的服务质量需求,因此这些建议并不始终奏效。例如,建议的更改可能提高应用程序的效率,但会延长暂停时间,这对您的应用程序来说可能并不是最理想的解决方案。调优建议还会表明应用程序是否存在内存泄漏情况。但是,Health Center 无法辨别自然增加的内存需求与持有不再需要的内存所产生的内存需求。

查看特定时间段的数据

您可以通过裁剪操作来选择显示数据和提供建议的时间间隔。有关裁剪的更多信息,请参阅裁剪数据



© Copyright IBM Corporation 2007, 2015.
© Copyright 1997, 2015, Oracle and/or its affiliates.
US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.