Jstack 在正常工作两周后失败

Jstack fails after two weeks of normal work

我已根据 java:7-jdk docker 图像 docker 化 tomcat 7.0.73。

我有一份工作,每 5 分钟使用命令 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 一直工作正常。 Space 看起来也正确。

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

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