Linux/Unix

1. Find the Java/Tomcat process id.

% ps ax | grep java

You should see output like this

17207 ?        Sl    78:36 /usr/java/default/bin/java -Djava.util.logging.config.file=/usr/tomcat/tomcat6/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xmx1024M -Xms128M -XX:MaxPermSize=256M -Djava.awt.headless=true -Djava.endorsed.dirs=/usr/tomcat/tomcat6/endorsed -classpath :/usr/tomcat/tomcat6/bin/bootstrap.jar -Dcatalina.base=/usr/tomcat/tomcat6 -Dcatalina.home=/usr/tomcat/tomcat6 -Djava.io.tmpdir=/usr/tomcat/tomcat6/temp org.apache.catalina.startup.Bootstrap start

2. Execute the following command to generate a thread dump

 % kill -3 <pid>

Run this command every 5-10 seconds, 5 times.

3.The thread dump is written to the standard output.  It may logged in the console or <tomcat>/logs/stdout or <tomcat>/logs/catalina.out.

4. If you are running JDK 6.0+, you may also use jstack to produce a thread dump.

 % jstack -l <pid> > threaddump.txt
or
% jstack <pid> > threaddump.txt

Windows

Running as a Windows service

1a. If installed using Tomcat installer, click All Programs ->Apache Tomcat 6.0->Monitor Tomcat. An icon should appear in task bar.

1b. If not installed using Tomcat installer, navigate to <tomcat>/bin, and run the following command

 % tomcat7.exe //MS//Tomcat7

The Tomcat monitor icon should appear in the system tray.;

2. Right click the the icon and select Thread Dump.

Run this command every 5-10 seconds, 5 times

3. Look for the thread dump in  <tomcat>/logs/stdout or <tomcat>/logs/catalina.out.

Running from startup.bat

1. Open "Windows Task Manager",

2. Find the process ID of the java process

3. Make sure <JDK>/bin is in your command path. Otherwise, navigate to <JDK>/bin

4. Execute the following command to generate a thread dump

 % jstack -l <pid> >  threaddump.txt

Run this command every 5-10 seconds, 5 times

If you receive an error running jstack such as the below, then you may need to use psexec:

7988: Insufficient memory or insufficient privileges to attach
The -F option can be used when the target process is not responding
 
1. Download psexec from this website.
2. Unzip the 'PSTools' directory to a suitable place on your server.
3. Open a command prompt as Administrator and navigate to the location of the PSTools folder using the command prompt.
 
 
4. Open Task Manager > Services and find your Java (Tomcat) service and note down the PID number.
 

 5. At the command prompt type 'psexec -s [jdk path]\jstack.exe XXXX >> thread_dump_ddmmyy.log' (where XXXX is your PID and ddmmyy is the current date to append to the name of the log file) then hit enter. 
 
 

Run this command every 5-10 seconds, 5 times

You can also add the full path of your Java 'bin' directory to the server's system path variable. The Java 'bin' directory is usually in 'Program Files\Java\bin\jdk<version>\bin'.  If you add this path to the system variable then you will need to restart the command prompt again for the change to be picked up and the 'jstack' command to work.

reference from:
http://support.jamasoftware.com/entries/20535318-Performing-a-thread-dump-in-Linux-or-Windows

