标签: jstat

Sun Java jstat不起作用..有时候!

我经常使用jstat来获取GC相关的统计信息.但是,有时候我根本无法从JVM获取任何统计信息.它只是说它无法找到进程ID,即使它是正确的id.

挖掘稍微深一点,似乎与"/ tmp/hsperfdata"相关文件有关.在具有此目录/文件的服务器上,jstat按预期工作(jps也显示正确的实例).在它失败的服务器/实例上,我没有看到"/ tmp/hsperfdata"目录(并且jps不报告pid).

有没有其他人遇到这个?我在某地读到需要正确设置TMP变量,但我没有看到它工作的服务器帐户和不工作的服务器帐户之间的环境设置有任何差异.

garbage-collection jvm sun jstat

5
推荐指数
1
解决办法
2078
查看次数

在docker容器中不能jcmd,jps或jstat cassandra进程

    $ jcmd -l 
    418 sun.tools.jcmd.JCmd -l

    $ jstat -gcutil -t 10 250ms 1
    10 not found
Run Code Online (Sandbox Code Playgroud)

我知道jdk中有关将jstat作为root连接到以不同用户身份运行的进程的错误.

这里,这个docker容器有一个用户root,从ps命令可以看出,cassandra在root下运行.

 $ whoami
 root
Run Code Online (Sandbox Code Playgroud)

我试图做以下事情: $ sudo -u root jcmd -l

任何帮助表示赞赏.

Docker容器是debian:jessie运行java版本:openjdk版本"1.8.0_66-internal"

这是ps -ef的输出:

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 17:40 ?        00:00:00 /bin/bash /run.sh
root        10     1 11 17:40 ?        00:02:25 java -ea -javaagent:/usr/share/c
root       375     0  0 17:49 ?        00:00:00 bash
root       451   375  0 18:00 ?        00:00:00 ps -ef
Run Code Online (Sandbox Code Playgroud)

旁白:jstack成功转储了线程的堆栈跟踪.

linux jvm jstat

5
推荐指数
1
解决办法
3383
查看次数

jstat -gcmetatcapacity 输出 MCMX 值似乎无关紧要

我正在运行jvm (java 8)带有参数“ -XX:MetaspaceSize=256M and -XX:MaxMetaspaceSize=256M”的。当我执行“ jstat -gcmetacapacity <PID>”时,它输出,

  MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT   
       0.0  1157120.0   122880.0        0.0  1048576.0    14336.0   499     5    1.131   12.653
Run Code Online (Sandbox Code Playgroud)

我希望既MCMNMCMX256M

这看起来类似于错误http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8077987。但它已被 MC 的文档修复所关闭。我希望它是 jstat 错误并且 java 配置是正确的。有没有其他方法可以确认这一点?

爪哇版

java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud)

java jstat java-8

5
推荐指数
1
解决办法
998
查看次数

jstat 和 jcmd 对元空间内存给出不同的答案

我目前正在调查压缩类空间问题。我知道问题是什么,但在调查时,我注意到这一点jstat -gc ...,并jcmd ... GC.heap_info给出了不同数量的元空间和压缩类空间容量和使用情况:

\n\n
\xe2\x96\xb6 jcmd 32152 GC.heap_info\n32152:\n PSYoungGen      total 153600K, used 129316K [0x00000000eab00000, 0x00000000f5b00000, 0x0000000100000000)\n  eden space 137728K, 91% used [0x00000000eab00000,0x00000000f26abf48,0x00000000f3180000)\n  from space 15872K, 16% used [0x00000000f4100000,0x00000000f439d428,0x00000000f5080000)\n  to   space 15872K, 0% used [0x00000000f3180000,0x00000000f3180000,0x00000000f4100000)\n ParOldGen       total 290816K, used 21446K [0x00000000c0000000, 0x00000000d1c00000, 0x00000000eab00000)\n  object space 290816K, 7% used [0x00000000c0000000,0x00000000c14f1ac0,0x00000000d1c00000)\n Metaspace       used 59690K, capacity 64980K, committed 65192K, reserved 1103872K\n  class space    used 9289K, capacity 10116K, committed 10152K, reserved 1048576K\n\n\xe2\x96\xb6 jstat -gc 32152\n S0C    S1C    S0U    S1U …
Run Code Online (Sandbox Code Playgroud)

java jvm jstat metaspace jcmd

5
推荐指数
1
解决办法
1302
查看次数

如何读取“jstat -gcutil &lt;PID&gt;”的输出?

我正在运行 JBoss 服务器,以下输出属于 -gcutil 工具。我很好奇这个缩写是什么。

