搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具

[复制链接]
查看: 93|回复: 0

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32682
发表于 2020-1-15 00:37 | 显示全部楼层 |阅读模式
正文

一、JDK 的命令行工具

JDK 的 bin 目录下供给了一些用于监视捏造机和故障处置惩罚的命令行工具。
称号重要感化jpsJVM Process Status Tool,表示正在运转的捏造机进程jstatJVM Statistics Monitoring Tool,收集捏造机各方面的运转数据jinfoConfiguration Info for Java,表示捏造机设备信息jmapMemory Map for Java,天生捏造机的内存转储快照(heapdump 文件)jhatJVM Heap Dump Browser,用于分析 heapdump 文件,它会建立一个 HTTP/HTML 办事器,可在欣赏器上检察分析成果jstackStack Trace for Java,表示捏造机的快照进程1、jps:捏造机进程状态工具

jps 感化:
列出正在运转的捏造机进程,并表示捏造机进程实行主类(main() 函数地址的类)称号以及进程确当地捏造机唯一 ID(Local Virtual Machine Identifier,LVMID)。对于当地捏造机进程,LVMID 与利用系统进程 ID(PID)同等。
jps 命令格式:
  1. jps [options] [hostid]
复制代码

  • options:选项,可多个。
  • hostid:jps 可以经过 RMI 协议查询开启了 RMI 办事的远程捏造机进程状态,hostid 为 RMI 注册表中注册的主机名。
jps 实行样例:
  1. root@█████████:~# jps -l16657 halo-latest.jar20498 org.apache.catalina.startup.Bootstrap16669 sun.tools.jps.Jps
复制代码
jps 选项:
选项感化-q只输出 LVMID,省略主类的称号-m输出捏造机进程启动时,传递给主类 main() 函数的参数-l输出主类的全名,假如进程实行的是 Jar 包,输出 Jar 途径-v输出捏造机进程启动时 JVM 参数PS: 也不晓得能否是我的翻开方式差池,在 Win7、Win10 下用 JDK1.6、1.7、1.8 测试时,输出的是 Jar 文件名,而不是 Jar 途径。
2、jstat:捏造机统计信息监视工具

jstat 感化:
用于监视捏造机各类运转状态信息。可以表示当地或远程捏造机进程中的类装载、内存、渣滓收集、JIT 编译等运转数据。
jstat 命令格式:
  1. jstat   [interval[s|ms] [count]]
