`

Java GC log的解读

 
阅读更多

Java的GC log中,往往有很多名称啊、数字啊,第一次看到时候,总会有点晕头转向的感觉。

今天又Google了一圈,找到两篇比较靠谱的网页记录一下:

  • HotSpot在PrintHeapAtGC输出的内容的格式
  • Java Garbage Collection Log messages

    引用一下stackoverflow上的那个例子
    8109.128: [GC [PSYoungGen: 109884K->14201K(139904K)] 691015K->595332K(1119040K), 0.0454530 secs]
    
    8112.111: [GC [PSYoungGen: 126649K->15528K(142336K)] 707780K->605892K(1121472K), 0.0934560 secs]
    
    8112.802: [GC [PSYoungGen: 130344K->3732K(118592K)] 720708K->607895K(1097728K), 0.0682690 secs]
    ->前后数字没有疑问,就是GC前后所对应区域的内存使用空间,一般GC分析时,关注这里就可以看出各代GC收集的效果了。但是后面还对应了一对小括号是干啥的?以上面的GC log中的第一行为例,那个(139904K)是神马的大小?
    这个参考上面撒迦的博文,就是里面所说的Committed area,这块区域通俗的讲就是JVM从OS那里已经申请到并且已经标记为自己占用的内存空间(尽管这块内存空间JVM自己可能并未分配给实际的Java对象)。
    再引用一下上面stackoverflow中一位兄台的回答如下:
     写道
    The next number in parentheses (e.g., (776768K) again from the first line) is the committed size of the heap: the amount of space usable for java objects without requesting more memory from the operating system. Note that this number does not include one of the survivor spaces, since only one can be used at any given time, and also does not include the permanent generation, which holds metadata used by the virtual machine.
     

分享到:
评论

相关推荐

    gcviewer监控gc工具

    通过解读GC日志,GCViewer能够帮助开发者识别潜在的内存泄漏、性能瓶颈以及调整优化内存配置。 一、GCViewer简介 GCViewer是基于Java Swing的GUI应用,由Chris Newland开发,它能够解析并可视化JVM生成的GC日志,...

    Java内存分配及垃圾回收文章汇总

    最后,"GC Log分析.doc"可能会讲解如何通过分析GC日志来诊断和解决问题。GC日志记录了垃圾回收的过程和结果,包括GC的启动时间、耗时、内存使用情况等。通过对这些信息的解读,开发者可以发现系统的潜在问题,比如...

    Sun Hotspot V1.6.0 JVM GC PPT.pdf

    使用`-verbose:gc`、`-XX:+PrintGCDetails`以及`-Xloggc:gc.log`等选项可以输出详细的GC日志信息。 例如,串行GC的日志输出如下: ``` [GC [DefNew: 11509K->1138K(14336K), 0.0110060 secs] 11509K->1138K(38912K...

    GCLogViewer-0.3-win64

    在Java应用启动时,可以通过设置JVM参数来指定GC日志的输出路径和格式,例如使用`-XX:+PrintGCDetails`和`-XX:File=gc.log`。然后,将这些日志文件导入到GCLogViewer中,工具会自动解析并生成相应的图表和统计信息。...

    Java常用单词表.pdf

    - `Garbage Collection`(GC)是Java中的内存回收机制。 - `Buffer`用于输入输出流的临时存储区。 19. 文件和流操作: - `FileInputStream`、`FileOutputStream`用于文件的读写操作。 20. Web技术: - `WWW`、`...

    常用JVM配置参数.ppt

    - **示例输出**:该参数本身不直接输出信息,而是指定了日志文件的路径,如“log/gc.log”。 #### 三、堆的分配参数 ##### -Xms 和 -Xmx - **-Xms**:设置初始堆大小。 - **-Xmx**:设置最大堆大小。 - **作用**...

    Sun JDK 1.6内存管理--调优篇-毕玄

    文章列举了几种常用的测量工具,包括GC日志(GCLog)、jstat、jmap、sar、top等。这些工具能帮助开发者深入了解JVM运行状态,从而进行有针对性的调优。 ### GC误解与调优目标 文章引用了来自JavaOne 2010的“垃圾...

    精简JRE - verbose命令

    `log.txt`文件很可能是通过运行带有verbose选项的Java程序生成的日志文件,包含了上述选项之一或多个的输出结果。 在实际应用中,我们需要根据具体情况选择合适的verbose选项,分析日志,找出性能瓶颈或故障原因。...

    probe2.2.3源码及中文包

    2. **监控指标**:学习如何解读和分析内存使用率、对象分配速率、GC频率等关键指标。 3. **配置部署**:掌握如何将probe.war文件部署到Tomcat服务器,以及如何配置Probe以适应你的特定环境需求。 4. **报警与通知*...

    gcparse:已退役。 Java垃圾收集日志记录的ANTLR语法

    Java垃圾收集日志(Garbage Collection Log)是Java应用程序运行时的重要组成部分,它记录了JVM内存管理的详细信息,包括对象的分配、回收以及垃圾收集的过程。gcparse是一个已经退役的工具,它使用ANTLR(一种强大...

    高级运维知识.zip

    2. **应用监控**:使用如JMX、VisualVM、Prometheus+Grafana等工具监控Java应用的运行状态,包括线程、内存、GC、系统资源等。 3. **日志管理**:了解日志框架如Log4j、Logback,设置日志级别和格式,实现日志集中...

    JVM崩溃

    在给定的文件名"hs_err_pid26290.log"中,“hs_err”代表HotSpot错误报告,这是一个由Oracle的Java虚拟机生成的详细错误报告,包含了崩溃时的堆栈跟踪、系统信息以及可能的故障原因。通过分析这个文件,我们可以了解...

    jvm调试示例代码

    - 使用`System.out.println`或日志框架(如Log4j、Logback)记录运行信息,辅助调试。 - `-XX:+TraceClassLoading`和`-XX:+PrintCompilation`等参数可追踪类加载和编译过程。 4. **JConsole与VisualVM** - ...

    Linux shell脚本实现CPU预警

    jstat -gcutil $pid > log/gc_$pid_$date.log jmap -heap $pid > log/heap_$pid_$date.log done ``` - 当检测到CPU占用率过高时,获取所有Java进程ID,并对每个进程执行一系列操作: - 调用`showstack.sh`脚本...

Global site tag (gtag.js) - Google Analytics