当前位置: 首页 > news >正文

Jmap-JVM(十六)

上篇文章说了ZGC是jdk11加入的,他是未来jvm垃圾收集器的奠定者,满足TB级别内存处理,STW时间保持在10ms以下。

  • Jmap

我们可以先通过jmap -histo 进程ip 来查看,但是这样看不太清晰,我们可以用这行命令生成一个文件:jmap -histo > ./print.txt。

我们还可以通过jmap -heap 进程ip 来看堆信息。

 

以上则是命令执行后获取到的信息。

分别代表最大堆空间是3G多,年轻代74M,年轻代最大1个G,老年代171M,元空间则是20多M。

下面则是堆正在用的信息,eden的空间容量是capacity,已经使用和空闲的都显示在内,还有from svrvivor和to survivor容量和使用情况,最后old generation代表老年代使用情况。

命令:jmap -dump:format=b,file=print.hprof 进程ip

则可以导出dump文件,这里是可以通过设置jvm参数来导出的:

-XX:+HeapDumpOnOutOfMemoryError

-XX:+HeapDumpPath=./   (存放dump文件路径)

  • Jstack

命令:jstack 进程ip

 

从打印的信息可以看到,jstack很容易帮我们发现死锁,甚至连死锁在哪一行都标记出来(在165行)

Thread-20和thread-19线程互相死锁。

还可以看到他们锁的线程ip,是16进制,一个锁着0x000000078591c980

一个锁着0x000000078591c990

  • Jinfo

命令:Info -flags pid

Jinfo -sysprops pid

 

  • Jstat

命令:jstat -gc pid

 

S0C:survivor0区域,C代表当前总大小。  (单位KB)

S1C:survivor1区域,C代表当前总大小。

S0U:survivor0区域,U代表Use正在使用的区域大小。

S1U:survivor1区域,U代表Use正在使用的区域大小。

EC:eden区域,C代表当前总大小。

EU:eden区域,U代表Use正在使用的eden区域大小。

OC:old区域,C代表当前总大小。

OU:old区域,U代表Use正在使用的old区域大小。

MC:元空间区域,C代表当前总大小。

MU:元空间区域,U代表元空间正在使用的区域大小。

CCSC和CCSU代表压缩指针。

YGC:8,代表从系统启动开始youngGC发生8次GC。

TGCT:0.858,代表youngGC消耗时间0.858s。

FGC:2,代表从系统启动开始FULLGC发生2次。

FGCT:0.055,代表fullGC消耗0.055s。

GCT:FGC和YGC总的T之和。

Jstat -gc pid 1000 10 代表我要执行10次这个命令,1s执行一次。

Jstat -gccapacity pid可以查看堆情况。

Jstat -gcnew pid可以查看新生代垃圾回收。

Jstat -gcnewcapacity pid查看新生代内存。

Jstat -gcold pid老年代垃圾回收。

Jstat -gcoldcapacity pid老年代内存情况。

http://www.lryc.cn/news/100648.html

相关文章:

  • 【分布式能源的选址与定容】基于多目标粒子群算法分布式电源选址定容规划研究(Matlab代码实现)
  • flink源码分析-获取JVM最大堆内存
  • 第17节 R语言分析:生物统计数据集 R 编码分析和绘图
  • 一文了解什么是Selenium自动化测试?
  • java接口实现
  • 数据结构入门指南:链表(新手避坑指南)
  • SpringBoot第24讲:SpringBoot集成MySQL - MyBatis XML方式
  • linux 查看网卡,网络情况
  • 在Mac上搭建Gradle环境
  • Docker网络与Docker Compose服务编排
  • opencv+ffmpeg环境(ubuntu)搭建全面详解
  • 开发基于 LoRaWAN 的设备须知--最大兼容性
  • 一、SpringBoot基础[日志]
  • libuv库学习笔记-networking
  • C++多线程编程(第三章 案例1,使用互斥锁+ list模拟线程通信)
  • IOS UICollectionView 设置cell大小不生效问题
  • 浅谈3D隐式表示(SDF,Occupancy field,NeRF)
  • 软件测试技能大赛任务二单元测试试题
  • MybatisPlus拓展篇
  • 设置k8s中节点node的ROLES值,K8S集群怎么修改node1的集群ROLES
  • 【*1900 图论】CF1328 E
  • 微信开发者工具 miniprogram_npm 未找到
  • 计算机视觉(三)未有深度学习之前
  • 二十六、媒体查询2
  • Themis 国库建设计划启动,开启去中心化新征程
  • uni-app:模态框的实现(弹窗实现)
  • 第九章:stack类
  • FSM:Full Surround Monodepth from Multiple Cameras
  • idea 安装 插件jrebel 报错LS client not configured.
  • Raki的读paper小记:RWKV: Reinventing RNNs for the Transformer Era