李成笔记网

专注域名、站长SEO知识分享与实战技巧

jstack Unable to open socket file异常处理方法

1.问题

某台服务器出现假死的现象,服务进程在,但是就是不工作。于是想定位下,先看了下服务器本身的状态都是OK的,然后看下服务的状态,先执行如下的命令,发现服务是存在的,如下:

执行jps -ml输出如下:

然后执行jstack 2276,报出如下的错误:

2276: 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

2.解决

~ 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)
...........................
  1. 然后再通过 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总耗时

3.结论

jstack需要使用与进程一致的用户才能执行

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言