/usr/java/jdk1.7.0_25/bin/jstat  -gcutil 47929 
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
  0.00   0.00  68.46 100.00  57.08  44539 5829.704 303497 241552.104 247381.808
Run Code Online (Sandbox Code Playgroud)

谢谢

java memory garbage-collection heap-memory jstat

4
推荐指数
1
解决办法
8364
查看次数

基于 Putty SSH 隧道的 VisualVM

我正在尝试分析远程 Java 应用程序,实际上它是一个游戏服务器。它在我的本地机器(带有 JDK1.7.0_02 x64 的 Windows XP x64)上正常工作,但在生产服务器(带有 JDK1.7.0_03 i586 的 CentOS)上表现得非常奇怪。

我做了很多搜索,发现我应该使用 VisualVM 来完成这项任务。所以 VisualVM 在本地机器上运行良好,但在本地机器上没有挂起,我需要在生产环境中使用真实有效负载进行分析。我用参数在远程机器上启动了 jstatd

jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.logCalls=false &
Run Code Online (Sandbox Code Playgroud)

与策略文件

grant codebase "file:/usr/java/jdk1.7.0_02/lib/tools.jar" {
    permission java.security.AllPermission;
};
Run Code Online (Sandbox Code Playgroud)

然后我像这样启动了我的 Java 应用程序

java -server -Dcom.sun.management.jmxremote\
 -Dcom.sun.management.jmxremote.port=4000\
 -Dcom.sun.management.jmxremote.ssl=false\
 -Dcom.sun.management.jmxremote.authenticate=false\
 -jar /home/pinballSocketServer/pinballSocketServer.jar
Run Code Online (Sandbox Code Playgroud)

application 和 jstatd 都以 root 权限启动。

并且 VisualVM 无​​法连接到远程主机。但是在远程主机上,我看到以下日志,而 VisualVM 正在运行并添加了远程主机:

Feb 16, 2012 7:11:52 PM sun.rmi.server.UnicastServerRef logCall
FINER: RMI TCP Connection(3)-217.16.27.195: [217.16.27.195: sun.rmi.registry.RegistryImpl[0:0:0, 0]: java.rmi.Remote lookup(java.lang.String)]
Feb 16, 2012 7:11:56 PM sun.rmi.server.UnicastServerRef logCall
FINER: RMI TCP Connection(3)-217.16.27.195: …
Run Code Online (Sandbox Code Playgroud)

jmx visualvm socks jstat ssh-tunnel

3
推荐指数
1
解决办法
1万
查看次数

查找运行实例的VMID

我有一个在tomcat上运行的webapp,我想在运行时使用jstat查看垃圾收集.

我有命令:

jstat.exe -gc <vmid> 1000
Run Code Online (Sandbox Code Playgroud)

我该怎么找到它vmid是什么?

garbage-collection jstat vmid

3
推荐指数
1
解决办法
7681
查看次数

bash:jstat:找不到命令

我想使用gc实用程序来分析我的Cassandra数据库的垃圾回收。但是当我运行jstat命令时,输出结果是找不到bash:jstat:命令。我搜索发现jstat位于$ JAVA_HOME / bin中,但我不知道$ JAVA_HOME / bin在哪里。我想知道如何开始使用jstat?

java cassandra jstat

3
推荐指数
1
解决办法
9510
查看次数

如果不推荐使用jstat,我应该使用什么呢?

突然间我发现这jstat 是不赞成的:

jstat工具显示已检测的HotSpot Java虚拟机(JVM)的性能统计信息.目标JVM由其虚拟机标识符或下面描述的vmid选项标识.

注意:此实用程序不受支持,可能在J2SE SDK的未来版本不可用.它目前在Windows 98和Windows ME平台上不可用.

我在Windows上没有开发任何东西多年,但问题是 - 我应该使用什么,现在哪个工具(或一组工具)被认为是我可以使用的那种监控的最佳替代品jstat

更新:最好使用纯CLI工具.

java jstat

2
推荐指数
1
解决办法
5778
查看次数

如何使用jstat获取堆使用?

我正在运行jstat -gc(来自OpenJDK):

# jstat -gc 1
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
287744.0 290304.0 88368.6  0.0   1469440.0 787186.5 2162176.0  1805969.7  945432.0 923880.4 136576.0 133284.0    268   32.797  21     30.089   62.886
Run Code Online (Sandbox Code Playgroud)

如何阅读:

  1. 用过的堆

  2. 堆大小

  3. 最大堆

从这个输出,就像VisualVM所示?

java heap-memory jstat

2
推荐指数
1
解决办法
1万
查看次数