JDK 常用工具

jps 查看所有进程

  • 类似于 linux 的 ps,查看所有 Java 进程的启动类、传入参数、Java 虚拟机参数等信息
  • jps 显示虚拟机执行的主类名和其的唯一 ID
  • jps -q 只输出 ID
  • jps -l 输出主类的全名,如果进程执行的是 jar 包就输出 jar 包的路径
  • jps -v 输出虚拟机进程启动时的 JVM 参数
  • jps -m 输出传递给 Java 进程 main() 函数的参数

jstat 监视虚拟机各种运行状态信息

  • 用于监视虚拟机各种运行状态信息,可以显示本地或远程(支持 RMI)虚拟机进程中的类信息、内存、垃圾收集、JIT 编译等运行数据
  • jstat -class vmid 显示 ClassLoader 相关信息
  • jstat -compiler vmid 显示 JIT 编译的相关信息
  • jstat -gc vmid 显示 GC 相关的堆信息
  • jstat -gccapacity vmid 显示各个代的容量以及使用情况
  • jstat -gcnew vmid 显示新生代信息
  • jstat -gcold vmid 显示老年代信息
  • jstat -gcnewcapacity vmid 显示新生代大小以及使用情况
  • jstat -gcoldcapacity vmid 显示老年代大小以及使用情况
  • jstat -gcutil vmid 显示垃圾收集信息
  • 可以加上其他参数实现不同效果:jstat -gc -h3 11594 1000 10 标识分析 id 为 11594 的进程的 gc 情况,每 1000ms 打印一次记录,打印 10 次停止,每 3 行后再打印一次标题

jinfo

  • 实时的查看和调整虚拟机的参数
  • jinfo vmid 查看该进程的全部参数和系统参数
  • jinfo -flag name vmid 输出对应的参数的具体值
  • jinfo -flag [+|-]name vmid 开启或关闭对应的参数

jmap

  • 生成堆快照,获取 dump 文件
  • 获取 dump 文件的方法有很多,比如设置参数 -XX:+HeapDumpOnOutOfMemoryError,或者在 linux 下的 kill -3 pid
  • 还有其它的功能,比如查询 finalizer 队列,Java 堆和永久代的详细信息,比如空间使用率、当前使用的是那种垃圾收集器等
  • 生成的文件需要借助 jhatjvisualvm 等工具来分析

jhat

  • 分析 dump 文件,会建立一个 HTTP 服务器,可以在浏览器上查看分析结果
  • 地址是 http://localhost:7000

jstack

  • 生成虚拟机当前的线程快照,就是当前虚拟机内的每一条线程正在执行的方法堆栈的集合
  • 主要用来定位线程的长时间停顿、死循环、请求等待时间长等问题

jconsole

  • 可视化工具
  • 可以看当前内存的详细信息,加上参数可以查看远端的 Java 程序,也可以直接在程序里手动连接远端
-Djava.rmi.server.hostname=外网访问 ip 地址 
-Dcom.sun.management.jmxremote.port=60001   //监控的端口号
-Dcom.sun.management.jmxremote.authenticate=false   //关闭认证
-Dcom.sun.management.jmxremote.ssl=false
  • 还可以做线程监控,有检测死锁等功能

jvisualvm

  • 功能更强大的可视化工具
  • 具备几乎其他工具的所有功能
  • 还可以装插件实现更多功能
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值