赞
踩
发现问题、定位问题、解决问题
常见问题如下
基本语法:
jps [options参数] [hostid参数]
options参数:
hostid 参数:
RMI 注册表中注册的主机名。如果想要远程监控主机上的 java 程序,需要安装 jstatd。
对于具有更严格的安全实践的网络场所而言,可能使用一个自定义的策略文件来显示对特定的可信主机或网络的访问,尽管这种技术容易受到 IP 地址欺诈攻击。
如果安全问题无法使用一个定制的策略文件来处理,那么最安全的操作是不运行 jstatd 服务器,而是在本地使用 jstat 和 jps 工具。
比较长,参考这篇博客:
http://t.csdnimg.cn/IOGRg
用于生成虚拟机指定进程当前时刻的线程快照(虚拟机堆栈跟踪)。
线程快照:该进程内每条线程正在执行的方法堆栈的集合。
生成线程快照的作用:可用于定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等问题。这些都是导致线程长时间停顿的常见原因。当线程出现停顿时,就可以用 jstack 显示各个线程调用的堆栈情况。
在 thread dump 中,要留意下面几种状态
MAT可以解析Heap Dump(堆转储)文件dump.hprof,查看GC Roots、引用链、对象信息、类信息、线程信息。可以快速生成内存泄漏报表。
可以用于查找内存泄漏以及查看内存消耗情况。
jmap(JVM Memory Map):作用一方面是获取 dump 文件(堆转储快照文件,二进制文件),它还可以获取目标 Java 进程的内存相关信息,包括 Java 堆各区域的使用情况、堆中对象的统计信息、类加载信息等。开发人员可以在控制台中输入命令 jmap -help 查阅 jmap 工具的具体使用方式和一些标准选项配置。
基本语法
基本使用语法为:
jmap [option]
jmap [option] <executable <core>
jmap [option] [server_id@]
选项 | 作用 |
---|---|
-dump | 生成 dump 文件(Java 堆转储快照),-dump:live 只保存堆中的存活对象 |
-heap | 输出整个堆空间的详细信息,包括 GC 的使用、堆配置信息,以及内存的使用信息等 |
-histo | 输出堆空间中对象的统计信息,包括类、实例数量和合计容量,-histo:live 只统计堆中的存活对象 |
-J | 传递参数给 jmap 启动的 jvm |
-finalizerinfo | 显示在 F-Queue 中等待 Finalizer 线程执行 finalize 方法的对象,仅 linux/solaris 平台有效 |
-permstat | 以 ClassLoader 为统计口径输出永久代的内存状态信息,仅 linux/solaris 平台有效 |
-F | 当虚拟机进程对-dump 选项没有任何响应时,强制执行生成 dump 文件,仅 linux/solaris 平台有效 |
-h | -help |
-j | 传递参数给 jmap 启动的 JVM |
需要保持程序一致在运行中
在jdk的bin目录下启动Visual VM
打开对应的程序进程
点击堆Dump
选择刚才导出的Dump
就可以看类对于实例数和大小,选中类右击在实例图中显示
监视CPU、类、堆、线程信息
查看CPU使用情况
线程使用情况
内存使用情况
参考博客:
https://blog.csdn.net/qq_40991313/article/details/132382094
https://blog.csdn.net/qq_33204709/article/details/132126351
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。