$ jcmd -l
418 sun.tools.jcmd.JCmd -l
$ jstat -gcutil -t 10 250ms 1
10 not found
我知道 jdk 中的错误与将 jstat 作为 root 附加到以不同用户身份运行的进程有关。
在这里,这个 docker 容器有一个 root 用户,从下面的 ps 命令可以看出,cassandra 在 root 下运行。
$ whoami
root
我尝试执行以下操作: $ 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
另外:jstack 成功地转储了线程的堆栈跟踪。