- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
weblogic线程快照threaddump分析
Java 的线程线程是指能独立于程序的其它部分运行的执行单元。 JAVA语言能够很好的实现多线程的程序。我们在调试程序,或者在开发后期需要做性能调优的时候,往往也需要了解当前程序正在运行的线程的状态,正在执行的操作,从而分析系统可能存在的问题。 在阅读本文之间,应对 Java线程的编程原理,同步机制有一定了解 . 产生 JAVA线程 dumpJAVA 的线程 DUMP,就象当前 JAVA进程的一个快照,打印出所有线程的状态和调用堆栈,以及 Monitor的状态。在不同的操作系统下,产生线程 DUMP的方式是不同的。 ??? ?? ?? ? 在启动程序的控制台里敲: Ctrl - Break,线程的 dump会产生在标准输出中( 缺省标准输出就是控制台,如果对输出进行了重定向,则要查看输出文件)。 在 unix, linux和 MacOS 环境中,??? ??? ??? 在控制台中敲: Ctrl-\,或者, ??? ??? ??? 用 “kill -3 pid” ,或者 “kill – QUIT pid”。 Pid是用所关注的 JAVA进程号,您可以用 “ps -ef | grep java” 找到,或者使用 JDK 5.0中的 “jps -v” 命令获得。 在各个操作系统平台,都可以用 JDK 5.0工具包中的 jstack pid这里要注意的是: 1.???? 不同的 JAVA虚机的线程 DUMP的创建方法和文件格式是不一样的,不同的 JVM版本, dump信息也有差别。本文中,只以 SUN的 hotspot JVM 5.0_06 为例。 2.???? 在实际运行中,往往一次 dump的信息,还不足以确认问题。建议产生三次 dump信息,如果每次 dump都指向同一个问题,我们才确定问题的典型性。 线程分析 :1.???? JVM 线程 在线程中,有一些 JVM内部的后台线程,来执行譬如垃圾回收,或者低内存的检测等等任务,这些线程往往在 JVM初始化的时候就存在,如下所示: ??????? Low Memory Detector daemon prio=10 tid=0x081465f8 nid=0x7 runnable [0.0 ??????? CompilerThread0 daemon prio=10 tid=0x08143c58 nid=0x6 waiting on condition [0.0xfb5fd798] ??????? Signal Dispatcher daemon prio=10 tid=0x08142f08 nid=0x5 waiting on condition [0.0 ??????? Finalizer daemon prio=10 tid=0x08137ca0 nid=0x4 in Object.wait() [0xfbeed000..0xfbeeddb8] ??????? at java.lang.Object.wait(Native Method) ??????? - waiting on 0xef600848 (a java.lang.ref.ReferenceQueue$Lock) ??????? at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) ??????? - locked 0xef600848 (a java.lang.ref.ReferenceQueue$Lock) ??????? at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132) ??????? at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) ??????? Reference Handler daemon prio=10 tid=0x081370f0 nid=0x3 in Object.wait() [0xfbf4a000..0xfbf4aa38] ??????? at java.lang.Object.wait(Native Method) ??????? - waiting on 0xef600758 (a java.lang.ref.Reference$Lock) ??????? at java.lang.Object.wait(Object.java:474) ??????? at
文档评论(0)