Java深入 - Java虚拟机性能问题监控和排查

 2019-12-22 11:04  阅读(1143)
文章分类:JVM

1. jps 查看Java进程ID

$ jps
    9788 Jps
    7504 Bootstrap
    3820 org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar

2. jstat 查看Java状态

查看Java gc状态

$sudo jstat -gc 18963
     S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT   
    218432.0 218432.0  0.0   3648.1 2184576.0 1130415.9 1572864.0   62074.9   154388.0 103149.4    127    3.047   2      0.623    3.670

S0C:年轻代中第一个survivor(幸存区)的容量 (字节)

S1C:年轻代中第二个survivor(幸存区)的容量 (字节)

S0U :年轻代中第一个survivor(幸存区)目前已使用空间 (字节)

S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)

EC :年轻代中Eden(伊甸园)的容量 (字节)

EU :年轻代中Eden(伊甸园)目前已使用空间 (字节)

OC :Old代的容量 (字节)

OU :Old代目前已使用空间 (字节)

PC:Perm(持久代)的容量 (字节)

PU:Perm(持久代)目前已使用空间 (字节)

YGC :从应用程序启动到采样时年轻代中gc次数

YGCT :从应用程序启动到采样时年轻代中gc所用时间(s)

FGC :从应用程序启动到采样时old代(全gc)gc次数

FGCT :从应用程序启动到采样时old代(全gc)gc所用时间(s)

GCT:从应用程序启动到采样时gc用的总时间(s)

查看Java 内存空间使用情况,主要查看交换区、Eden、老生代、常量池的使用百分比

sudo jstat -gcutil 18963
      S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
      1.45   0.00  86.09   4.00  66.82    168    3.650     2    0.623    4.273

查看加载的class的数量

$sudo jstat -class 18963
    Loaded  Bytes  Unloaded  Bytes     Time   
     16850 33388.9        0     0.0      26.21

查看编译的数量

$sudo jstat -compiler 18963
    Compiled Failed Invalid   Time   FailedType FailedMethod
        5857      0       0    92.43          0

3. jinfo 打印java进程的配置信息

sudo jinfo 18963

4. jmap 生成虚拟机的内存快照

sudo jmap 18963

5. jstack 显示虚拟机的线程快照

jstack 14298     #查看线程 -F 强制查看
    top -p 14292 -H    查看线程占用CPU
    sudo jstack -F 4284 | grep -A 10 5017  #查看进程中某一个线程,显示10行
点赞(1)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Java深入 - Java虚拟机性能问题监控和排查

相关推荐