Java故障工具与常用排错命令

一、Java虚拟机管理常用命令

jps显示指定系统内所有的虚拟机进程
jstat收集虚拟机各方面的运行数据
jinfo显示虚拟机配置信息
jmap虚拟机内存转储快照(dump文件)
jhat用于分析dump文件,会建立一个HTTP/HTML服务器,可再浏览器查看
jstack显示虚拟机的线程快照·
  1. jps

    jps可以通过RMI协议查询开启了RMI服务的远程虚拟机进程状态,hostid为RMI注册表中注册的主机名

    jps [options] [hostid]

  2. jstat

    用于监控虚拟机各种运行状态信息的命令行工具,显示本地或远程虚拟机中的类转载、内存、垃圾收集、JIT编译等运行数据。

    jstat [ option vmid [interval[s|ms] [count]]

    VMID与LVMID:如果是本地虚拟机进程、VMID与LVMID是一致的

    参数interval 和count 代表查询间隔和次数,如果没有这两个参数 默认只查询一次

    jstat -gc 2764 250 20 表示每隔250毫秒查询一次进程2764的垃圾收集状态,一共查询20次

    option分为三类:类转载,垃圾收集,运行编译状况

    -class监视类转载,卸载数量,总空间以及类装载所耗费的时间
    -gc监视Java堆状态,包括Eden、survivor、老年代、永久带等容量、已用时间,GC时间合计等
  3. jinfo Java配置信息工具

    实时查看和调整虚拟机各项参数。

  4. jmap

    Java内存映像工具,用于生成堆转出快照(dump文件)。可以查询finalize执行队列、Java堆和永久代的详细信息

    jmap [option] vmid

    -dump生成dump堆存储快照
    -finalizerinfo显示F-Queue中等待Finalizer线程执行finalize方法的对象
    -heap显示Java堆的详细信息,如使用哪种回收器,参数配置,分代状况
    -histo显示堆中对象统计信息,包括类、实例数量、合计容量
  5. jhat(一般不使用)

    虚拟机堆转储快照分析工具,与jmap搭配使用,jhat内置了一个微型的HTTP/HTML服务器,生成dump文件的分析结果后,可以再浏览器查看。

  6. jstack

    用于生成虚拟机当前时刻的线程快照,线程快照就是当前虚拟机内每一条线程正在执行方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。线程出现停顿可以通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情或者等待什么资源。

    jstack [option] vmid

    jstack -F 2681

    -F当正常输出的请求不被响应时,强制输出线程堆栈
    -l除堆栈外,显示关于锁的附加信息
    -m如果调用到本地方法,可以显示c/c++堆栈

二、VisualVM(多合一故障处理工具)

  1. 显示虚拟机进程以及进程的配置、环境信息(jps、jinfo)
  2. 监视应用程序的CPU、GC、堆、方法区以及线程的信息(jstat、jstack)
  3. dump以及分析堆转储快照(jmap、jhat)
  4. 方法级的程序运行性能分析,找出被调用最多、运行时间最长的方法
  5. 离线程序快照:收集程序的运行时配置、线程dump、内存dump等信息建立一个快照。

具体参考JMX连接jstatd连接到服务器查看

jstatd需要配置 jstatd.all.policy配置

grant codebase "file:$JAVA_HOME/../lib/tools.jar" {   
    permission java.security.AllPermission;
};

jstatd -J-Djava.security.policy=jstatd.all.policy -p 1099 &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kaisnm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值