JVM 学习笔记记录

Sun JDK 监控和故障处理工具

名称 主要作用
jps JVM Process Status Tool, 显示指定系统内所有的HotSpot虚拟机进程
jstat JVM Statistics Moitoring Tool,用于收集HotSpot虚拟机各方面的运行数据
jinfo Configuration info for java,显示虚拟机配置信息
jmap Memory Map for java,生成虚拟机的内存转储快照(heapdump文件)
jhat JVM Heap Dump Browser,用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果
jstack Stack Trace for java,显示虚拟机的线程快照

常用命令:

1. jps -l 查询LVMID,及主类的名称

    C:\Users\Harry>jps -l
11856 com.ssm.common.jvm.JvmTest
14368 com.ddc.template.TemplateApplication
16848
19664
6640 org.jetbrains.jps.cmdline.Launcher
7732 sun.tools.jps.Jps
2168 org.apache.zookeeper.server.quorum.QuorumPeerMain 2. jps -v 输出虚拟机进程参数 C:\Users\Harry>jps -v
11856 JvmTest -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:49232 -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 -Dfile.encoding=utf8 3. jstat -gc 11856 250 5 每250毫秒查询一次进程11856垃圾收集情况状况,一共查询5次 C:\Users\Harry>jstat -gc 11856 250 20
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
1024.0 1024.0 0.0 0.0 8192.0 7619.8 10240.0 0.0 4480.0 780.5 384.0 75.8 0 0.000 0 0.000 0.000
1024.0 1024.0 0.0 0.0 8192.0 7619.8 10240.0 0.0 4480.0 780.5 384.0 75.8 0 0.000 0 0.000 0.000
1024.0 1024.0 0.0 0.0 8192.0 7619.8 10240.0 0.0 4480.0 780.5 384.0 75.8 0 0.000 0 0.000 0.000
1024.0 1024.0 0.0 0.0 8192.0 7619.8 10240.0 0.0 4480.0 780.5 384.0 75.8 0 0.000 0 0.000 0.000
1024.0 1024.0 0.0 0.0 8192.0 7619.8 10240.0 0.0 4480.0 780.5 384.0 75.8 0 0.000 0 0.000 0.000 4. jstat -gc 11856 只查询一次 C:\Users\Harry>jstat -gc 11856
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
1024.0 1024.0 0.0 0.0 8192.0 7619.8 10240.0 0.0 4480.0 780.5 384.0 75.8 0 0.000 0 0.000 0.000 5. jstat -gcutil 11856 查询各JVM内存使用百分比 C:\Users\Harry>jstat -gcutil 11856
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 0.00 93.01 0.00 17.42 19.75 0 0.000 0 0.000 0.000 6. jstat -gcnew 11856 查询新生代GC状况 C:\Users\Harry>jstat -gcnew 11856
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
1024.0 1024.0 0.0 0.0 15 15 0.0 8192.0 7619.8 0 0.000 7. jstat -gcold 11856 查询老年代GC状况 C:\Users\Harry>jstat -gcold 11856
MC MU CCSC CCSU OC OU YGC FGC FGCT GCT
4480.0 780.5 384.0 75.8 10240.0 0.0 0 0 0.000 0.000 8. jinfo -flag CMSInitiatingOccupancyFraction 11856 查询JVM参数的值 C:\Users\Harry>jinfo -flag CMSInitiatingOccupancyFraction 11856
-XX:CMSInitiatingOccupancyFraction=-1 9. jinfo -sysprops 11856 可以把System.getProperties()信息打印出来
C:\Users\Harry>jinfo -sysprops 11856
Attaching to process ID 11856, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.92-b14
java.runtime.name = Java(TM) SE Runtime Environment
java.vm.version = 25.92-b14
...... 10. jmap -dump:format=b,file=eclipse.bin 11856 生成java堆转储快照 C:\Users\Harry>jmap -dump:format=b,file=eclipse.bin 11856
Dumping heap to C:\Users\Harry\eclipse.bin ...
Heap dump file created 11. jhat eclipse.bin 分析dump文件,浏览器中访问http://localhost:7000 C:\Users\Harry>jhat eclipse.bin
Reading from eclipse.bin...
Dump file created Sun Jul 22 11:55:08 CST 2018
Snapshot read, resolving...
Resolving 11914 objects...
Chasing references, expect 2 dots..
Eliminating duplicate references..
Snapshot resolved.
Started HTTP server on port 7000
Server is ready. 11. jmap -heap 11856 查看堆中jvm参数情况 Attaching to process ID 11856, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.131-b11 using thread-local object allocation.
Parallel GC with 8 thread(s) Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 1073741824 (1024.0MB)
NewSize = 357564416 (341.0MB)
MaxNewSize = 357564416 (341.0MB)
OldSize = 716177408 (683.0MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 0 (0.0MB) Heap Usage:
PS Young Generation
Eden Space:
capacity = 310902784 (296.5MB)
used = 90540600 (86.34624481201172MB)
free = 220362184 (210.15375518798828MB)
29.121836361555385% used
From Space:
capacity = 23068672 (22.0MB)
used = 11927744 (11.37518310546875MB)
free = 11140928 (10.62481689453125MB)
51.70537775213068% used
To Space:
capacity = 22544384 (21.5MB)
used = 0 (0.0MB)
free = 22544384 (21.5MB)
0.0% used
PS Old Generation
capacity = 716177408 (683.0MB)
used = 82475416 (78.6546859741211MB)
free = 633701992 (604.3453140258789MB)
11.516059439842035% used 13. jmap -dump:live,format=b,file=heap.hprof 11856
将heap.hprof传输出来到window电脑上使用mat工具分析。 14. jhat -heap 11856 显示java堆详细信息,如使用哪种回收器、参数配置、分代状况等,只在linux平台才可以测试 15. jstack -l 11856 除堆栈外,显示锁的附加信息 "Finalizer" #3 daemon prio=8 os_prio=1 tid=0x00000000152da800 nid=0x18b4 in Object.wait() [0x000000001664e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ff608ee0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
- locked <0x00000000ff608ee0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209) Locked ownable synchronizers:
- None "Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x00000000152b9000 nid=0x444c in Object.wait() [0x000000001654f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ff606b50> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
- locked <0x00000000ff606b50> (a java.lang.ref.Reference$Lock)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153) Locked ownable synchronizers:
- None

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

