常用命令

命令:dashboard

查看jvm总体信息,包括线程,内存和运行环境

命令:monitor 

  • monitor -c 5 com.liubike.ta.controller.service.ApiService newString "param[1]=2"
  • 每5秒统计一次监控方法被调用的次数

命令:heapdump

  • heapdump --live /tmp/dump.hprof
  • dump存活的堆栈信息
  • 注意cup开销

命令:memory

  • jvm内存分布

命令:profiler

  • 生成数据火焰图
  • profiler start  --event alloc 开启采集
  • profiler getSamples  采集数量
  • profiler stop --format html 停止采集,生成报告

命令:stack

  • stack com.lizz.ta.controller.service.ApiService runNum -n 3 
  • 查看3次ApiService类中runNum方法的调用路径

命令:trace

  • trace com.lizz.ta.controller.service.ApiService runNum -n 3 
  • 查看3次ApiService类中runNum方法的内部调用路径和处理时间

命令:tt

  • tt -t com.lizz.ta.controller.service.ApiService runNum -n 3 
  • 记录方法调用状态,是否正常返回,是否异常,时间等。

命令:watch

  • watch com.lizz.ta.controller.service.ApiService runNum -n 2 -x 3 -s -b
  • 查看方法调用前和调用后的数据。

案例1:CPU过高

thread 查看线程CPU占比,查看其中cpu使用占比过高的数据

thread pid查看线程堆栈

排查相关代码

案例2:内存过高

  1. thread 查看线程耗时
  2. thread pid查看线程堆栈
  3. monitor查看方法被调用次数
  4. watch查看线程内部数据情况

使用火焰图查看内存分配情况

  1. profiler start --event alloc  采集内存分配情况
  2. profiler getSamples 已采集的数量
  3. profiler stop --format html 关闭采集,并生成html文件
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