jvm 命令和工具, jvm 堆 内存泄露 fullgc

news2024/11/25 0:30:37

目录

堆太大?

堆内存分析工具

MAT

JProfiler 

ZProfiler - 线上的mat - 已进化为Grace

EagleEye-MProf - 命令行

jhat

jvisual

问题

w使用JProfiler和MAT打开内存超大的hprof文件时报错的解决方案_hprof太大_CoderBruis的博客-CSDN博客 很简单,把jvm参数调整下,设置小一点, 复现下.

命令行

线程池排查

jstack 

jmap -dump

jmap -heap

 jstat


堆太大?

  方法1: 重新设置堆后,重启,复现.

  方法2:  切割

split -b 1M heap.bin smallfile
scp smallfile* username@mac-host:/Users/username/
cat smallfile* > heap.bin

堆内存分析工具

MAT

eclipse官方推出的本地内存分析工具,运行需要大量内存,从使用角度来讲,并不方便。我现在已经很少使用。

JProfiler 

用jprofiler来分析内存泄露,fullgc from fei33423

ZProfiler - 线上的mat - 已进化为Grace

阿里中间件出品的在线堆内存分析工具,链接是:http://zprofiler.alibaba-inc.com,不需要拷贝镜像文件,直接在线分析。

Grace 是一款开源用于解决应用程序中出现的常见问题的软件,其开源版本为Jifa,前身为Zprofiler。

阿里巴巴加入 Eclipse 基金会,开源一站式 Java 应用诊断平台 -- Eclipse Jifa-阿里云开发者社区

EagleEye-MProf - 命令行

也是阿里中间件团队推出的,适用于复杂云环境的轻量级java堆内存分析工具,非常好用。在公共云或者专有云的机器上,运行的是客户的机器。由于权限或者网络的关系,我们很难去执行jmap进行heap dump,或者scp上传dump文件。这个工具可以直接在ECS上分析,而不用下载dump文件。

jhat

jht -port 8031 heap.bin

使用jhat分析jmap生成的dump转储快照_jmap 导出某个线程_一点光辉的博客-CSDN博客

jvisual

jdk使用自带工具查看.hprof文件_jdk 查看hprof_fxwwq1823tcd9的博客-CSDN博客

which java 

然后进入导目录,找到jvisual 打开

问题

w使用JProfiler和MAT打开内存超大的hprof文件时报错的解决方案_hprof太大_CoderBruis的博客-CSDN博客 很简单,把jvm参数调整下,设置小一点, 复现下.

命令行

jmap , jstack  ,jstat

线程池排查

Linux下查看消耗CPU的线程 占用 100% java jvm 堆栈_linux查看栈使用率_个人渣记录仅为自己搜索用的博客-CSDN博客

jstack 

jmap -dump

jmap -dump:format=b,file=heap.bin 1234

  oom自动堆保存 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=c:\test.hprof

分析 Heap Dump 的工具都可以获取 Heap Dump 文件。
比如:jdk 自带的工具 jvisualvm。
其它工具:Eclipse memory analyzer(jmat)、JProfiler 等。

jhat 分析 使用jhat分析jmap生成的dump转储快照_jmap 导出某个线程_一点光辉的博客-CSDN博客

jmap -heap

$ jmap -heap 108920

$ jmap -heap 108920
Attaching to process ID 108920, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.242-b716

using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC

