java监控工具备忘

  1. jps
    1. 查看java进程
    2. jps -q只显示进程号,不显示短名称
    3. jps -m显示传递给进程的参数
    4. jps -l显示主函数的完整路径
    5. jps -v显示传递给虚拟机的参数
  2. jstat
    1. 用于观察java应用程序运行时相关信息的工具,功能非常强大
    2. jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
  3. jinfo
    1. 查看正在运行的java应用程序的扩展参数,甚至支持在运行时修改部分参数
    2. jinfo <option> <pid>
  4. jmap
    1. 导出堆到文件
    2. jmap -histo 2128 > info.log 生成进程2128的java程序的对象统计信息,并输出到info.log文件;
    3. jmap -dump:format=b,file=heap.dump 2128  将2128java进程的堆快照导出指定文件中,后期可以用分析工具(例如jhat,visual VM,MAT等)分析该快照文件;
    4. jmap -permstat 2128 查看2128java进程的classLoader
    5. jmap -finalizerinfo 2128查看2128java进程的finalizer队列;
  5. jhat
    1. jdk自带的堆分析工具
    2. jhat heap.dump将分析heap.dump堆信息文件,并启动http服务,可以通过输出的地址和端口查看堆信息文件中的信息。
    3. 支持OQL语言,方便查询堆信息中的指定内容
  6. jstack
    1. jstack [-l] <pid>    -l用于打印锁的附加信息
    2. 不仅可以得到线程堆栈,还能帮助发现死锁现象及死锁发生的线程及死锁相关的对象,帮助解决死锁问题。
  7. jstatd
    1. jstatd用于协助jps,jstat等工具监控远程机器上的java进程
    2. 需要在被监控的机器上启动jstatd,然后可以通过jps IP:port监控指定IP的java进程信息,其中port为jstatd默认的1099
  8. jcmd
    1. jcmd是1.7之后新增的一个多功能合一的工具,可以用来查看java进程,导出堆,导出栈信息,执行GC命令等等
    2. jcmd -l列出系统中的虚拟机;
    3. jcmd 2128 help,获取2128虚拟机所支持的命令
    4. jcmd 2128 VM.uptime如果2128支持VM.uptime命令,可以通过这个命令查看运行时间;
  9. hprof
    1. 它是一个java agent工具,用于监控java应用程序运行时的cpu信息和堆信息。
  10. jconsole
  11. visual VM
    1. jdk自带的,支持插件,支持远程,所以可以替代上述几乎所有的工具
  12. BTrace
    1. 是visual VM的一个插件工具。
  13. JRockit Mission  Control虚拟机诊断工具
    1. jdk1.7 u40之后发布的工具,但openjdk并没有包含。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章