复制代码

  • option:选项,代表用户渴望查询的捏造机信息,重要分为 3 类:类装载、渣滓收集、运转期编译状态。
  • vmid:捏造机唯一 ID(VMID),假如是当地捏造机进程,那末 VMID 与 LVMID 同等,假如是远程捏造机进程,那末 VMID 的格式为:[protocol:][//]lvmid[@hostname][:port]/servername。
  • interval:查询间隔。
  • count:查询次数。同时省略 interval 和 count 时,表示只查询一次。
jstat 实行样例:
  1. root@█████████:~# jstat -gcutil 20498 S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    14.14   0.00  91.33  96.52  96.90  93.32   1210    7.328     6    0.536    7.864
复制代码
jstat 选项:
选项感化-class表示类装载、卸载数目、总空间以及类装载所泯灭的时候-gc表示 Java 堆状态,包含各个地域的容量、已用空间、GC 时候合计等-gccapacity表示 Java 堆各个地域的最大、最小(初始化)容量-gcutil表示 Java 堆各个地域的已利用空间占总空间的百分比-gccause与 -gcutil 功用一样,但会额外输出致使上一次 GC 发生的原因原由-gcnew表示新生代 GC 状态-gcnewcapacity表示新生代最大、最小(初始化)容量-gcold表示老年月 GC 状态-gcoldcapacity表示老年月最大、最小(初始化)容量-gcpermcapacity表示永久代最大、最小(初始化)容量-compiler表示 JIT 编译器编译过的方式、耗时等信息-printcompilation表示已被 JIT 编译的方式3、jinfo:Java 设备信息工具

jinfo 感化:
实时地检察和调解捏造机各项参数。
jinfo 命令格式:
  1. jinfo [option]
复制代码

  • option:选项。
  • pid:捏造机进程 ID。
jinfo 实行样例:
  1. root@█████████:~# jinfo -flag MaxHeapSize 20498-XX:MaxHeapSize=260046848
复制代码
jinfo 选项:
选项感化-flag 表示指定 name 的捏造机参数-flag [+|-]启用或禁用指定 name 的捏造机参数-flag =设备指定 name 的捏造机参数值-flags表示全数的捏造机参数-sysprops表示捏造机进程的系统变量,即 System.getProperties() 的内容无表示全数捏造机参数及系统变量4、jmap:Java 内存映像工具

jmap 感化:
重要用于天生堆转储快照(一样平常称为 heapdump 或 dump 文件)。除此之外,还可以查询 finalize 实行行列、Java 堆和永久代的具体信息。
jmap 命令格式:
  1. jmap [option]
复制代码

  • option:选项。
  • vmid:捏造机进程唯一 ID。
jmap 实行样例:
  1. root@█████████:~# jmap -dump:format=b,file=test.bin 20498Dumping heap to /root/test.bin ...Heap dump file created
复制代码
jmap 选项:
选项感化-dump天生 Java 堆转储快照。格式为:-dump:[live,]format=b,file=,live 子参数表示能否只 dump 出存活的工具-finalizerinfo表示在 F-Queue 中等待 Finalizer 线程实行 finalize 方式的工具-heap表示 Java 堆具体信息,如利用哪类采纳器、参数设备、分代状态等-histo表示堆中工具统计信息,包含类、实例数目、合计容量-permstat以 ClassLoader 为统计口径表示永久代内存状态,JDK1.8 改成 -clstats-F当捏造机进程对 -dump 选项没有响应时,可利用该选项逼迫天生 dump 快照5、jhat:捏造机堆转储快照分析工具

jhat 感化:
用于分析 jmap 天生的堆转储快照。jhat 内置了一个微型的 HTTP/HTML 办事器,天生 dump 文件分析成果后,可在欣赏器中检察。
jhat 命令格式:
  1. jhat [option]
复制代码

  • option:选项。
  • file:堆转储快照文件。
jhat 实行样例:
  1. root@█████████:~# jhat test.bin Reading from test.bin...Dump file created Tue Dec 17 21:49:26 CST 2019Snapshot read, resolving...Resolving 979375 objects...Chasing references, expect 195 dots...................................................................................................................................................................................................Eliminating duplicate references...................................................................................................................................................................................................Snapshot resolved.Started HTTP server on port 7000Server is ready.
复制代码
在欣赏器中输入 http://IP地址:7000 即可检察分析成果。
6、jstack:Java 仓库跟踪工具

jstack 感化:
用于天生捏造机当前时辰的线程快照(一样平常称为 threaddump 或 javacore 文件)。线程快照是当前捏造机内每一条线程正在实行的方式仓库的聚集。
天生线程快照的重要方针是定位线程出现长时候搁浅的原因原由。当线程出现搁浅时,经过 jstack 检察各个线程的挪用仓库,便可以晓得没有响应的线程到底在布景做些什么事变,大要等待着什么资本。
jstack 命令格式:
  1. jstack [option]
复制代码

  • option:选项。
  • vmid:捏造机进程唯一 ID。
jstack 实行样例(部分红果):
  1. root@█████████:~# jstack -l 204982019-12-17 22:08:31Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.141-b15 mixed mode):"Attach Listener" #7966 daemon prio=9 os_prio=0 tid=0x00007f0a54037800 nid=0xf15 waiting on condition [0x0000000000000000]   java.lang.Thread.State: RUNNABLE   Locked ownable synchronizers:    - None  ...
复制代码
jstack 选项:
选项感化-F当一般输出的请求不被响应时,逼迫输出线程仓库-l除仓库外,表示关于锁的附加信息-m假如挪用到当地方式的话,可以表示 C/C++ 的仓库二、JDK的可视化工具

JDK 供给了两个功用强大的可视化工具:JConsole 和 VisualVM。
1、JConsole:Java 监视与治理控制台

(1)启动 JConsole

《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具  热点新闻 1613877-20200114230009983-1510408890

经过 JDK/bin 目录下的“jconsole.exe”启动 JConsole 后,将自动搜索出本机运转的全数捏造机进程,不需要用户自己利用 jps 查询。双击挑选其中一个进程即可起头监控,也可利用“远程进程”功用来毗连远程办事器,对捏造机举行监控。
《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具  热点新闻 1613877-20200114230024547-148209033

“概述”页签表示的是全部捏造机重要运转数据的概览。
(2)内存监控

《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具  热点新闻 1613877-20200114230038040-162525111

“内存”页签相当于可视化的 jstat 命令,用于监视受收集器治理的捏造机内存的变化趋向。
(3)线程监控

《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具  热点新闻 1613877-20200114230049675-44052283

“线程”页签相当于可视化的 jstack 命令,碰到线程搁浅时可利用该页签举行监控分析。
2、VisualVM:多合一故障处置惩罚工具

VisualVM 除了默许供给的监视、线程等功用外,还可以安装扩大插件来集成更多功用。
(1)启动 VisualVM

《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具  热点新闻 1613877-20200114230103615-391953310

经过 JDK/bin 目录下的“jvisualvm.exe”启动 VisualVM 后,挑选一个需要监视的步伐即可进入主界面。
《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具  热点新闻 1613877-20200114230112750-1650890935

“概述”页签用于表示捏造机进程以及进程的设备、情况信息(jps、jinfo)。
(2)运转监视

《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具  热点新闻 1613877-20200114230124728-195351821

《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具  热点新闻 1613877-20200114230131442-1156922568

“监视”页签和“线程”页签,用于监视利用步伐的 CPU、内存、类以及线程的信息(jstat、jstack)。
(3)天生、欣赏堆转储快照

在 VisualVM 中天生 dump 文件有两种方式:

  • 右键单击利用步伐节点,挑选“堆 Dump”。
    《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具  热点新闻 1613877-20200114230141952-1012297591

  • 在“监视”页签中单击“堆 Dump”。
    《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具  热点新闻 1613877-20200114230151927-1572049493

天生 dump 文件后,将在利用步伐下增加一个以 [heapdump] 开首的子节点,而且在主页签中翻开该转储快照。假如需要保存 dump 文件,要在 heapdump 节点上右键挑选“另存为”。否则当 VisualVM 封闭时,天生的 dump 文件也会被删裁撤。
(4)分析步伐性能

《深入理解 Java 虚拟机》读书笔记:虚拟机性能监控与故障处理工具  热点新闻 1613877-20200114230210200-1482207550

“Profiler”页签中,VisualVM 供给了步伐运转时代方式级的 CPU 实行时候分析以及内存分析。

免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 全椒百姓网-全椒知名**,发布及时新鲜的全椒新闻资讯 生活信息 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表