不同版本操作系统生成java进程dump的方法及相关解读.docVIP

不同版本操作系统生成java进程dump的方法及相关解读.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
不同版本操作系统生成java进程dump的方法及相关解读

不同版本操作系统生成java进程dump的方法及相关解读 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或者Threaddump文件中应用服务器Web容器的常见线程状态: Idle线程:一个已经准备好接受请求的线程,但是没有和插件或者客户端建立连接 Keep-Alive线程:是一个已经准备好接受请求的线程,并且已经和插件或者客户端建立连接

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档