Jstat pid not found

来源:互联网 发布:java逻辑 编辑:程序博客网 时间:2024/05/22 00:24

Java应用内存异常,有一些问题,想看一下gc的情况

  • ps -ef | grep java
$ ps -ef | grep javatomcat    7334     1 26 17:22 ?        00:02:22 /usr/java/jdk1.7.0_80/jre/bin/java -Xms2048M -Xmx4096M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=512M -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:/var/log/tomcat/gc.log -server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787 -Djava.security.egd=file:/dev/./urandom -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap starttomcat    7480  7452  0 17:31 ?        00:00:00 grep java
  • jstat -gc pid
# ./jstat -gc 7334 1000 107334 not found

看一下Java启动的时候是否生成hsperfdata_user/{pid}形式的文件

# ll /tmp/total 0drwxr-xr-x 2 root   root   40 Sep  7 17:34 hsperfdata_rootdrwxr-xr-x 2 tomcat tomcat 60 Sep  7 17:31 hsperfdata_tomcat

/tmp文件目录当中有两个目录hsperfdata,一个是root用户的,一个是tomcat用户的;

# ./jps -l7516 sun.tools.jps.Jps7334 -- process information unavailable

执行jps -l 发现真正的java进程7334提示 process information unavailable,说明root用户没有连接当前进程的权限;而在执行jstat的时候,自动生成了/tmp/hsperfdata_root的文件目录,而些目录下面没有{pid}文件夹

# ll /tmp/hsperfdata_root/total 0
  • 切换至tomcat用户
# su tomcat -s /bin/bash$ ./jstat -gc 7334          S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT   10240.0 11264.0  0.0   1184.1 239104.0 76313.1  1835008.0   420179.9  262144.0 119718.2     85    1.598   0      0.000    1.598