资讯专栏INFORMATION COLUMN

JVM分析工具简介

IT那活儿 / 1891人阅读
JVM分析工具简介

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

前 言

JDK是一个功能非常强大的Java开发套装,不仅给我们提供了Java运行环境,还给开发人员提供了许多有用的开发组件(位于bin目录中,如下图所示),对于我们运维人员来说,在我们出现一些内存,GC,线程等问题,JVM分析工具能够很好的帮助我们定位分析问题,我们可以利用jdk自带的jvm分析工具进行分析,比如jps,jinfo,jvisualvm,jconsole,jstat,jstack,jcmd,jmap等。当然也可以采用很多优秀的开源jvm分析工具进行分析,Arthas等。

常见自带的JVM分析工具


工具

类型

作用

jps

命令行

jvm进程状态工具,列出系统上jvm进程的pid

jinfo

命令行

jvm信息查看工具,查看jvm的各种配置信息

jvisualvm

图形界面

jvm综合监控工具,查看jvm基本信息,堆,栈,转储,内存,cpu以及gc等信息

jconsole

图形界面

jmx兼容的图形工具,用于监控jvm基本情况,查看MBean

jstat

命令行

jvm统计监控工具,附件到一个jvm进程上手机和记录jvm的各种性能指标数据

jstack

命令行

jvm栈查看工具,可以查看jvm进程的线程和锁信息

jcmd

命令行

jvm命令行调试工具,用于向jvm进程发送调试命令

jmap

命令行

jvm堆内存分析工具,可以查看jvm进程对象直方图,类加载统计以及做堆转储操作


JVM分析工具详解

1. jps

通过jps查看Java进程列表pid。如图所示能看到ASMain的pid为2977。

2. Jinfo

通过Java进程对应的pid,使用jinfo查看jvm各种配置信息。比如jdk版本,环境,路径,虚拟机名称,编码,堆栈等信息。

3. jvisualvm

jvisualvm是一个综合监控工具,查看jvm基本信息,堆,栈,转储,内存,cpu以及gc等信息。

打开图形化界面,找到对应执行方法程序可以查看相关资源配置信息。
  • 概述:可以看到堆栈信息以及系统参数等。

  • 监视:CPU(使用情况,垃圾回收情况),内存(堆大小,堆使用大小),类(类装入卸载数量),线程(活动线程,守护线程数量)。

  • 线程:当前所有线程执行状态,主要包括开启了那些线程,线程运行,休眠,等待,驻留,监视等信息。

  • 抽样器:CPU抽样(CPU样例与线程CPU时间)与内存抽样(堆柱状图与每个线程分配)。,

  • Profiler:CPU与内存性能分析。

4. jstat

jstat工具以命令行的方式,允许以固定的监控频次输出 JVM 的各种监控指标,比如使用 -gcutil 输出 GC 和内存占用汇总信息,每隔 5 秒输出一次,输出 100 次.

5. jstack

通过命令行工具 jstack,也可以实现抓取线程栈的操作,进行在线分析,一般情况我们会连续抓取三次,每隔五秒。

6. jmap

jmap jvm自带命令行工具,可用于了解系统运行时的对象分布。

jmap pid 查看基本信息。

查看堆信息,jmap -heap pid。

jmap -histo pid 查看一些class的使用情况。

jmap -histo:live pid >dump.txt 输出class信息到dump文件。



本文作者:程 红(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129201.html

相关文章

  • 学习JVM必看书籍

    学习JVM的相关资料 《深入理解Java虚拟机——JVM高级特性与最佳实践(第2版)》 showImg(https://segmentfault.com/img/bVbsqF5?w=200&h=200); 基于最新JDK1.7,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行全面而深入的分析,深刻揭示JVM的工作原理。以实践为导向,通过大量与实际生产环境相结合的案例展示了解...

    shaonbean 评论0 收藏0
  • java8 之 新的Java工具

    简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本。这个版本包含语言、编译器、库、工具和JVM等方面的十多个新特性。在本文中我们将学习这些新特性,并用实际的例子说明在什么场景下适合使用。 这个教程包含Java开发者经常面对的几类问题: 语言编译器库工具运行时(JVM)新的Java工具 Java 8提供了一些新的命令行工具,这部分会讲解一些对开发者最有用的工具...

    sourcenode 评论0 收藏0
  • Java学习路线总结,搬砖工逆袭Java架构师(全网最强)

    摘要:哪吒社区技能树打卡打卡贴函数式接口简介领域优质创作者哪吒公众号作者架构师奋斗者扫描主页左侧二维码,加入群聊,一起学习一起进步欢迎点赞收藏留言前情提要无意间听到领导们的谈话,现在公司的现状是码农太多,但能独立带队的人太少,简而言之,不缺干 ? 哪吒社区Java技能树打卡 【打卡贴 day2...

    Scorpion 评论0 收藏0
  • 细述 Java垃圾回收机制→Java Garbage Collection Introduction

    摘要:在架构中,堆内存和垃圾回收器这两个部分和垃圾回收相关。堆内存在的内存模型中,最重要的是要了解堆内存的概念。在垃圾回收的过程中,这些对象将被从堆内存中清除,同时它们的空间也就被回收了。 本文非原创,翻译自Java Garbage Collection introduction在Java中为对象分配和释放内存空间都是由垃圾回收线程自动执行完成的。和C语言不一样的是Java程序员不需要手动写...

    codergarden 评论0 收藏0
  • 学Java编程需要注意的地方

    摘要:学编程真的不是一件容易的事不管你多喜欢或是多会编程,在学习和解决问题上总会碰到障碍。熟练掌握核心内容,特别是和多线程初步具备面向对象设计和编程的能力掌握基本的优化策略。   学Java编程真的不是一件容易的事,不管你多喜欢或是多会Java编程,在学习和解决问题上总会碰到障碍。工作的时间越久就越能明白这个道理。不过这倒是一个让人进步的机会,因为你要一直不断的学习才能很好的解决你面前的难题...

    leanxi 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<