JVM学习总结,虚拟机性能监控、故障处理工具:jps、jstat、jinfo、jmap、Visual VM、jstack等

上篇:JVM学习总结,全面介绍运行时数据区域、各类垃圾收集器的原理使用、内存分配回收策略
参考资料:《深入理解Java虚拟机》第三版

常用工具一图流:

在这里插入图片描述

三,虚拟机性能监控、故障处理工具

  给一个系统定位问题的时候,知识、经验是关键基础,数据是依赖,工具则是运用知识处理数据的手段。这里说的数据包括但不限于异常堆栈、虚拟机运行日志、垃圾收集器日志、线程快照(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。恰当地使用虚拟机故障处理、分析的工具可以提升我们分析数据、定位并解决问题的效率,但我们在学习工具之前,也应该意识到工具永远都是知识技能的一层包装

  总所周知JDK的bin目录中有java.exejavac.exe这两个命令行工具,随着JDK的版本迭代,这些小工具的数量与功能也在不断的增强中。除了编译与运行Java程序外,打包、部署、签名、调试、监控、运维等各种场景都有可能会遇到它们(展示的是jdk17):

image-20230218001735050

1)jps:虚拟机进程状况工具

  JDK很多小工具的命名都参考了UNIX命令的命名方式,jps(JVM Process Status Tool)则是其中的典型,除了命令像UNIX的ps命令之外,它的功能也与之类似:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(main函数所在的类)名称以及这些进程的本地虚拟机唯一ID(LVMID,Local Virtual Machine Identifier)

  虽然jps的功能比较单一,但其绝对是使用得最多的命令行工具之一,对于本地虚拟机进程来说LVMID与操作系统的进程ID(PID,Process Identifier)是一致的,使用windows的任务管理器或者UNIX的ps -ef|grep、losf -i:[host port]命令也可以查询到虚拟机进程的LVMID,但如果同时启动了多个虚拟机进程,无法根据进程名称来进行定位时,那就必须依赖jps命令显示主类的功能才能去区分了。

# 通过此命令可以查看虚拟机上所有运行的Java进程,有时候我们不知道端口或者应用名称,就可以使用这个命令查看Java进程的PID
jps [options] [hostid]
	# 参数options
	-q # 只输出LVMID
	-m # 输出虚拟机进程启动时传递给主类main()函数的参数
	-l # 输出主类的全名,如果进程执行的是jar包,则输出jar的路径
	-v # 输出虚拟机进程启动时的JVM参数
	-V # 输出仅包含本地JVM标识符的列表

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值