java故障排查ThreadDump.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java故障排查ThreadDump

Thread Dump是非常有用的诊断 Java 应用问题的工具,每一个 Java 虚拟机都有 及时生成显示所有线程在某一点状态的 thread-dump 的能力。虽然各个 Java 虚 拟机 thread dump 打印输出格式上略微有一些不同,但是 Thread dumps出来的 信息包含线程;线程的运行状态、标识和调用的堆栈;调用的堆栈包含完整的类 名,所执行的方法,如果可能的话还有源代码的行数。 Thread Dump特点: ? 能在各种操作系统下使用 ? 能在各种 Java应用服务器下使用 ? 可以在生产环境下使用而不影响系统的性能 ? 可以将问题直接定位到应用程序的代码行上 Thread Dump能诊断的问题包括: ? 查找内存泄露,常见的是程序里 load大量的数据到缓存 ? 发现死锁线程 Sun的 JVM 用下列方法可以产生 Thread Dump 堆栈信息: 1,Solaris OS ctrl-’\’ (Control-Backslash) kill -QUIT pid 2, HP-UX/UNIX/Linux Kill -3 PID PID通过下面方法获取 ps -efHl | grep java **. ** 3,Windows 直接对 MSDOS 窗口的程序按 Ctrl-break 有些 Java 应用服务器是在控制台上运行,如 Weblogic,为了方便获取 threaddump 信息,在 weblogic 启动的时候,最好将其标准输出重定向到一个文 件,用nohup sh startWebLogic.sh start.log 命令,执行kill -3 pid,Stack trace 就会输出到 start.log 里。Tomcat 的 Thread Dump 会输出到命令行控制台 或者 logs 的 catalina.out 文件里。为了反映线程状态的动态变化,需要接连多次 做 thread dump,每次间隔 10-20s。 IBM JVM下产生 Thread Dump: 在 AIX 上用 IBM 的 JVM,内存溢出时默认地会产生 javacore 文件(关于 cpu 的)和 heapdump 文件(关于内存的)。如果没有参照下列方法: 1 choose one cluster member, set the following before this server start: 在 was 启动前设置下面环境变量(可以加在启动脚本中) export IBM_HEAPDUMP=true export IBM_HEAP_DUMP=true export IBM_HEAPDUMP_OUTOFMEMORY=true export IBM_HEAPDUMPDIR=directory path 2 please use set command to make sure you do not have DISABLE_JAVADUMP parameter then start this cluster member. 用 set 命令检查参数设置,确保没有设置 DISABLE_JAVADUMP,然后启动 server 3 when you find free memory 50% when no heavy access, please run kill -3 pid 执行 kill -3 pid命令可以生成 javacore 文件和 heapdump 文件(pid为was java 进程的 id 号,可以用 ps -ef|grep java 查到),可以多执行几次,按照下面操作 进行 ps -ef psef1.txt ps aux psaux1.txt vmstat 5 10 vmstat.txt kill -3 app server id wait for 2 mins kill -3 app server id wait for 2 mins kill -3 app server id netstat -an netstat2.txt ps -ef psef2.txt ps aux psaux2.txt 将上面产生的 txt 文件和/usr/WebSphere/AppServer/javacore*文件和 heapdump 文件拷贝到本地,然后删除这些文件,因为这些文件会占用较大的文 件系统空间。 将/usr/WebSphere/AppServer/logs/wlmserver1(或 2)目录下当天产生的日志拷 贝出来 在 IBM JVM 产生的 javacore

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档