Unable to open socket file: target process not responding or HotSpot VM not loaded The -F option ca

当使用 jmap 或 jstack 工具时,由于 Linux 的 tmpwatch 机制删除了 JVM 进程文件,导致 'Unable to open socket file' 错误。解决方案包括修改 tmpwatch 配置、调整 Tomcat 的 Djava.io.tmpdir 参数或升级 JDK 至修复此问题的版本。
摘要由CSDN通过智能技术生成

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

在用jstack工具查看jvm线程的运行情况时出现上述错误。就是因为该进程长时间没有启停,在/tmp/hsperfdata_‘username’/文件夹下的该进程文件被Linux自身的机制(tmp下面不能存放很多文件)删除,需重新启停。所以要注意/etc/cron.daily/tmpwatch改文件在生产的情况。否则出现内存泄漏,或者内存溢出时,很难排查,或者出现系统运行缓慢时,想要观察系统运行情况也没办法,再或者,想把现场保存至dump文件中,等待大神解决也不能做。
解决办法:
转载:http://zhangshaoxiong.blog.51cto.com/4408282/1310166

对线上服务器的java应用dump操作时发现,以下报错,不能dump。jps也获取不到java进程的pid。

jmap -dump:file=/data/dump/jvm_en.hprof 20176

20176: 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
重启后,jps可以获得该java进程的pid,jstack也可以dump线程。
而tomcat:
jdk1.6.24版本下的,jps、jstack都无法操作
jdk1.6.18版本可以执行jps、jstack。
二、原因分析
jvm运行时会生成一个目录hsperfdata_ U S E R ( USER( USER(USER是启动java进程的用户),在linux中默认是/tmp。目录下会有些pid文件,存放jvm进程信息。
jps、jstack等工具读取/tmp/hsperfdata_ U S E R 下 的 p i d 文 件 获 取 连 接 信 息 。 2.1 j s t a c k 报 错 原 因 j s t a c k 报 错 : U n a b l e t o o p e n s o c k e t f i l e 。 是 因 为 这 个 j a v a 进 程 的 p i d 文 件 删 除 了 。 为 什 么 会 被 删 除 呢 ? 这 是 因 为 l i n u x 操 作 系 统 为 了 防 止 / t m p 目 录 文 件 过 多 , 有 个 删 除 管 理 机 制 : t m p w a t c h 。 查 看 关 键 配 置 / e t c / c r o n . d a i l y / t m p w a t c h : f l a g s = − u m c / u s r / s b i n / t m p w a t c h " USER下的pid文件获取连接信息。 2.1jstack报错原因 jstack报错:Unable to open socket file。是因为这个java进程的pid文件删除了。 为什么会被删除呢?这是因为linux操作系统为了防止/tmp目录文件过多,有个删除管理机制:tmpwatch。 查看关键配置/etc/cron.daily/tmpwatch: flags=-umc /usr/sbin/tmpwatch " USERpid2.1jstackjstackUnabletoopensocketfile<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值