2

我已经基于 docker image dockerized tomcat 7.0.73 java:7-jdk

我有一项工作,每 5 分钟使用 command 进行线程转储jstack 1。它正常工作大约两周,然后崩溃并显示消息:

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 退出代码为 1。

这种行为的原因可能是什么?

JVM 继续正常工作。空间看起来也正确。

java -version java version "1.7.0_111" OpenJDK Runtime Environment (IcedTea 2.6.7) (7u111-2.6.7-2~deb8u1) OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)

Filesystem Size Used Avail Use% Mounted on /dev/mapper/docker-202:1-xxx 10G 1013M 9.1G 10% / tmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/xvda1 99G 68G 31G 69% /tmp shm 64M 0 64M 0% /dev/shm

4

1 回答 1

2

我怀疑一个进程可能正在清除 中的旧文件/tmp,并且它正在使用相关的/tmp/.java_pid套接字文件(这是 jstack 等实用程序所必需的。)下次它发生时查看相关文件是否仍然存在 - 如果没有,那是你的问题。

于 2017-11-13T17:41:26.013 回答