首页 > 系统相关 >jstack 解决dump导出JAVA堆内存文件报错

jstack 解决dump导出JAVA堆内存文件报错

时间:2022-10-25 19:01:40浏览次数:64  
标签:tmp 文件 JAVA dump PID 报错 目录

 

报错信息:

~]$ jstack 283513 > 283513.dump
283513: 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

 

https://blog.51cto.com/u_15344989/3653973

背景
日前服务器一个应用总是莫名挂掉,通过排查发现是老年代内存无法回收引起,那么要定位到到底是那一部分数据导致的无法回收,就需要把堆内存dump出来,然后用工具分析。但奇怪的是dump的时候一直报错

Unable to open socket file: target process not responding or HotSpot VM not lo

 

问题引起的原因
由于Linux一切皆文件的特性,也就是说一个Java进程实际上会对应到一个PID文件,dump命令依赖于进程的PID文件,报错这个是由于这个PID文件可能已经被系统给删除了。

 

问题的解决方案
Linux有个文件(/usr/lib/tmpfiles.d/tmp.conf)中记录着一些目录,这些目录中不会被自动删除,我们需要在这个文件中配置我们的JAVA进程的PID目录。

第一步:先找到PID所在目录
先用JPS命令得到进程号

 

 32383为我的JAVA应用的进程号,然后我们去/tmp目录下找这个进程号

 

 很明显这里没有32383,但这里有个hsperfdata_root目录不知道是什么东西,进去看看

这里有31383,那么也就是说/tmp/hsperfdata_root目录即是要排除在外的目录。

/tmp/hsperfdata_appdeploy

第二步:把找到的目录添加到文件内容中

vi /usr/lib/tmpfiles.d/tmp.conf

X /tmp/hsperfdata_appdeploy/*

添加如下内容

 

 /*代表目录下的所有文件,添加之后应该是立即生效的,无需重启。如此,即可避免文件被系统删掉。

其他事项
以上解决方案是我在我的系统中亲测成功的方案,由于系统版本不同,我的解决办法可能不适用于你,你需要尝试。
我的Linux内核版本为Linux version 3.10.0-1062.1.1.el7.x86_64
系统版本为CentOS Linux release 7.5.1804
我不确定其他系统版本的设置方式是否一致,有的系统可能没有/usr/lib/tmpfiles.d/tmp.conf这个文件,那么可以看看是否存在/etc/cron.daily/tmpwatch这个文件,存在的话可以在这个文件中添加排除项,添加方式与本文一致。

如果依然无法解决,可以看看我参考的两篇文章,寻找解决方案。

 

标签:tmp,文件,JAVA,dump,PID,报错,目录
From: https://www.cnblogs.com/xiedy001/p/16825949.html

相关文章

  • java dump 线程命令 jstack PID >> mydumps.dump
    一、背景Java应用怎么通过方法定位到代码的具体步骤,下面通过一个具体的例子来说明。二、分析步骤使用TOP命令找到谁在消耗CPU比较高的进程,例如:pid=1232使用top-p......
  • 为什么你需要R语言、Python、MATLAB、JAVA、SAS编程代写代做assignment指导帮助?
    全文链接:tecdat.cn/?p=29638为什么你需要编程assignment指导帮助?计算机编程一直都不是一个简单的领域,即使是对于那些痴迷于计算机编程的同学,乃至大神们,也很难掌握所有的......
  • git合并分支时出现“Please enter a commit message to explain why this merge is ne
    1,有的时候我们在进行项目分支合并gitmerge时会出现如下错误  解决步骤:按键盘上的“i”键可进入插入模式这时可以修改最上方的黄色部分,改成你想写的合并原因按......
  • JAVA dump出了hprof文件可供分析,可以用MAT工具进行分析
    用MAT打开后,可以看到分析情况    由此也可以知道,是因为list的容量过大而导致OOM,可以根据此来进行优化代码或者JVM参数。如果是由内存泄漏导致的,也可以通过工......
  • java生成uuid(java生成word文件)
    JAVAJDK提供的一个自动生成主键UUID.randomUUID()的方法它永远都不会重复嘛??关于是否重复,首先要说一下uuid生成的原理UUID是指在一台机器上生成的数字,它保证对在同一时空......
  • java的特点(java的特点不包括)
    JAVA的特点有那些?java语言有下面一些特点:简单、面向对象、分布式、解释执行、健壮、安全、体系结构中立、可移植、高性能、多线程以及动态性。1.简单性java语言是一......
  • java程序员面试题(高级程序员面试题)
    java面试问题给你参考!!!一个月的实习过程使我受益匪浅。不仅是在专业知识方面,最主要是在怎样去解决编程中出现的问题。社会在加速度地发生变化,对人才的要求也越来越高,要用......
  • java私塾(java私塾初级模拟银源代码)
    北京JAVA私塾培训真的学习有那么累吗,学JAVA有那么难吗首先要把基础学一下,一定要理解,打扎实,再学后面的东西,后面主要是理解的多,再一个要多去写!学JAVA肯定没那么容易的,有时候确......
  • java简介(Java简介英文)
    什么是javaJava是由Sun微系统公司所发展出来的程序语言,它本身是一种对象导向(Object-Oriented)的程序语言。JAVA目前在手机上应用最多的就是JAVA游戏。Java也号称是能跨平......
  • java空间(Java堆空间)
    2017年Java开发有什么发展空间? 现在人们愈发相信,在今后的十年、二十年之内,Java都将是IT行业最炙手可热的技术,Java软件工程师将持续成为最热门的岗位之一,历史也不断的证明,JA......