jvm 命令行监控工具

1. jps (java process status) : 查看正在运行的java进程

语法 : jps [options] [hostid]

无参数 : 

-q : 仅仅显示线程的id

-l : 输出应用程序的全类名, 如果进程执行的是jar包, 则输出jar包的完整路径

-m : 输出虚拟机进程传递给主类main的参数

-v : 列出虚拟机进程启动时的jvm参数


2. jstat  查看jvm统计信息

语法 : jstat -<option>  [-t] [-h<lines>] <vmid> [<interval> [<count>]]

option : 

  • -class : 显示classLoader相关信息
  • -gc : 显示与gc相关的信息, 包括eden区, 两个survivor区, 老年代,永久代等
  • -gccapacity : 显示内容与-gc基本相同, 主要输出关注java堆各个区域使用到的最大,最小空间
  • -gcutil : 显示内容与-gc基本相同, 主要关注已使用空间占总空间的百分比
  • -gccause : 与-gcutil功能相同, 但是会额外输出导致最后一次或当前正在发生gc的原因
  • -gcnew : 显示新生代gc情况
  • -gcnewcapacity : 显示与-gcnew基本相同, 输出主要关注使用到的最大,最小空间
  • -gcold : 显示老年代gc情况
  • -gcoldcapacity : 显示内容与gcold基本相同, 输出主要关注使用到的最大,最小空间
  • -gcpermcapacity : 显示永久代使用到的最大, 最小空间

interval : 用于指定输出统计数据的周期, 单位为毫秒, 即查询间隔

count : 用于指定查询的总次数

-t : 可以在输出信息上加一个timestamp, 显示程序运行的总时间

-h : 可以指定周期性输出时, 输出多少行数据后输出一个表头信息

全参数测试 : 

 

① option 选择 class

loaded : 加载了多少类

bytes : 占用了多少字节

unloaded : 卸载了多少类

bytes : 占用了多少字节

② option 选择 gc


 3. jinfo 实时查看和修改jvm配置参数

语法 : jinfo [option] pid

option 选项 : 

  • no option : 输出全部的参数和属性
  • -flag name : 输出对应名称参数值
  • -flag [+-]name : 开启或关闭对应名称的参数, 只有被标记为manageable的参数才可以被动态修改
  • -flag name=value : 设置对应名称的参数
  • -flags:  输出全部的参数
  • -sysprops : 输出系统属性


4. jmap : 导出内存映像文件 & 内存使用情况

1. 手动方式生成dump文件 

2. 自动生成dump文件, 需要配置两个参数, 当发生oom之前, 会创建一个dump文件

注意 : jmap生成dump文件, 该命令不会马上执行并生成, 而是必须到达安全点才可以, 这就造成dump文件可能有误差

 

-heap : 生成jvm空间使用情况文件 同 jstat -gc类似

-histo : 生成jvm中存活对象数量的文件


5. jhat jdk自带堆空间分析工具 (jdk9已移除)

接下来访问 : http://localhost:7000


6. jstack 打印jvm线程快照

语法 : jstack pid

线程状态 : 

  • block  阻塞
  • TIMEOUT_BLOCK  运行时间较长, 导致阻塞

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值