Performing a thread dump in Linux or Windows--reference的更多相关文章

  1. 013-程序性能分析之thread dump和heap dump

    一.dump基本概念 主要用于故障定位(尤其是out of memory)和性能分析.主要记录了JVM运行期间的内存占用.线程执行等情况,这就是常说的dump文件.常用的有heap dump和thre ...

  2. 性能分析之-- JAVA Thread Dump 分析综述

    性能分析之-- JAVA Thread Dump 分析综述       一.Thread Dump介绍 1.1什么是Thread Dump? Thread Dump是非常有用的诊断Java应用问题的工 ...

  3. [转]Java Thread Dump 性能分析

    Java and Thread 一个 web 服务器使用几十到几百个线程来处理大量并发用户,如果一个或多个线程使用相同的资源,线程之间的竞争就不可避免了,并且有时候可能会发生死锁. Thread co ...

  4. thread dump

    最近在做性能测试,需要对线程堆栈进行分析,在网上收集了一些资料,学习完后,将相关知识整理在一起,输出文章如下. 一.Thread Dump介绍 1.1什么是Thread Dump? Thread Du ...

  5. 如何抓取Thread Dump小结(转)

    当系统性能出现问题时,需要从各个方面来查看网络环境.主机资源.查看最经变更的代码等.如果是想从代码层面解决问题,那么最有效的方法就是查看相关dump文件.如果是使用IBM JDK(我默认你是在aix环 ...

  6. Thread Dump 和Java应用诊断(转)

    Thread Dump 和Java应用诊断 Thread Dump是非常有用的诊断Java应用问题的工具,每一个Java虚拟机都有及时生成显示所有线程在某一点状态的thread-dump的能力.虽然各 ...

  7. java程序性能分析之thread dump和heap dump

    一.dump基本概念 在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题.这些文件记录了JVM运行期间的内存占用.线程执行等情况,这就是我们常说的 ...

  8. java jvm heap dump及 thread dump分析

    一.概念: 在进行java应用故障分析时,经常需要分析内存和cpu信息,也就说所谓的heap dump 和 thread dump heap dump: heap dump文件是一个二进制文件,需要工 ...

  9. [JAVA]JAVA章4 Thread Dump如何分析

    一.Thread Dump介绍 1.1什么是Thread Dump? Thread Dump是非常有用的诊断Java应用问题的工具.每一个Java虚拟机都有及时生成所有线程在某一点状态的thread- ...

随机推荐

  1. 【技术贴】解决 myeclipse打不开报错an error has occurred, see .

    方法1.右键选中快捷方式属性选项,在快捷方式页,目标一项最后加上-clean选项,如C:\MyEclipse6\eclipse.exe -clean. 然后重新启动一下MyEclipse. 方法2. ...

  2. hdu 4739

    一个超级超级水的题,不明白当时比赛的时候没有出来: 思路很简单,dfs暴力一下就行,枚举每个顶点,题目一共才20个点,就是20^4方的时间复杂度,完全可以承受: 代码: #include<cst ...

  3. java service

    http://www.regexlab.com/zh/jar2exe/demo1.htm http://www.zhangxinxu.com/wordpress/?p=1058 http://www. ...

  4. backbone csdn

    http://blog.csdn.net/the_fire/article/details/7444067 blog.csdn.net/the_fire/article/details/7445448 ...

  5. SDUT 2351 In Danger

    点我看题目 题意 : 有n个兵想要自杀,所以他们决定围成一个圈,从1开始一直环到n,然后每第2个开始自杀,但是有一个兵不想死,所以让你编程求出最后一个应该死的人的位置,这样的话就剩他自己他可以不自杀了 ...

  6. PS命令删除所有EXCHANGE2013内用户邮件

    因为在测试的时间产生了大量测试邮件,所以在正式上线前,要删除所有用户的邮件. 命令如下: Get-Mailbox | Search-Mailbox  -DeleteContent

  7. 【HDU 3435】 A new Graph Game (KM|费用流)

    A new Graph Game Problem Description An undirected graph is a graph in which the nodes are connected ...

  8. 【poj3693】Maximum repetition substring(后缀数组+RMQ)

    题意:给定一个字符串,求重复次数最多的连续重复子串. 传说中的后缀数组神题,蒟蒻真的调了很久才对啊.感觉对后缀数组和RMQ的模版都不是很熟,导致还是会有很多各种各样的小错误= = 首先,枚举重复子串的 ...

  9. http://www.cnblogs.com/xdp-gacl/p/4040019.html

    http://www.cnblogs.com/xdp-gacl/p/4040019.html

  10. 转载:java保留2位小数

    转载:http://blog.csdn.net/wj_j2ee/article/details/8560132 java保留两位小数问题: 方式一: 四舍五入  double   f   =   11 ...