您的位置:网站首页 > Java工具 > 正文

JDK自带工具堆栈分析实践

类别:Java工具 日期:2019-11-29 20:21:23 人气: 来源:

  JDK其实自带的有挺多工具可以进行对程序的相关运行JVM堆栈与查询。这次把自己使用JDK自带工具对程序堆栈分析过程列出来,以备自己复习和思考。我一直认为。把底层构造设计好,掌握好了。任凭风摧雨打,都能屹立不倒,JDK也是一样,其实自己设计集成了不少有用的东西。很多东西不是没有用武之地,是我们还没有遇到问题,也就没有机会使用它。所以,在有空闲时间或者想更深入了解某一领域的知识,自己可以不断拓宽自己的思维领域,脱离

  当我们使用IDE或者其他基于cmd/linux中java命令来运行程序时候,系统本地都会创建相关JVM运行对应的进程资源。而在JVM管理的内部,又是有很多java线程在运行与处理。最主要的一个线程,那当就是我们经常看到的main(String[] args)方法入口对应的线程啦。所以,开始对以正常运行的本地javaJVM进程进行实践玩玩,look,look。(哎,当然,自己也是一个菜鸟级别的码农,手握着这本人人都能入门的Java心经,想要练成绝顶神功还有很长的要走啊.....( ̄ε  ̄))

  该次实践背景是:在当前运行的java应用中,有一个线程,进行了大量的IO操作。我的目的就是:通过jdk自带工具,把该线程找出来,定位为指定的应用中的代码块。例子参考了《JVM实践..》。

  jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号。jps相当于Solaris进程工具ps。不象pgrep java或ps -ef grep java,jps并不使用应用程序名来查找JVM实例。因此,它查找所有的Java应用程序,包括即使没有使用java执行体的那种(例如,定制的启动 器)。另外,jps仅查找当前用户的Java进程,而不是当前系统中的所有进程。

  具体实际操作如下:(前提是本地系统中JVM已经启动啦,其实只要涉及到java*.exe运行了就会查到信息)

  可以看到,当前用户系统在运行的java进程号id为3177。只要拿到进程号,后面的命令都可以基于进程号对进程处理中的各种资源都可以查询。进程是计算机进行资源调度的最小单位嘛。可以查看,系统态和用户态之间如何切换的,资源是如何处理的等等,进程这个真是各个很重要的概念。(不行,要去补补操作系统才行。。┑( ̄▽  ̄)┍)

  在第一步中,我们通过jps可以找到名字为HoldIOMain的进程号为3177,之后,我们可以通过pidstat -p 3177 -d -t 1 3(linux) 命令查看在当前系统中,该进程的一些基本情况。关于pidstat命令具体使用,可以参考这片文章:这里

  在,我们通过linux的pidstat命令查看到了,对系统磁盘进行大量读写的进程的进程号为3187。下面,我们就可以通过jdk的jstack命令继续操作。

  在上一步,我们查到了,有问题的对磁盘进行大量读写的进程号为3187,十六进制为:C73.然后我们可以通过jdk自带的jstack命令对线程进行分析。

  jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。百度详情点击jstack

  注意注意:当我们查看3187线程快照内容的时候,我们可以看到一共有四个线程,也就是Thread-0 ~ Thread-4。我们之前也知道进行大量读写操作线,对应成十六进制就是C73,这时候,我们可以看到,那四条线程中,确实有一条线f7bc00a0800 nid=0xc73),详情可以看看的信息。

  Jmap命令用于生成堆转储快照,有时候也成为heapdump或者dump文件。 Jmap不仅仅可以获取dump文件,还可以查询finalize执行队列,Java堆和永久代的详细信息,如空间使用率、当时用的是那种收集器等。,详情这里:jmap简单使用命令:

  jmap_heap.png好了,这个小实践就算分析完了,至于里面还有很多东西,需要自己不断实践,加深理解了。未来还很长啊...

  JDK1.7后,有jcmd多功能工具命令,导出堆栈信息,查看java进程,导出线程信息,执行GC。有需要可以自己去看看jcmd的应用吧。寡妇村里的风流事

  

关键词:jdk工具
0
0
0
0
0
0
0
0
上一篇:工具网站大全
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

郑重声明:本站资源来源网络 如果侵犯了你的利益请联系站长删除

CopyRight 2010-2012 技术支持 FXT All Rights Reserved