jstack命令执行报错,报错如下
~ jstack 28604
28604: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
此时可能是说明 28604
进程不是此用户启动的。
- 通过ps命令可以查看到这个进程 然后切换到此用户下面。
- 切换到/tmp目录,查找是否有此用户的以
hsperfdata_用户名
的目录 - 进目录看有没有jstack执行的进程号, 如果有,则直接使用
jstack pid
执行即可。如果没有,不要浪费时间了。执行不了的。可能会报not permited
或上述错误。
~ jstack 13179 | more
2019-06-13 17:15:44
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.60-b23 mixed mode):
"Attach Listener" #137 daemon prio=9 os_prio=0 tid=0x00002b7b64001000 nid=0x3db4 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Windows IOHub Watcher for IOHub#1: Selector[keys:0, gen:0] / Computer.threadPoolForRemoting [#4]" #90 daemon prio=5 os_prio=0 tid=0x00002b7bc00f7800 nid=0x340c in Object.wait() [0x00002b7c
1c402000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.jenkinsci.remoting.protocol.IOHub$IOHubSelectorWatcher.run(IOHub.java:549)
- locked <0x00000007a8e31928> (a java.lang.Object)
at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
"IOHub#1: Selector[keys:0, gen:0] / Computer.threadPoolForRemoting [#3]" #89 daemon prio=5 os_prio=0 tid=0x00002b7bc00f6000 nid=0x340b runnable [0x00002b7c1cf0d000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
...........................
- 然后再通过
jstat -gcutil pid 时间间隔(ms)
查看 jc 信息
jstat -gcutil 13179 1000
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
99.95 0.00 49.14 14.96 91.97 84.24 10 0.444 3 0.317 0.761
99.95 0.00 49.14 14.96 91.97 84.24 10 0.444 3 0.317 0.761
99.95 0.00 49.14 14.96 91.97 84.24 10 0.444 3 0.317 0.761
99.95 0.00 49.14 14.96 91.97 84.24 10 0.444 3 0.317 0.761
99.95 0.00 49.14 14.96 91.97 84.24 10 0.444 3 0.317 0.761
99.95 0.00 49.14 14.96 91.97 84.24 10 0.444 3 0.317 0.761
99.95 0.00 49.14 14.96 91.97 84.24 10 0.444 3 0.317 0.761
99.95 0.00 49.14 14.96 91.97 84.24 10 0.444 3 0.317 0.761
.........
其中: S0:年轻代第一个幸存区(survivor)使用容量占用百分比
S1:年轻代第二个幸存区(survivor)使用容量占用百分比
E:年轻代伊甸园区(eden)使用容量占用百分比
O:老年代使用容量占用百分比
P:perm代使用容量占用百分比(JDK7-)
M:MetaSpace元空间使用容量占用百分比(JDK8+)
CCS:压缩使用比例
YGC:从应用程序启动到当前采样时年轻代gc的次数
YGCT:从应用程序启动到当前采样时年轻代gc的时间
FGC:从应用程序启动到当前采样时老年代gc的次数
FGCT:从应用程序启动到当前采样时老年代gc的时间
GCT:从应用程序启动到当前采样时gc总耗时