一、概念

用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

二、语法

jstack [ option ] pid

jstack [ option ] executable core

jstack [ option ] [server-id@]remote-hostname-or-IP

常用参数说明

1)、options:

executable Java executable from which the core dump was produced.(可能是产生core dump的java可执行程序)

core 将被打印信息的core dump文件

remote-hostname-or-IP 远程debug服务的主机名或ip

server-id 唯一id,假如一台主机上多个远程debug服务

2)、基本参数:

-F 当’jstack [-l] pid’没有相应的时候强制打印栈信息

-l 长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.

-m 打印java和native c/c++框架的所有栈信息.

-h | -help打印帮助信息

pid 需要被打印配置信息的java进程id,可以用jps查询.

三、示例

1、输出当前进程的堆栈信息 : jstack -l 2626

2626 既是pid 可以通过ps -ef|grep java 或者 jps -ml 获得

2、将当前的进程输出到文件上:jstack -l 2626 >> test.log

可以将进程的堆栈输出到日志,然后下载到本地排查问题。

场景:jvm调优 ,尤其在查看阻塞、死锁等问题上

学习地址:

https://www.cnblogs.com/taiguyiba/p/9470861.html

https://blog.csdn.net/fenglibing/article/details/6411940

java虚拟机之 jstack 命令相关推荐

  1. Java虚拟机理解-内存管理

    运行时数据区域 jdk 1.8之前与之后的内存模型有差异,方法区有变化(https://cloud.tencent.com/developer/article/1470519). java的内存数据区 ...

  2. 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)读书笔记

    前言 我在读 深入理解java虚拟机 这本书,把整体其中的关键点标记了,希望自己对它有个不一样的理解,也希望大家能看看这本写的很好的书 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) pd ...

  3. Java程序执行Linux命令

    java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: [plain] view plaincopyprint? ProcessBuilder. ...

  4. 深入理解Java虚拟机-如何利用 JDK 自带的命令行工具监控上百万的高并发的虚拟机性能...

    虚拟机系列文章 深入理解 Java 虚拟机(第一弹) - Java 内存区域透彻分析 深入理解 Java 虚拟机(第二弹) - 常用 vm 参数分析 深入理解 Java 虚拟机-如何利用 Visual ...

  5. Java虚拟机详解(七)------虚拟机监控和分析工具(1)——命令行

    通过前面的几篇博客,我们介绍了Java虚拟机的内存分配以及内存回收等理论知识,了解这些知识对于我们在实际生产环境中提高系统的运行效率是有很大的帮助的.但是话又说回来,在实际生产环境中,线上项目正在运行 ...

  6. 深入理解Java虚拟机-如何利用 JDK 自带的命令行工具监控上百万的高并发的虚拟机性能

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:打卡活动第二期来啦,100% 能获得奖品个人原创+1博客:点击前往,查看更多 虚拟机系列文章 深入理解 Java ...

  7. epub java虚拟机精讲_高级 Java 必须掌握:JVM 分析工具和查看命令,超详细!

    来源:http://boendev.iteye.com/blog/882479 jinfo 可以输出并修改运行时的java 进程的opts. jps 与unix上的ps类似,用来显示本地的java进程 ...

  8. java虚拟机常用命令工具

    java虚拟机常用命令工具 博客分类: 虚拟机 虚拟机jvmjava  一.概述            程序运行中经常会遇到各种问题,定位问题时通常需要综合各种信息,如系统日志.堆dump文件.线程d ...

  9. java虚拟机进程_Java虚拟机详解(七)------虚拟机监控和分析工具(1)——命令行...

    通过前面的几篇博客,我们介绍了Java虚拟机的内存分配以及内存回收等理论知识,了解这些知识对于我们在实际生产环境中提高系统的运行效率是有很大的帮助的.但是话又说回来,在实际生产环境中,线上项目正在运行 ...

最新文章

  1. 实验五 操作系统之存储管理
  2. 体验共享——技术实现瓶颈与突破
  3. 单元测试技巧:创建描述性测试
  4. hdu 2570 贪心
  5. 算法--库函数实现全排列
  6. 安装MYSQL出现checking for termcap functions
  7. 5-vue-template模板制作
  8. 中条码一般为四色怎么转单色黑_条码机适用的耗材判断标准
  9. extremeComponents资料
  10. 本地局域网(内网)远程连接报错0x112f的一种解决方案-由于一个协议错误(代码: 0x112f),远程会话将被中断。请重新跟远程计算机连接
  11. 信息安全-保研面试经历总结
  12. 英国沦陷了!2014年英国婴儿名top10,穆罕默德意外夺魁
  13. MySQL数据库操作练习题-各种操作掌握MySQL查询操作
  14. 用SAPI做一个聊天模拟器
  15. 北航c语言程序设计大一期末题库,北航2016C语言|程序设计题七
  16. FM加上RDS前途远大
  17. 常用离子液体有哪些?粘度和密度是多少?(解答)
  18. 小清新毕业论文答辩PPT (2)
  19. 齐鲁师范学院计算机专业春考分数线,2019齐鲁师范学院各专业录取分数线汇总...
  20. Deepin安装Wireshark

热门文章

  1. 用来mysql备份的是什么意思_什么是数据库备份
  2. 酷雷曼VR全景助力新疆兵团“走进”云上文博会
  3. IOS开发之——画板-清屏/撤销/橡皮擦/保存(88)
  4. Homekit智能家居一智能吸顶灯
  5. 任天堂Switch迷你便携底座方案
  6. 用80%的图表满足日常工作,用剩下20%的图表建立核心竞争力!
  7. Qt仿QQ截图之QTextEdit宽高自适应
  8. 微软软件 - Office Accounting
  9. LaTex中对\begin{itemize}或\begin{enumerate}中的各项新的段落增加缩进
  10. Linux删除安卓温控,玩机高手不容错过!体积仅1M的神级安卓工具箱