虚拟机性能监控与故障处理工具

虚拟机性能监控与故障处理工具

jdk的bin目录下,除了java、javac这两个命令行工具,还提供了很多其他工具。

命令行工具

1.jps(jvm process status tool)

显示所有虚拟机进程的运行状况。jps后面带不同的参数(-q、-m、-l、-v)显示进程id、传递给主类的参数、主类的全名、进程启动时的jvm参数。

2.jstat(jvm statistics monitoring tool)

纯文本显示虚拟机进程中类装载、内存、垃圾收集、jit编译等运行数据,更直观地可以用visual vm等可视化工具来看。如jstat -gc 49951,显示49951这个进程的gc信息。


Question:jstat -gc 49951这样显示的是整个jvm的内存分配信息,还是这一个进程的内存分配呢?进程间的内存分配是独立的吗?

启动一个应用,就是启动了一个虚拟机实例,即一个虚拟机进程。一个虚拟机进程,只能对应一个应用,一个进程管理多个线程。

运行java、javac、jps这些命令,就是启动了一个虚拟机进程。每个进程有自己独立的内存堆栈空间。比如,在intellij的每个application Server的配置中,可以设置虚拟机参数vmoptions,也就是对每个server分别设置了新生代、老生代大小之类。同样地,每次启动一个server,通过jps命令可以看到就多了一个进程。jps显示的是当前所有的虚拟机进程,而不是系统中启动的所有进程。

一个虚拟机进程中只有一个应用,也就是每个应用之间是独立的。目前没有一个虚拟机进程运行多个应用的说法,那样应该比较复杂吧~所以jstat这些命令的后面都要带上进程id。

启动一个本地项目后,查看进程,得到7667 org.apache.catalina.startup.Bootstrap,说明jvm启动了tomcat,tomcat容器负责应用的各种class的加载工作。

3.jinfo 实时查看和调整虚拟机参数

如jinfo -flag CMSInitiatingOccupancyFraction 83127,查看CMSInitiatingOccupancyFraction参数的配置。

4.jmap 生成堆转储快照(dump文件)

还可以查下finalize队列、java堆、永久代的详细信息等。如jmap -dump:format=b,file=/Users/zhangguixian/Downloads/intellij.log 83127生成一个进程的dump文件,然后用java的bin目录下jvisualvm工具分析dump文件。

5.jhat dump文件分析工具

目前一般都是用可视化的java visualVM等进行分析。

6.jstack java堆栈跟踪工具

显示当前时刻进程内所有线程的快照,通过线程快照可以定位线程出现长时间停顿的原因,如线程死锁、死循环、等待外部资源等。如jstack -F 12979,当正常输出请求不被响应时,强制输出堆栈信息。

7.HSDIS JIT生成代码反汇编

可视化工具

1.JConsole 基于jmx的可视化监控、管理工具
2.VisualVM 多合一故障处理工具

可以下载安装各种插件、生成dump文件、分析dump文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值