Jstat pid not found

Java應用內存異常,有一些問題,想看一下gc的情況

  • ps -ef | grep java
$ ps -ef | grep java
tomcat    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 start
tomcat    7480  7452  0 17:31 ?        00:00:00 grep java
  • jstat -gc pid
# ./jstat -gc 7334 1000 10
7334 not found

看一下Java啓動的時候是否生成hsperfdata_user/{pid}形式的文件

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

/tmp文件目錄當中有兩個目錄hsperfdata,一個是root用戶的,一個是tomcat用戶的;

# ./jps -l
7516 sun.tools.jps.Jps
7334 -- 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章