zoukankan      html  css  js  c++  java
  • jvm监控

    jps

    [root@tomcat2 bin]# pwd
    /usr/java/jdk/bin
    //显示运行的所有java进程
    [root@tomcat2 bin]# jps
    7514 Jps  #jps也是java开发的,所以这里会显示出来
    

    jps (java virtual machine process status tool)监控ivm进程状态信息,可以理解为列出所有的java进程的pid号。

    jps [options] [hostid]

    • -m:输出传入main方法的参数

    • -l:显示main类或jar的完全限定名称

    • -v:显示为jvm虚拟机指定的参数,这一个挺有用,可以显示出分配的空间

    [root@tomcat2 bin]# pwd
    /usr/java/jdk/bin
    [root@tomcat2 bin]# jps -m
    8379 Jps -m
    [root@tomcat2 bin]# jps -l
    8391 sun.tools.jps.Jps
    [root@tomcat2 bin]# jps -l -v
    8403 sun.tools.jps.Jps -Dapplication.home=/usr/java/jdk -Xms8m
    

    jstack

    查看某个java进程内线程内的堆栈信息,通过jps命令列出java进程,然后通过jstack去查看进程的堆栈信息。

    //显示堆线的信息,会显示的非常详细
    jstack PID
    这些信息我们运维看不太懂,一些我们是在调优或排错的时候将输出信息交给程序员分析。
    

    选项:

    • -l 1ong listings:输出完成的锁信息:

    • -m:混合模式,即.

    在排错或调优时只可以通过jstack查看到底是哪段代码产生了锁导致了问题。

    通常会这样的情况,我们通过top观察到一个java进程特别消耗cpu,我们可以将其pid取出来,然后通过jstack来观察查看是哪段代码比较异常。

    jmap

    jmap:jvm memroy map,查看堆内存使用情况

    //查看堆内存使用情况
    jmap PID
    

    image-20200409152941162

    //详细查看堆内存使用情况,会把堆当中的新生代、老年代、持久代信息显示出来,比较有用
    jmap -heap PID 
    

    image-20200409153227353

    //详细显示堆空间的对象
    jmap -histo:live PID
    

    jstat

    jvm的统计监测工具

    //查看垃圾回收器的相关信息
    jstat -gc PID
    

    image-20200409154004964

    • 字段意义:s0C, SIC, Sou, S1U: C表示容量, U表示已用量,0和1指的就是from和to

    • EC, EU: eden区域的容量和已用量

    • oc, ou:老年代的信息

    • PC, PU:持久代的信息

    • YGC, YGT:新生代的GC次数和耗时

    • FGC, FGCT: FULL GC的次数和耗时

    • GCT: GC.总耗时

  • 相关阅读:
    spring @component的作用详细介绍
    @Scheduled(cron = "0/5 * * * * *")将时间改为配置
    java项目里classpath具体指哪儿个路径
    返回前多少行数据
    Gson的基本使用
    JSON.toJSONString中序列化空字符串遇到的坑
    指定JSON.toJSONString中实体类属性的输出顺序
    Javascript实现的图片隐写术
    IntelliJ IDEA 快捷键终极大全
    ECMAScript 6 入门
  • 原文地址:https://www.cnblogs.com/yizhangheka/p/12667429.html
Copyright © 2011-2022 走看看