认识JDK中bin工具

JDK 包含工具

  • jps 命令
    • 查看java 进程
    • -q 参数可以只输出进程ID
    • -m 输出传递给进程参数
    • -l 查看主函数的完整路径
    • -v 显示传递个JVM的参数
  • jstat

    jstat -option [-t] [-h lines ] vmid [ interval [ count]]

    • 查看虚拟机运行状态
    • option
      • -class 查看ClassLoader相关信息
      • -compile 显示JIT信息
      • -gc 显示与GC相关堆信息
      • -gccapacity 显示各个代的容量及使用情况
      • -gccause 显示垃圾收集相关信息
      • -gcnew 显示新生代信息
      • -gcnewcapacity 显示新生代大小与使用情况
      • -gcold 显示老年代和永生代信息
    • -t 显示程序运行时间
    • interval 统计数据周期,毫秒为单位
    • count 指定输出次数
  • jinfo

    jinfo -option pid

    • 查看虚拟机参数
    • option
      • -flag name 指定JVM的参数
      • -flag [+|-] name 设定JVM参数的boolean值
      • -flag name=value 设定JVM参数值
    • java app 并不会指定所有启动参数,不同的JVM之间存在略微的差异,可以通过命令进行简单的查看
  • jmap
    • 生成java程序的堆dump文件
    • 查看堆内对象实例个数「jmap -histo pid」
    • 生成堆快照,通过其他工具对堆快照进行分析
      「jmap -dump:format=b,file=.\heap.bin pid」
    • 查看ClassLoader信息「jmap -permstat pid」
    • 查看finalizer队列中的对象
  • jhat
    • 堆分析工具
    • 「jhat .\heap.bin」通过「localhost:7000」访问
  • jstack
    • 查看线程堆栈,「jstack -l pid」
  • jstatd
    • 远程主机信息收集
  • jcmd
    • 多功能命令行,JDK1.7以后
    • -l 查看当前系统所有的JVM
    • jcmd pid arg
      • VM.uptime 查看虚拟机启动时间(pid也可以使用主类全路径来代替)
      • Thread.print 打印线程栈信息
      • GC.heap_dump ./heap.bin 导出堆栈信息
      • VM.system_properties 获取系统属性
      • VM.flags 获取启动参数
      • PerfCounter 获取性能相关数据
  • hprof
    • 性能统计工具,用于监测java app 运行时CPU和堆信息
    • 可以精确到函数对cpu的占有时间(「hprof -agentlib:hprof=cpu=times,interval=5」)
    • 保存对快照信息(「agentlib:hprof=heap=dump,format=b,file=./heap.hprof」),使用mat或者Visual VM进行分析
    • 「agentlib:hprof=heap=sites」可以输出每个跟踪点上类所占的内存百分比

图形化监控工具

JConsole
Visual VM


  • 远程应用程序必须打开JMX连接

-Djava.rmi.server.hostname=123.56..
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=1234
-Dcom.sun.management.jmxremote.ssl=false
BTrace
  • 可以在不停机的状态下,通过字节码注入动态监控系统运行状况
  • 通过BTrace脚本(java代码)注入形式
  • 功能
    • 监控指定函数耗时
    • 监控函数参数
    • 取得任意代码行信息
    • 定时触发
    • 获取类属性
    • 获取函数调用
JRockit
  • 位置:%JAVA_HOME%\bin\jmc.exe
MBean服务器
  • java 堆使用率
  • CPU使用率
  • 线程监控
Flight Recorder(飞行记录器)
  • 记录程序在一段时间运行情况,将记录结果进行分析展示
  • 对于要监测程序,JVM启动参数增加(默认采集1min的数据)

    -XX:+UnlockCommercialFeatures
    -XX:+FlightRecorder

  • 分析内容(从以下几个方面)

    • 一般信息(堆,CPU,GC使用)
    • 内存(垃圾回收,GC时间,GC配置)
    • 代码(方法,调用树)
    • 线程(线程的调用,等待)
    • IO(文件的IO,套接字IO)
    • 系统(进程跟踪,环境变量)
    • 事件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值