Jstack терпит неудачу после двух недель нормальной работы
Я докернизировал Tomcat 7.0.73 на основе java:7-jdk
изображение докера.
У меня есть работа, которая каждые 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 продолжает работать нормально. Пространство тоже выглядит правильно.
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
1 ответ
Я подозреваю, что процесс может очищать старые файлы в /tmp
и он принимает соответствующие /tmp/.java_pid
файл сокета с ним (который требуется такими утилитами, как jstack). В следующий раз, когда это произойдет, посмотрите, есть ли соответствующий файл, если нет, то это ваша проблема.