ThreadDump 的获取与分析工具

如何将介绍几种获取ThreadDump的方法,以及ThreadDump的分析工具。

1)在Java程序的运行会话中,使用下面方式:

Unix、Linux:CTRL-\

Windows:CTRL-BREAK

2) 方式1)要求是在Java程序的会话中才可以,如果不是在Java程序的会话中,如何做呢?

使用Jdk中提供Jstack工具,即jstack pid,这个不论Windows还是Linux都是可以的。如果不想使用这个工具或者没有安装这个工具,还可以使用下面的命令:

Linux:kill -3 pid

Windows:SendSignal.exe pid

需要说明的是:kill -3 pid 是Linux中的Shell程序,而Windows中使用的SendSignal.exe是一位名为Louis的牛人写的一个工具,其实就是模拟了CTRL-BREAK。

SendSignal.exe工具以及源码下载

3)有时候,你可能没有进程的访问权限,例如的Linux中多用户情况下,要获取ThreadDump怎么办呢?

只能通过写Java程序获取了,提示一点,可以使用JMX来完成。

java.lang域下有一个Threading#dumpAllThreads(boolean, boolean)方法,通过这个方法就可以直接拿到ThreadDump信息。

4)如果你是想要看看你的应用程序为何吃内存特别厉害,或者频繁卡死等等不正常现象,要想找出原因的话,你也可以使用jconsole、jvisualvm、jprofile 来获取ThreadDump以及HeapDump,并加以分析。当然了,如果你是一个Java Developer,你也可以使用Eclipse提供的Memory Analyzer Tool (MAT)来替代这些工具。

另外,还有一个工具:ThreadDumpViewer,这个工具比较少见,也是一个免费的用于分析ThreadDump的工具。这里也它的下载地址

5)如果你是开发服务器应用程序、或者其他的运维相关的应用程序,要给大家提供查看ThreadDump信息时,肯定是要通过程序来控制了,此时就比较灵活了:

A:可以使用3)的方式

B:也可以使用Java Runtime API执行命令的方式执行上面2)中提到的那些命令来完成。

时间: 2024-07-30 10:02:48

ThreadDump 的获取与分析工具的相关文章

开源项目成熟度分析工具-利用github api获取代码库的信息

1.github api github api是http形式的api,功能还是比较丰富的,博主因为项目的原因主要用到的是提取project信息这项功能,返回的数据是JSON格式. api页:https://developer.github.com/v3/ Options: (H) means HTTP/HTTPS only, (F) means FTP only --anyauth Pick "any" authentication method (H) -a, --append Ap

Java线程栈的获取和分析

获取进程号 使用命令:jps 常用参数: -m 输出传递给main方法的参数,如果是内嵌的JVM则输出为null. -l 输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径. -v 输出传给JVM的参数. 示例: 线程栈的获取 使用命令:jstack,通常使用管道将信息输出到文件,便于分析 常用参数: -F 当jstack没有响应的时候强制打印栈信息. -l 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表. -m

MySQL监控、性能分析——工具篇

MySQL越来越被更多企业接受,随着企业发展,MySQL存储数据日益膨胀,MySQL的性能分析.监控预警.容量扩展议题越来越多.“工欲善其 事,必先利其器”,那么我们如何在进行MySQL性能分析.监控预警.容量扩展问题上得到更好的解决方案,就要利用各种工具来对MySQL各种指标进行分 析.本文是读书笔记,下面提及的工具,读者可能都用过,或打算准备是使用.MySQL服务器的发布包没有包含那些能完成许多常见任务的工具,例如监控服务器的工具.比较服务器间数据的工具.我们把这些工具分成以下几类:界面.监

JS内存泄漏 和Chrome 内存分析工具简介(摘)

原文地址:http://web.jobbole.com/88463/ JavaScript 中 4 种常见的内存泄露陷阱 原文:Sebastián Peyrott 译文:伯乐在线专栏作者 - ARIGATO 链接:http://web.jobbole.com/88463/ 点击 → 了解如何加入专栏作者 了解 JavaScript 的内存泄露和解决方式! 在这篇文章中我们将要探索客户端 JavaScript 代码中常见的一些内存泄漏的情况,并且学习如何使用 Chrome 的开发工具来发现他们.读

Java线程Dump分析工具--jstack

jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:      jstack [-l][F] pid      如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题.另外,jstack工具还可

m3u8和HLS分析工具

HLS即HTTP Live Streaming的缩写,是由苹果公司(apple)提出的一种流媒体播出协议.iOS终端(iPhone.iPad.iPod等)以及Android终端都支持该协议.Android和iOS终端对HLS协议的支持是系统内置的,不需要开发额外的组件,通过HTML5网页和系统播放器可以直接播放HLS视频流. m3u8是HLS协议的播出索引文件,是HLS协议的播放列表(Playlist),文件内容是utf-8编码的文本数据.HLS协议的播出内容是分片分发的,视频文件(或视频流)会

55个最实用大数据可视化分析工具

该文转自[IT168 技术] 近年来,随着云和大数据时代的来临,数据可视化产品已经不再满足于使用传统的数据可视化工具来对数据仓库中的数据抽取.归纳并简单的展现.传统的数据可视化工具仅仅将数据加以组合,通过不同的展现方式提供给用户,用于发现数据之间的关联信息.新型的数据可视化产品必须满足互联网爆发的大数据需求,必须快速的收集.筛选.分析.归纳.展现决策者所需要的信息,并根据新增的数据进行实时更新.因此,在大数据时代,数据可视化工具必须具有以下特性: (1)实时性:数据可视化工具必须适应大数据时代数

linux程序分析工具介绍(一)—-”/proc”

写在最前面:在开始本文之前,笔者认为先有必要介绍一下linux下的man,如果读者手头用linux系统,直接在终端输入man man便可以看到详细的说明,我在这里简单的总结一下,man命令是用来查看linux下各种命令.工具等的用户手册(manual)的.一种比较常用的用法是"man n field",这里的n是要查找的手册了类型,field是关键字.在这里介绍一下n: 0 /usr/include下的头文件 1 可执行程序和shell命令 2 系统调用 3 系统库函数 4 /dev下

node.js基础模块http、网页分析工具cherrio实现爬虫

node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherrio. 使用http直接获取url路径对应网页资源,然后使用cherrio分析. 这里我主要学习过的案例自己敲了一遍,加深理解.在coding的过程中,我第一次把jq获取后的对象直接用forEach遍历,直接报错,是因为jq没有对应的这个方法,只有js数组可以调用. 二.知识点    ①:supera