分析Java代码问题的有效的工具 java thread dump

分析Java代码问题的最有效的工具仍然是java thread dump,对于support人员来说尤其重要,原因:
- 任何操作系统平台下都可以使用。
- 在多数情况下,可以在生产环境中使用。
- 和操作系统提供的工具相比,java thread dump给出的信息是直白的,直接对应到应用代码。
- 它对被分析的系统干扰很小,因此能反应真实的问题。而其它很多profiling或Instrument工具本身对JVM运行有很大的干扰,经常不能暴露出真正的问题,而且这种工具不能用于生产系统。

收集thread dump
1. Unix/Linux:
kill -3 <JVM pid>,对于在当前控制台运行的JVM,在console窗口敲Ctrl-\

2. 在Solaris OS下:
<ctrl>-’’ (Control-Backslash)
kill -QUIT <pid>

3. 在AIX上用IBM的JVM:
内存溢出时默认地会产生javacore文件(关于cpu的)和heapdump文件(关于内存的)。如果没有参照下列方法:
选择一个cluster成员,设置环境变量:
export IBM_HEAPDUMP=true
export IBM_HEAP_DUMP=true
export IBM_HEAPDUMP_OUTOFMEMORY=true
export IBM_HEAPDUMPDIR=<directory path>
用set命令检查参数设置,确保没有设置DISABLE_JAVADUMP

4. 在Windows下:
可以在JVM的console窗口上敲Ctrl-Break,只能得到当前窗口运行JVM的 thread dump,无法得到后台运行的jvm的thread dump。

根据不同的设置,thread dump会输出到当前控制台上或应用服务器的日志里。为了方便获取threaddump信息,最好将标准输出重定向到一个文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值