zoukankan      html  css  js  c++  java
  • jstat命令

    概述


    Jstat 查看某个Java进程内的线程堆栈信息,用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计,使用jstat我们可以对指定的JVM做如下监控:

    - 类的加载及卸载情况

    - 查看新生代、老生代及持久代的容量及使用情况

    - 查看新生代、老生代及持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间

    - 查看新生代中Eden区及Survior区中容量及分配情况等


    常用命令及输出分析

    1、总结垃圾回收统计

    $ jstat -gcutil 19148 1000 10

    每1秒一次显示进程号为 19148的 java进成的 GC情况(只打印10次),结果如下图:

    如何判断应用程序是否有内存的问题:

    1. Full GC的频率,时长和效果: 如果Full GC频率较高,比如数秒一次,那么此时程序可能就已经出问题了,因为jvm在Full GC的时候是不响应外部请求的。

    如果Full GC时间较长,比如持续数秒,那么此时程序可能就已经出问题了,因为jvm在Full GC的时候是不响应外部请求的。

    如果Full GC之后old 区内存没有显著减少,那么程序很可能有内存泄露问题,并且不久将来可能出现outofmemory异常。

    如果young gc和full gc能够正常发生,且都能有效回收内存,常驻内存区变化不明显,则说明java内存释放情况正常,垃圾回收及时,java内存泄露的几率就会大大降低。但也不能说明一定没有内存泄露。

    2. GC的频率,时长和效果: 如果JVM进行内存回收的频率非常高,比如几乎每数秒中就有一次,每次回收的时间为数秒钟;并且,通过输出还发现每次回收释放的内存非常有限,大多数对象都无法回收。这种现象很大程度上暗示着内存泄漏。(此时可以用“jmap”来获得当前的一个内存映象,看看哪些对象导致这个问题来找出原因)

    如果每次GC时间特别长,比如说数十秒,那这种现象很大程度上暗示着内存泄漏。(内存中对象太多,导致遍历时间太长,有时候不好的缓存机制会造成这样的问题)

    完整语法详解

    官方详细文档

    jstat [Options] vmid [interval] [count]

    命令参数说明:

    Options,一般使用 -gcutil 或  -gc 查看gc 情况

    pid,当前运行的 java进程号

    interval,间隔时间,单位为秒或者毫秒

    count,打印次数,如果缺省则打印无数次

    PS:不同的操作系统支持的选项可能会不一样,可以通过-options选项,查看不同操作系统所支持选项。(下图为公司服务器所支持的选项)

    Option

    Displays...

    class

    用于查看类加载情况的统计

    compiler

    用于查看HotSpot中即时编译器编译情况的统计

    gc

    用于查看JVM中堆的垃圾收集情况的统计

    gccapacity

    用于查看新生代、老生代及持久代的存储容量情况

    gccause

    用于查看垃圾收集的统计情况(这个和-gcutil选项一样),如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃圾收集的原因。

    gcnew

    用于查看新生代垃圾收集的情况

    gcnewcapacity

    用于查看新生代的存储容量情况

    gcold

    用于查看老生代及持久代发生GC的情况

    gcoldcapacity

    用于查看老生代的容量

    gcpermcapacity

    用于查看持久代的容量

    gcutil

    用于查看新生代、老生代及持代垃圾收集的情况

    printcompilation

    HotSpot编译方法的统计

  • 相关阅读:
    codeforces 1012C
    openjudge 6045:开餐馆
    openjudge 7624:山区建小学
    codevs 1040 统计单词个数
    openjudge9267:核电站
    openjudge7624:山区建小学
    bzoj3224:普通平衡树
    洛谷1137:旅行计划
    洛谷1095:守望者的逃离
    校内模拟赛:确定小组
  • 原文地址:https://www.cnblogs.com/ken-jl/p/8999088.html
Copyright © 2011-2022 走看看