



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
讲 深入拆解Java虚拟 文章详30|Java虚拟机的及诊断工具(命令行篇2018-09-283030|Java虚拟机及诊断工具(命令行篇朗读人 10′59′′|今天,我们来一起了解一下JDK中用于及诊断工具。本篇中我将使用刚刚发布的Java11版本你可能用过ps命令,打印所有正在运行的进程的相关信息。JDKjps命令(帮助文档)沿用了同样的概念:它将打印所有正在运行的Java进程的相关信息。在默认情况下,jpsJavaID来打印额外的信息。例如,-l将打印模块名以及包名;-v将打印传递给Java虚拟机的参数(如--代代$jps-18331o18332jdk.jcmd/sun.tools.jps.Jps18332jdk.jcmd/sun.tools.jps.Jps-mlv-UsePerfData),那么jps命令(以及下面介绍的jstat)将无法探知该Java进程。..代$jstat--------- 代#Usage:jstat-outputOptions[-t][-hlines]VMID[interval代#Usage:jstat-outputOptions[-t][-hlines]VMID[interval$jstat-gc22126 417472,017472,017472,017472,0 17472,017472,017472,017472,0 403,9139904,0139538,4 当本地环境的Java进程时,VMID可以简单理解为PID。如果需要环境的Java进程,你可以参考jstat的帮助文档。在上面这个示例中,22126进程是一个使用了CMS回收器的Java进程。我们利用jstat的-gc子命令,来打印该进程回收相关的数据。命令最后的1s4表示每隔1秒打印一次,共打印4区的容量(Utility)SurvivorSurvivor使用量为0。G1GC 71680,02048,069632,0□代$jstat-gc22208□代$jstat-gc22208你可能已经留意到,S0C和S0U0Survivor(S1C)0。这是因为,当使用G1GC时,Java虚拟机不再设置Eden区、Survivor区,老年代区的内存边EdenSurvivorSurvivorSurvivor(CopyingGC),我们只需另外申请一个或多个内存区域,作为新的Survivor区。S1CS1US0CS0U0当发生回收时,Java虚拟机可能出现Survivor内存区域内的对象全被回收或晋升的现象堆中可能完全没有Survivor内存区域,因而相应的S1C和S1U将会是0。在下面这个示例中,第一列代表该Java进程已经启动了10.7秒。代代$jstat-gc-t10,7 55296,0 JavaGC(GCT)GCGC空间,随时都可能抛出OOM异常。连续获取多行性能数据,并取这几行数据中OU列(即已占用的老年代内存)的最小值。OU漏掉的CGC和CGCT,它们分别代表并发GCStop-The-World的次数和时间。出马,分析我们通常会利用jmapdump:live,format=b,file=filename.bin命令,将堆中所有存活对这里format=b将使jmap导出与hprof(在Java9中已被移除)、-格式的文件可以被其他GUI工具查看,具体我会在下一篇中进行演示。$-histoclassname[B[Ljava.lang.Object;[Ijava.math.BigIntegerjava.lang.String11代代差。举个例子,假设在编译生成的机器码中,某些对象的生命周期在两个安全点之间,那么:live□□代暂停时间较长,约为二三十秒,可酌情调CTRL+CSIGINT信号无法停止,需要SIGKILL。staticdoublesum=0;publicstaticvoidmain(String[]args)for(inti=0;i<;i++){//countedsum+=Math.log(i);//Math.logisan}}jmap(以及接下来的jinfo、jstack和jcmd)JavaAttachAPI,因此只能本地Java进程。一旦开启Java虚拟机参数DisableAttaechanism(即使用参数-的jvm_args)、-XX参数(即输出中的VMFlags),以及可在Java层面通过System.getProperty获取的-D参数(即输出中的SystemProperties)。代代$jinfoJavaSystemVMVMjvm_args:-Xlog:gc-Xmx1024mmand:org.example.Foojava_class_path(initial):LauncherType:pilerCount=4-XX:ConcGCThreads=3-VMsun.jnu.encoding=UTF-进程的举个例子,我们可以使用jinfoflag+HeapDumpAfterFullGC<PID>命令,开启<PID>所指定的Java进程的HeapDumpAfterFullGC参数。"manageableintx=intx=-intx=bool=bool=bool=ccstr=uintx=uintx=bool=bool=javaversion"11"2018-09-Java(TM)SERuntimeEnvironment18.9□代□代$java-XX:+PrintFlagsFinal-version|grepJavaHotSpot(TM)64-BitServerVM18.9(build11+28,mixedjstack的其中一个应用场景便是死锁检测。这里我用jstackJava 代$jstack"Thread-0"#12prio=5os_prio=31cpu=1.32mselapsed=34.24stid=0xjava.lang.Thread.State:BLOCKED(onobjectmonitor)atwaitingtolock ff904c0>(alocked ff904b0>(aatDeadLock$$Lambda$1/0x0000000800060840.run(UnknownSource)atjava.lang.Thread.run(java.base@11/Thread.java:834)"Thread-1"#13prio=5os_prio=31cpu=1.43mselapsed=34.24stid=0xjava.lang.Thread.State:BLOCKED(onobjectmonitor)atwaitingtolock ff904b0>(alocked ff904c0>(aatDeadLock$$Lambda$2/0x0000000800063040.run(UnknownSource)atjava.lang.Thread.run(java.base@11/Thread.java:834)JNIglobalrefs:6,weakrefs:FoundoneJava-level"Thread-waitingtolockmonitor0x00007fb (object0x whichisheldby"Thread-1""Thread-waitingtolockmonitor (object whichiswhichisheldby"Thread-Javastackinformationforthethreadslisted"Thread-at-waitingtolockff904c0>(a-lockedff904b0>(aatDeadLock$$Lambda$1/0x0000000800060840.run(Unknownatjava.lang.Thread.run(java.base@11/Thread.java:834)at-waitingtolockff904b0>(a-lockedff904c0>(aatDeadLock$$Lambda$2/0x0000000800063040.run(UnknownatFound1…)以及正在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 6031:2025 EN Functional extenders for special application - Nanoscale diamonds for polymer composites
- 【正版授权】 ISO 19396-2:2025 EN Paints and varnishes - Determination of pH value - Part 2: pH sensors with ISFET technology
- 2025年质量员之土建质量专业管理实务能力提升试卷A卷附答案
- 【赤峰】2025年内蒙古赤峰市委党校竞争性比选事业编制工作人员4人笔试历年典型考题及考点剖析附带答案详解
- 2025年施工员之土建施工基础知识题库检测试卷A卷附答案
- 2020-2025年统计师之初级统计基础理论及相关知识题库综合试卷A卷附答案
- 六盘水市2025年事业单位公开招聘笔试联考笔试历年典型考题及考点剖析附带答案详解
- 第五节分子间力和氢键第六章分子结构与性质91课件
- 第七章化工工艺图62课件
- 口腔牙髓病课件
- 医共体人事编制管理办法
- 小儿肛周脓肿护理
- 医疗器械网络销售质量管理规范宣贯培训课件2025年
- 高考英语3500个单词和短语
- 2023年汇总-历年爆破工程技术人员考试C中级原题考题
- 肺分叶分段-课件
- 《大数据习题库汇总-机器学习》复习题库(含答案)
- 苏教版数学一年级上册-全册配套课堂作业
- 交通导行方案样稿
- 贵州贵阳银行招聘笔试(六盘水地区)上岸提分题库3套【500题带答案含详解】
- 社区获得性肺炎的护理查房
评论
0/150
提交评论