分析下 [pkufi_mcde_prod@pmcdeapp05 tomcat]$ /opt/jdk1.7.0/bin/j

动态 未结 0 5
邮箱用户_lh582
邮箱用户_lh582 LV1 2小时前 发表
摘要:
分析下 [pkufi_mcde_prod@pmcdeapp05 tomcat]$ /opt/jdk1.7.0/bin/jstat -gcutil 15412 1000 S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 99.26 57.85 61.20 77.27 2597 71.203 13 20.869 92.072 0.00 99.26 57.85 61.20 77.27 2597 71.203 13 20.869 92.072 0.00 99.26 57.85 61.20 77.27 2597 71.203 13 20.869 92.072 0.00 99.26 57.85 61.20 77.27 2597 71.203 13 20.869 92.072 0.00 99.26 57.85 61.20 77.27 2597 71.203 13 20.869 92.072 0.00 99.26 57.85 61.20 77.27 2597 71.203 13 20.869 92.072
`jstat` 是 Java 虚拟机(JVM)的一个监视工具,用于收集 Java 垃圾回收统计信息。在您提供的输出中,`jstat -gcutil` 命令用于报告关于堆内存各区域使用百分比的统计信息。 下面是各列的解释: - **S0**:Survivor 空间 0 的使用率(百分比)。 - **S1**:Survivor 空间 1 的使用率(百分比)。 - **E**:Eden 区的使用率(百分比)。Eden 区是新生代中对象首次分配的地方。 - **O**:Old 区(或称为 Tenured 区)的使用率(百分比)。长时间存活的对象会被移动到这里。 - **P**:PermGen(Java 7 及之前版本)或 Metaspace(Java 8 及之后版本)的使用率(百分比)。这是存储类元数据的区域。 - **YGC**:年轻代垃圾回收事件次数。 - **YGCT**:年轻代垃圾回收所用的总时间(单位:秒)。 - **FGC**:Full GC 事件次数,即包括老年代在内的全堆垃圾回收。 - **FGCT**:Full GC 所用的总时间(单位:秒)。 - **GCT**:所有垃圾回收事件所用的总时间(单位:秒),即 YGCT 和 FGCT 之和。 从您提供的输出来看,有几点值得注意: 1. **Survivor 区 S1** 的使用率非常高(99.26%),而 S0 区为 0%。这表明对象可能正在从一个 Survivor 区复制到另一个,这是 JVM 垃圾回收的正常行为。但是,这么高的使用率可能表明 Survivor 区的大小可能不够,或者对象的生命周期较长,导致它们很快被移动到 Old 区。 2. **Eden 区** 的使用率为 57.85%,这表明新对象正在被分配到 Eden 区,但还没有达到触发 Minor GC 的阈值。 3. **Old 区** 的使用率为 61.20%,这表明有一定数量的长寿对象存在。 4. **PermGen/Metaspace** 的使用率为 77.27%。在 Java 7 中,这是存储类元数据的区域。如果这个区域满了,可能会导致 `java.lang.OutOfMemoryError: PermGen space` 错误。在 Java 8 及更高版本中,这个区域被 Metaspace 取代,但它的功能类似。 5. **YGC(年轻代垃圾回收次数)** 为 2597 次,而 **FGC(Full GC 次数)** 为 13 次。这表明应用程序已经运行了一段时间,并且经历了多次垃圾回收。 6. **YGCT、FGCT 和 GCT** 表示不同类型的垃圾回收所花费的总时间。这些时间可以帮助您了解垃圾回收对应用程序性能的影响。 综上所述,您可能需要关注 Survivor 区和 PermGen/Metaspace 的使用率。如果这些区域的使用率持续很高,可能需要调整 JVM 的启动参数来增加这些区域的大小,以避免潜在的内存溢出错误。此外,监控 Full GC 的频率和持续时间也很重要,因为 Full GC 通常会导致应用程序的暂停时间增加。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复