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

最新文章

  1. ThinkPhp 3.2 CRUD操作
  2. SE(homework3)_敏捷模型
  3. [No000080]右键解锁增强Chrome插件开发,破除防复制
  4. .NET MVC控制器分离到类库的方法
  5. Android SDK Tools Platform-tools Build-tools
  6. Centos之LAMP环境搭建
  7. 按需讲解之Supervisor
  8. 【Xamarin开发 Android 系列 5】 Xamarin 的破解
  9. SVN的项目管理
  10. 探索Windows命令行系列(4):通过命令管理文件和文件夹
  11. Es6 Promise 用法详解
  12. 图片压缩上传Thumbnailator 插件
  13. 初学ASP.NET 知识点
  14. 2.java面向对象类与类/类与对象之间关系详解
  15. 阿里云CentOS 7无外网IP的ECS访问外网(配置网关服务器)
  16. Luogu 3421 [POI2005]SKO-Knights - Exgcd
  17. TVS 选型
  18. Factory模式 http://blog.csdn.net/tf576776047/article/details/6895545
  19. JAVA怎么在函数内改变传入的值
  20. BZOJ3924 ZJOI2015 幻想乡战略游戏 【动态点分治】

热门文章

  1. Android -- SurfaceView绘制
  2. java笔试题(5)
  3. spring mvc--默认都使用了哪些bean
  4. 依据硬件设备配置高性能的Nginx
  5. Eclipse Kepler 设置中文编码 和 汉化
  6. win10 你没有足够的权限执行此操作。
  7. HttpClient + PATCH support
  8. 【centos6.5】安装LAMP
  9. Python爬虫实战案例:爬取爱奇艺VIP视频
  10. Linux-软件包管理-源码包安装