Stack Trace for Java,用于生成虚拟机当前的线程快照信息,包含每一条线程的堆栈信息。该命令通常用于定位线程停顿原因,当出现线程停顿时,可通过stack查看每个线程的堆栈信息,进而分析停顿原因。

命令格式: 
jstack [ option ] pid

常用参数:

-l 除堆栈外,显示锁的附加信息
-F 当请求不被响应时,强制输出线程堆栈
-m 混合模式,打印java和本地C++调用的堆栈信息

1.top查找出哪个进程消耗的cpu高。执行top命令,默认是进程视图,其中PID是进程号
co_ad2 18 0 1817m 776m 9712 S 3.3 4.9 12:03.24 java
co_ad 21 0 3028m 2.5g 9432 S 1.0 16.3 6629:44 ja

这里我们分析21125这个java进程
2.top中shift+h 或“H”查找出哪个线程消耗的cpu高
先输入top,然后再按shift+h 或“H”,此时打开的是线程视图,pid为线程号
co_ad2 15 0 1807m 630m 9492 S 1.3 4.0 0:05.12 java
co_ad2_s 15 0 1360m 560m 9176 S 0.3 3.6 0:46.72 java

这里我们分析21233这个线程,并且注意的是,这个线程是属于21125这个进程的。

3.使用jstack命令输出这一时刻的线程栈,保存到文件,命名为jstack.log。注意:输出线程栈和保存top命令快照尽量同时进行。
由于jstack.log文件记录的线程ID是16进制,需要将top命令展示的线程号转换为16进制。

4. jstack查找这个线程的信息
jstack [进程]|grep -A 10 [线程的16进制]
即: jstack 21125|grep -A 10 52f1

-A 10表示查找到所在行的后10行。21233用计算器转换为16进制52f1,注意字母是小写。
结果:

"http-8081-11" daemon prio=10 tid=0x00002aab049a1800 nid=0x52bb in Object.wait() [0x0000000042c75000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:416)

在结果中查找52f1,可看到当前线程在做什么。

本文转自:http://www.iteye.com/topic/1114219

转载于:https://www.cnblogs.com/nizuimeiabc1/p/8468754.html

java中虚拟机命令:jstack使用方法相关推荐

  1. java 中linux命令参数说明,java中linux命令参数说明

    java中linux命令参数说明 [2021-02-01 18:54:34]  简介: 建站服务器 这篇文章主要介绍了Apache中Virtual Host虚拟主机配置及rewrite模块中的重要参数 ...

  2. 如何在Java中解析命令行参数?

    在Java中解析命令行参数的好方法是什么? #1楼 我不建议使用Apache Common CLI库,因为它是非线程安全的. 它使用带有静态变量和方法的有状态类来进行内部工作(例如OptionBuil ...

  3. Java中的命令设计模式

    在本教程中,我们将学习命令模式,这是一种重要的行为设计模式. 它具有一些重要的应用程序,例如在文本编辑器中实现撤消/重做功能. 在命令设计模式中,有一个命令对象位于发送方和接收方对象之间. 发送者对象 ...

  4. js解析java对象数组_js接收并转化Java中的数组对象的方法

    在做项目时,要向ocx控件下发命令,就要在js中得到java中的对象,然后拼成一种格式,下发下去...当对象是一个时比较简单,但如果对象是一个数组时,就略显麻烦了. 开始我以为有简单的方式,可以直接进 ...

  5. java中的命令行参数_Java中的命令行参数

    java中的命令行参数 Command-line arguments in Java are used to pass arguments to the main program. If you lo ...

  6. 【转】Java中获取文件大小的正确方法

    [转]Java中获取文件大小的正确方法 本文出处:http://blog.csdn.net/chaijunkun/article/details/22387305,转载请注明.由于本人不定期会整理相关 ...

  7. Java中图形界面重绘方法

    ** Java中图形界面重绘方法 **   在我们编写图形界面程序的过程中,我们就会发现,当我们将窗体拉伸,缩小(或者最大化最小化)的时候,之前在窗体上画的图形会消失了. 这是为什么呢?   1)原来 ...

  8. linux命令在哪里使用,在Linux不同场景中Linux命令的使用方法

    文章目录 1.日志查看实时查看tomcat日志文件查看: 2.修改配置文件内容最常见的就是修改环境变量 3.vi/vim编辑器 4.查看tomcat进程,杀死进程,重启进程. 5.压缩解压缩文件 6. ...

  9. 在Java中实现单例模式的有效方法是什么? [关闭]

    在Java中实现单例模式的有效方法是什么? #1楼 我使用Spring框架来管理我的单身人士. 它不会强制类的"单一性"(如果涉及多个类加载器,您将无法真正做到),但是它提供了一种 ...

最新文章

  1. win7如何更改文件类型_教你win7局域网设置方法
  2. 装完Ubuntu后要干的事-安装常用软件
  3. 特斯拉在华招聘太阳能和储能项目经理 屋顶光伏业务要来了?
  4. 关于树状数组的个人理解
  5. [Web Chart系列之五] 4. 实战draw2d(Raphael)之取消Chrome中Label Text 全部选中
  6. Microsoft Dynamics CRM server 2013 中业务规则,有点像C#的正则表达式
  7. MATLAB数组生成、引用
  8. 暨南大学人文社科a类期刊_关于调整人文社科B类和C类期刊目录的通知
  9. qpython3h_QPython3H安卓运行Python神器
  10. 编写矩阵运算程序(C语言)
  11. [noip模拟赛]算算数
  12. 对小学语文教学的几点心得体会
  13. 新手卖家如何获得更多流量?这些关键词优化技巧你GET了吗
  14. 图形处理(八)点云重建(上)点云滤波、尖锐特征边增采样、移除离群点
  15. 武汉星起航跨境:跨境电商新蓝海,南非跨境电商市场迸发活力
  16. 中国之声《国学堂》试听下载
  17. 极限学习机的使用方法
  18. 写封信给2010年的自己
  19. 无密码登陆的ssh和ssh-agent
  20. 盒子科技笔试Java_丰巢科技 Java高级笔试面试题 PDF 下载

热门文章

  1. Vue 脚手架结合 SpringBoot 构建前后端分离入门项目(实现增删改查)
  2. 【网络信息安全】网络信息安全概述
  3. [转]从青铜到王者,一文教你节省90%内存占用
  4. 信号角度分析评估因子表现(无限资金回测模型)
  5. 智数合一,智慧工厂的四大典型应用场景
  6. 被阿里带火的数据中台:“大中台、小前台”战略是什么?
  7. 让IT不加班,让业务不等待,一文讲透自助式分析的前世今生
  8. 医药公司java,医药管理系统java版
  9. 信息服务器恢复需要多少时间,云服务器灾难恢复的4个计划
  10. P1022 计算器的改良