Heap Configuration:
   MinHeapFreeRatio         = 40
   MaxHeapFreeRatio         = 70
   MaxHeapSize              = 3984588800 (3800.0MB)
   NewSize                  = 1572864000 (1500.0MB)
   MaxNewSize               = 1572864000 (1500.0MB)
   OldSize                  = 2411724800 (2300.0MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 536870912 (512.0MB)
   CompressedClassSpaceSize = 528482304 (504.0MB)
   MaxMetaspaceSize         = 536870912 (512.0MB)
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 1415577600 (1350.0MB)
   used     = 1320560416 (1259.3845520019531MB)
   free     = 95017184 (90.61544799804688MB)
   93.28774459273727% used
Eden Space:
   capacity = 1258291200 (1200.0MB)
   used     = 1258291200 (1200.0MB)
   free     = 0 (0.0MB)
   100.0% used
From Space:
   capacity = 157286400 (150.0MB)
   used     = 62269216 (59.384552001953125MB)
   free     = 95017184 (90.61544799804688MB)
   39.589701334635414% used
To Space:
   capacity = 157286400 (150.0MB)
   used     = 0 (0.0MB)
   free     = 157286400 (150.0MB)
   0.0% used
concurrent mark-sweep generation:
   capacity = 2411724800 (2300.0MB)
   used     = 2411723936 (2299.9991760253906MB)
   free     = 864 (8.23974609375E-4MB)
   99.99996417501698% used

88407 interned Strings occupying 10045576 bytes.

 jstat

jstat -gcold 命令可以用来查看 JVM 老年代的使用情况。jstat -gcold 命令输出的每个字段的含义如下:

  • S0C:Survivor 区 0 当前使用容量(KB)。
  • S1C:Survivor 区 1 当前使用容量(KB)。
  • S0U:Survivor 区 0 使用后的容量(KB)。
  • S1U:Survivor 区 1 使用后的容量(KB)。
  • EC:Eden 区当前使用容量(KB)。
  • EU:Eden 区使用后的容量(KB)。
  • OC:老年代当前使用容量(KB)。
  • OU:老年代使用后的容量(KB)。
  • PC:永久代当前使用容量(KB)。
  • PU:永久代使用后的容量(KB)。
  • YGC:从应用程序启动到采样时发生的 Young GC 次数。
  • YGCT:从应用程序启动到采样时 Young GC 所用的时间(秒)。
  • FGC:从应用程序启动到采样时发生的 Full GC 次数。
  • FGCT:从应用程序启动到采样时 Full GC 所用的时间(秒)。
  • GCT:从应用程序启动到采样时所有 GC 所用的时间(秒)。

其中,S0C、S1C、EC 和 OC 分别表示 Survivor 区、Eden 区和老年代的当前使用容量,S0U、S1U、EU 和 OU 分别表示 Survivor 区、Eden 区和老年代使用后的容量,YGC 和 FGC 分别表示 Young GC 和 Full GC 的次数,YGCT 和 FGCT 分别表示 Young GC 和 Full GC 所用的时间,GCT 表示所有 GC 所用的时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/630392.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3---模板引用 nextTick

目录 模板引用--ref 访问模板引用 v-for 中的模板引用 函数模板引用 组件上的 ref 简单理解Vue中的nextTick 示例 二、应用场景 三、nextTick源码浅析 实战 --- vue3实现编辑与查看功能 模板引用--ref 虽然 Vue 的声明性渲染模型为你抽象了大部分对 DOM 的直接操作&…

TOF激光雷达告别“技术路线之争”

交流群 | 进“传感器群/滑板底盘群/汽车基础软件群/域控制器群”请扫描文末二维码,添加九章小助手,务必备注交流群名称 真实姓名 公司 职位(不备注无法通过好友验证) 编辑 | 苏清涛 两三年前,在提起激光雷达时&…

067:cesium flyto一个具体的实体位置

第067个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置飞行定位功能,飞行到一个实体的区域。viewer.flyTo 函数接受实体、EntityCollection、DataSource、Cesium3DTilset 等。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果…

8.Nginx Rewrite

文章目录 Nginx Rewrite常用Nginx的正则表达式locationlocation大致可以分为三类location常用的匹配规则location优先级location示例说明实际网站使用中,至少有三个匹配规则定义 Rewriterewrite跳转实现rewrite执行顺序如下rewrite示例基于域名的跳转基于客户端IP访…

Git常用命令及基础操作

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:Git ⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正&#x…

Linux内核安全技术——磁盘加密技术概述和eCryptfs详解

一、概述 加密是最常见的数据安全保护技术,在数据生命周期各阶段均有应用。从应用场景和技术实现上,按加密对象、用户是否感知、加密算法等维度,有多种分类及对应方案,并在主流操作系统如Windows、Linux、Android中有广泛应用。 本…

【数据湖架构】Azure 数据湖分析(Azure Data Lake Analytics )概述

在本文中,我们将探索 Azure 数据湖分析并使用 U-SQL 查询数据。 Azure 数据湖分析 (ADLA) 简介 Microsoft Azure 平台支持 Hadoop、HDInsight、数据湖等大数据。通常,传统数据仓库存储来自各种数据源的数据,将数据转换为单一格式并进行分析以…

Ae 入门系列之十三:运动跟踪与稳定

运动跟踪,通过跟踪对象的运动,然后将跟踪数据应用到另一个对象,从而可创建图层或效果在其中跟随运动的合成。 稳定运动,同样须先跟踪,之后将跟踪数据反向运用到图层自身,从而达到稳定画面的效果。 跟踪与稳…

web应用常见7大安全漏洞,浅析产生的原因!

今天整理了关于web前端的干货知识,web应用常见的有哪些安全漏洞呢,这些漏洞产生的原因又是什么呢?这些问题你想过吗? 1.SQL 注入 SQL 注入就是通过给 web 应用接口传入一些特殊字符,达到欺骗服务器执行恶意的 SQL 命…

基数排序详解(Radix sort)

本文已收录于专栏 《算法合集》 目录 一、简单释义1、算法概念2、算法目的3、算法思想4、算法由来 二、核心思想三、图形展示1、宏观展示2、微观展示 四、算法实现1、实现思路2、代码实现3、运行结果 五、算法描述1、问题描述2、算法过程3、算法总结 六、算法分析1、时间复杂度…

创新指南|如何优化创新ROI? 亟需从双模创新衡量着手

不确定性和风险是创新投资的常态,这让企业领导者和创新团队面临着一个共同的挑战:如何衡量创新ROI?本文将探讨如何在高风险创新中实现回报,需要采用探索和开发的双模机制。在这个快速变化的市场中,企业创新为了实现可持…

rk3568 SD卡启动

rk3568 SD卡启动 SD卡启动系统,它可以让rk3568在没有硬盘或其他存储设备的情况下启动和运行操作系统。这使得rk3568变得与树梅派一样灵活切换系统,与此同时进行故障排查和修复,而不需要拆卸设备或者使用专业的烧录工具。SD卡启动还可以方便地…

Git 安装并初始化 + 官网下载速度太慢的问题

目录 1. 快速下载 2. 初始化 1. 快速下载 当你兴致勃勃地去官网下载 git 的时候,突然发现,嗯??下载完成还需 9 个小时? 快速下载地址,请点这里! 打开之后是这个样子: 我们可以自…

Rocketmq 一文带你搞懂rocketmq基础

1.集群架构 从上图可以看出来一共有4个部分,分别为Producer,Consumer,NameServer,Broker 1.1 NameServer集群 虽然说NameServer是一个集群,但是每一个NameServer是独立的,不会相互同步数据,因为每个节点都会保存完整的数据&#…

音质好的骨传导蓝牙耳机有哪些,十大公认音质好的骨传导耳机

​骨传导耳机是将声音转化为不同频率的机械振动,通过人的颅骨、骨迷路、内耳淋巴液、螺旋器、听觉中枢来传递声波。由于不需要像入耳式或入耳式耳机一样堵住耳朵来避免听力受损,也不会因为在听音乐的时候塞住耳朵而影响到旁边人的交流,所以骨…

LeetCode_Day5 | 有效的字母异位词、两个数组的交集、快乐数!

LeetCode_哈希表 242.有效的字母异位词1.题目描述2.题解 349.两个数组的交集1.题目描述2.题解 202.快乐数1.题目描述2.题解思路(官方题解啊!看了好几遍真难) 算法代码实现复杂度分析 242.有效的字母异位词 1.题目描述 给定两个字符串 s 和 t ,编写一个…

滑块验证码------啥?你居然还在手动滑动,你不来试试自动滑动吗

测试网站 测试网站:https://www.geetest.com/demo/slide-float.html 我的giteer:秦老大大 (qin-laoda) - Gitee.com里面有我写的代码 作者备注:由于我个人原因,文章写得感觉太长,后面我会把一个知识分成多部文章,这样可以简单明了的看到了 验证码的思路有两种:一种是通过se…

港科夜闻|香港科大取得重大科研突破,首度利用人工智能为阿尔兹海默症作早期风险预测...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大取得重大科研突破,首度利用人工智能为阿尔兹海默症作早期风险预测。香港科大校长叶玉如教授及香港科大陈雷教授带领的研究团队,最近开发了一套人工智能模型,利用遗传信息&…

WTM框架运行报错0308010C:digital envelope routines::unsupported

WTM框架运行报错0308010C:digital envelope routines::unsupported 错误描述报错原因解决方式 错误描述 我所使用WTM搭建的程序是选择的.net5.0Vue前后端分离的方式,项目结构选择的是“各层分离的多个项目”;本人并非初次使用WTM平台框架搭建项目&#…

usb 电气特性

usb 电气特性 usb 的连线 在usb 3.0 之前都有插拔方向的 只有一边有接触点 标准usb连线使用4芯电缆: 5v电源线(VBus)、差分数据线负(D-)差分数据线正(D)及地线(GND)主要传输数据就是中间二个 D 和D- usb的数据传输…