JVM 学习笔记记录的更多相关文章

  1. java之jvm学习笔记十三(jvm基本结构)

    java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成 ...

  2. JVM学习笔记-第三章-垃圾收集器与内存分配策略

    JVM学习笔记-第三章-垃圾收集器与内存分配策略 tips:对于3.4之前的章节可见博客:https://blog.csdn.net/sanhewuyang/article/details/95380 ...

  3. JVM学习笔记-第六章-类文件结构

    JVM学习笔记-第六章-类文件结构 6.3 Class类文件的结构 本章中,笔者只是通俗地将任意一个有效的类或接口锁应当满足的格式称为"Class文件格式",实际上它完全不需要以磁 ...

  4. JVM学习笔记-第七章-虚拟机类加载机制

    JVM学习笔记-第七章-虚拟机类加载机制 7.1 概述 Java虚拟机描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被 ...

  5. JVM学习笔记——内存结构篇

    JVM学习笔记--内存结构篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的内存结构部分 我们会分为以下几部分进行介绍: JVM整体介绍 程序计数器 虚拟机栈 本地方法栈 堆 方法 ...

  6. JVM学习笔记——垃圾回收篇

    JVM学习笔记--垃圾回收篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的垃圾回收部分 我们会分为以下几部分进行介绍: 判断垃圾回收对象 垃圾回收算法 分代垃圾回收 垃圾回收器 ...

  7. JVM学习笔记——类加载和字节码技术篇

    JVM学习笔记--类加载和字节码技术篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的类加载和字节码技术部分 我们会分为以下几部分进行介绍: 类文件结构 字节码指令 编译期处理 类 ...

  8. JVM学习笔记——内存模型篇

    JVM学习笔记--内存模型篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的内存模型部分 我们会分为以下几部分进行介绍: 内存模型 乐观锁与悲观锁 synchronized优化 内 ...

  9. Activiti 学习笔记记录(2016-8-31)

    上一篇:Activiti 学习笔记记录(二) 导读:上一篇学习了bpmn 画图的常用图形标记.那如何用它们组成一个可用文件呢? 我们知道 bpmn 其实是一个xml 文件

随机推荐

  1. PDF无法复制/打印/编辑怎么办?

    PDF的内容不能复制/打印/编辑,主要有两种原因: 1.PDF文件设置了权限保护 2.PDF内容是图片 第一种,PDF被设置了权限保护 这种的特点是可以选中PDF里的文字,但无法复制 PDF格式标准内 ...

  2. 【SpringCloud】Gateway 配置全局过滤器获取请求参数和响应值

    [SpringCloud]Gateway 配置全局过滤器获取请求参数和响应值 实现Ordered接口getOrder()方法,数值越小越靠前执行,记得这一点就OK了. 获取请求参数RequestBod ...

  3. Django项目中集成第三方登录时出现的错误

    原以为是被反爬 没想到 总结:这里的http应该是https协议,以后要更加小心 了,不能犯这种低级错误

  4. GAN网络从入门教程(二)之GAN原理

    在一篇博客GAN网络从入门教程(一)之GAN网络介绍中,简单的对GAN网络进行了一些介绍,介绍了其是什么,然后大概的流程是什么. 在这篇博客中,主要是介绍其数学公式,以及其算法流程.当然数学公式只是简 ...

  5. Raft论文《 In Search of an Understandable Consensus Algorithm (Extended Version) 》研读

    Raft 论文研读 说明:本文为论文 < In Search of an Understandable Consensus Algorithm (Extended Version) > 的 ...

  6. h5手机摇一摇功能实现:基于html5重力感应DeviceMotionEvent事件监听手机摇晃

    DeviceMotionEven是html5提供的一个用来获取设备物理方向及运动的信息(比如陀螺仪.罗盘及加速计)的Dom事件,事件描述如下: deviceorientation:提供设备的物理方向信 ...

  7. Evacuation,题解

    题目: 题意: 有人,门(只有边上有,且1s只能出去一个人),和墙,每s人可移动一个格子,问多少秒所有人可以逃出,逃不出输出“impossible” 分析: 首先,我们先想着样一个问题,如果这个人在某 ...

  8. Caocao's Bridges HDU - 4738 求桥

    题目描述 Caocao was defeated by Zhuge Liang and Zhou Yu in the battle of Chibi. But he wouldn't give up. ...

  9. linux篇---根据端口号查看进程位置

    1)说明:Linux的所有进程都保存在/proc/目录下,保存形式为:/proc/进程号.进入到进程号目录后,里面有一个cwd链接文件即指向的进程的的目录. 2) 操作: A:根据端口号查进程 如:l ...

  10. linux环境下安装 openOffice4并启动服务

    一.背景故事 openOffice是用来做office文档在线预览功能,把office文档转换成pdf交给前端显示. 之前系统开发过程一直没有将springboot服务怼上服务器,所以只安装了wind ...