版权声明: https://blog.csdn.net/Blanchedingding/article/details/85999995
文章目录
JDK的命令行工具
jps:虚拟机进程状况工具
可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID)
jstat:虚拟机统计信息监视工具
用于监视虚拟机各种运行状态信息的命令行工具;
jinfo:Java配置信息工具
实时地查看和调整虚拟机各项参数。使用jps命令的-v参数可以查看虚拟机启动时显式指定的参数列表
jmap:Java内存映像工具
用于生成堆转储快照(一般称为heapdump或dump文件)
jhat:虚拟机堆转储快照分析工具
与jmap搭配使用,来分析jmap生成的堆转储快照
jstack:Java堆栈跟踪工具
用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)
HSDIS:JIT生成代码反汇编
HSDIS是一个Sun官方推荐的HotSpot虚拟机JIT编译代码的反汇编插件,它的作用是让HotSpot的-XX:+PrintAssembly指令调用它来把动态生成的本地代码还原为汇编代码输出,同时还生成了大量非常有价值的注释,这样我们就可以通过输出的代码来分析问题。
JDK的可视化工具
JConsole:Java监视与管理控制台
一种基于JMX的可视化监视、管理工具。它管理部分的功能是针对JMX MBean进行管理
VisualVM:多合一故障处理工具
不需要被监视的程序基于特殊Agent运行,因此它对应用程序的实际性能的影响很小,使得它可以直接应用在生产环境中。
调优案例
-
高性能硬件上的程序部署策略
在高性能硬件上部署程序,目前主要有两种方式:- 通过64位JDK来使用大内存。
- 使用若干个32位虚拟机建立逻辑集群来利用硬件资源。
-
集群间同步导致的内存溢出
-
堆外内存导致的溢出错误
-
外部命令导致系统缓慢
-
服务器JVM进程崩溃
-
不恰当数据结构导致内存占用过大
-
由Windows虚拟内存导致的长时间停顿