前言:
现在朋友们对“java获取文件全路径”大体比较注意,各位老铁们都想要分析一些“java获取文件全路径”的相关资讯。那么小编也在网络上搜集了一些对于“java获取文件全路径””的相关文章,希望咱们能喜欢,你们快快来学习一下吧!由于近些年项目系统陈旧,线上生产环境运行不稳定,经常需要生成javacore和heapdump文件,以便分析jvm的运行状态查找卡慢宕机问题。其中javacore文件中给出jvm线程的详细情况,是关于CPU的,而heapdump文件则给出jvm的运行时内存的使用情况,关于内存的,对分析JVM的内存泄漏有重要的作用。
JavaCore文件主要保存的是Java应用各线程在某一时刻的运行的位置,即JVM执行到哪一个类、哪一个方法、哪一个行上。它是一个文本文件,打开后可以看到每一个线程的执行栈,以stack trace的显示。通过对JavaCore文件的分析可以得到应用是否“卡”在某一点上,即在某一点运行的时间太长,例如线程死锁,数据库查询,长期得不到响应,最终导致系统崩溃等情况。
JavaCore文件一般是文本文件,可以直接用文本编辑工具查看,也可以使用IBM的TMDA(ThreadDumpAnalyser)工具进行分析,一般JavaCore文件生成两个比较有效,可以对比这两个JavaCore文件,来对比哪个线程“卡”住了。
HeapDump文件是一个二进制文件,它保存了某一时刻JVM堆中对象使用情况,主要用来分析大对象长时间不释放导致的内存不足,堆栈溢出,以及高频触发Full GC从而导致CPU使用率过高,JVM崩溃等问题。
这种文件需要相应的工具进行分析,如IBM Heap Analyzer这类工具。这类文件最重要的作用就是分析系统中是否存在内存溢出的情况。
关于两种文件的生成方法以及查看工具如下:
一、生成javacore文件找到安装目录WebSphere/AppServer/bin/wsadmin.sh 此处如果多个节点,需要进入到对应的程序部署节点下,如:/IBM/WebSphere/AppServer/profiles/AppSrv04/bin/wsadmin.sh
执行sh wsadmin.sh
输入命令 wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
输入命令 wsadmin>$AdminControl invoke $jvm dumpThreads
安装目录\WebSphere\AppServer\profiles\default下生成javacore文件(例:javacore.20090804.111947.2632.txt)
用TMDA(ThreadDumpAnalyser)工具进行分析
下载地址:
运行方式:cd javacore文件分析器放置路径 java –Xmx1000m –jar jca457.jar
二、生成heapdump文件安装目录WebSphere/AppServer/bin/wsadmin.bat
输入命令 wsadmin>set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server1,*]
输入命令 wsadmin>$AdminControl invoke $objectName generateHeapDump
安装目录\WebSphere\AppServer\profiles\default下生成HeapDump文件(例:heapdump.20090804.113353.2632.phd)
用IBM HeapAnalyzer内存分析工具对heapdump文件进行分析
下载地址:
运行方式:cd heapdump文件分析器放置路径 java –Xmx1000m –jar ha456.jar
标签: #java获取文件全路径