• 71760

    文章

  • 657

    评论

  • 17

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

java虚拟机内存监控工具

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

1、jps(JVM Process Status Tool):JVM机进程状况工具

  • -m 输出传递给main方法的参数,如果是内嵌的JVM则输出为null。
  • -l   输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。
  • -v  输出传给JVM的参数

2、jinfo(Configuration Info for Java):JVM配置信息工具

  • 可以输出并修改运行时的java 进程的opts
  • -flag  输出,修改,JVM命令行参数

3、Jstack(Stack Trace for Java):JVM堆栈跟踪工具

  • 打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息
  • 在64位机器上,需要指定选项"-J-d64“
  • -F 当’jstack [-l] pid’没有相应的时候强制打印栈信息
  • -l  长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.
  • -m 打印java和native c/c++框架的所有栈信息.
  • -h | -help打印帮助信息

4、jstat(JVM statistics Monitoriing Tool):JVM统计信息监视工具

  • Java应用程序的资源和性能进行实时的命令行的监控
  •     -gcutil  输出已使用空间占总空间的百分比
  •     -gccapacity 输出堆中各个区域使用到的最大和最小空间

 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)

    NGCMN:年轻代(young)中初始化(最小)的大小 (字节)

    NGCMX:年轻代(young)的最大容量 (字节)

        NGC:年轻代(young)中当前的容量 (字节)

   OGCMN:old代中初始化(最小)的大小 (字节) 

   OGCMX:old代的最大容量 (字节)

       OGC:old代当前新生成的容量 (字节)

   PGCMN:perm代中初始化(最小)的大小 (字节) 

   PGCMX:perm代的最大容量 (字节)   

       PGC:perm代当前新生成的容量 (字节)

          S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比

         S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比

           E:年轻代中Eden(伊甸园)已使用的占当前容量百分比

           O:old代已使用的占当前容量百分比

           P:perm代已使用的占当前容量百分比

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

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

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

       DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满)

          TT: 持有次数限制

       MTT : 最大持有次数限制

5、jmap( Memory Map for Java):JVM内存映像工具

  • 打印出某个java进程(使用pid)内存内的所有‘对象’的情况(如:产生那些对象,及其数量)

 -dump:[live,]format=b,file=<filename>

  •  使用二进制形式输出jvm的heap内容到文件中
  • live子选项是可选的,假如指定live选项,那么只输出活的对象到文件. 

 -histo[:live] 

  • 打印每个class的实例数目,内存占用,类全名信息.
  • VM的内部类名字开头会加上前缀”*”.
  • 如果live子参数加上后,只统计活的对象数量. 

 -F 强迫.

  • 在pid没有相应的时候使用-dump或者-histo参数. 
  • 在这个模式下,live子参数无效. 

6、jhat(JVM Heap Analysis Tool):JVM堆转储快照分析工具

  • 用于对JAVA heap进行离线分析的工具
  • jhat data.hprof  
  • 执行成功后,访问http://localhost:7000即可查看内存信息

7、MAT(Memory Analyzer Tool):一个基于Eclipse的内存分析工具

  • 这是eclipse的一个插件,安装后可以打开xxx.hprof文件,进行分析,比jhat更方便使用

8、图形化监控工具

  •  JConsole(Java Monitoring and Management Console) 基于JMX的可视化管理工具。
  •  VisualVM(All-in-one Java Troubleshooting Tool)随JDK发布的最强大的运行监视和故障处理程序。
  • 推荐使用VisualVM,他有很多插件,可以更方便的监控运行时JVM


 转载至链接:https://my.oschina.net/u/3847203/blog/1830330


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤
注册梁钟霖个人博客