概述
给定一个系统定位问题的时候,只是、经验是关键基础,数据时依据,工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常对战、GC日志、线程快照(threaddump/jvacore文件)、堆转存储快照(headdump/hprof文件)等。
JDK的命令行工具
解决liunx下jstat无法查看虚拟机状态的问题:连接。
启动后,这时候使用jstat查看该tomcat的状态提示pid not found,使用jps也没有这条信息,但是ps查看明明就有,顿时感觉很坑爹.
一顿查找资料后,逐步解决.
首先java进程会向/tmp里写文件,路径为hsperfdata$user/$pid,如果在tmp下没有这个文件jps就会查找不到这个线程.如果tmp下的java临时文件有误就会提示xx – process information unavailable,这时候把tmp下hsperfdata这样的都删了,然后重启java程序,再使用jps就能正常输出结果了.
然后tomcat的catalina.sh里开头设置CATALINA_TMPDIR=/tmp,这样下面的脚本执行-Djava.io.tmpdir=\”$CATALINA_TMPDIR\” \,这样就可以达到效果是加上java参数-Djava.io.tmpdir=/tmp.
这时候重启tomcat后,输入jstat -gcutil pid,就可以显示jvm的情况了