Arthas GC日志-JVM(十八)

news2024/9/30 19:37:28

上篇文章说jvm的实际运行情况。

Jvm实际运行情况-JVM(十七)

  • Arthas介绍

因为arthas完全是java代码写的,我们直接用命令启动:

Java -jar arthas-boot.jar

启动成功后,选择我们项目的进程。

进入我们可用dashboard查询看板。

之后可以看到76线程较高,用thread 线程id来查看哪些异常导致cpu过高。

arthas的 jad命令可以反编译线上代码。

当我们系统上线,但我们感觉并没有把代码上线,或者上错分支,这时候怎么办呢,于是可以用这个命令来反编译代码,看看是否正常。

当我们需要查看某个类里对象的值,这时候可以通过

ognl @com.zto.jvm.JvmController@hashSet

甚至调用线上代码修改里面的值:

ognl @com.zto.jvm.JvmController@hashSet.add(“arthasAdd”)

  • GC日志详解

Java -jar -Xloggc:./gc-%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps

-XX:+PrintGCTimeStamps -XX:+PrintGCCause

-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10

-XX:GCLogFileSize=100M service-eureka-server.jar

这里解释下会把时间戳替换成%t

陆续分段打到10个文件,打100M,保留10个文件,超过一个G则会覆盖。

Parallel:

图上是parallel策略垃圾收集,可以看到minor GC和fullGC。

年轻代在minorGC之前有57M,发生垃圾收集之后成为65M,年轻代总大小为66M。

218M为堆的总大小。

fullGC原因在日志文件也可以看到,原因是Metadata GC threshold,元空间不够。

为什么都是元空间不够导致的fullGC呢,因为项目刚启动,加载类,每次元空间加载类信息满了,会扩展内存加载新的类,所以项目启动时候会因为元空间不够多次fullGC。

CMS:

这时候我们需要改jvm启动参数:

-Xloggc:d:/gc-cms-%t.log  

-XX:+UseParNewGC -XX:+UseConcMarkSweepGC

-Xms50M -Xmx50M

首先垃圾收集器改为parNew和CMS,为了快速内存溢出,我们把堆大小设置成50M。

从这些日志可以看到,我们cms垃圾收集器的过程,初始化标记,是会STW的,然后会并发标记,之后重新标记又会STW,之后并发清理会有新对象,这时候标记成黑色方便下次清理,这属于浮动垃圾。

当进入的对象速率超过垃圾回收器回收对象时间,这时候则会单线程serail垃圾回收器回收,从图中Allocation Failture就可以看到内存溢出会进入单线程回收。

G1:

这时候我们需要改jvm启动参数:

-Xloggc:d:/gc-g1-%t.log  -XX:+UseG1GC

这是G1的初始标记,并发标记,最终标记,回收。

Java -XX:+PrintFlagsInitial打印默认值。

Java -XX:+PrintFlagsFinal打印运行程序生效值。

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

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

相关文章

ATFX汇评:非农就业报告来袭,汇市或迎剧烈波动

ATFX汇评:美国非农就业报告每月发布一次,其中非农就业人口和失业率两项数据最受关注。7月季调后非农就业人口,将于今日20:30公布,前值为20.9万人,预期值20万人;7月失业率,同一时间公布&#xff…

文字转语音

键盘获取文字,转化为语音后保存本地 from win32com.client import Dispatch from comtypes.client import CreateObject from comtypes.gen import SpeechLib speakerDispatch(SAPI.SpVoice) speaker.Speak(请输入你想转化的文字) datainput(请输入:)#s…

【二等奖方案】Web攻击检测与分类识别赛题「机器学习」团队解题思路

2022 CCF BDCI 数字安全公开赛 赛题「Web攻击检测与分类识别」 地址:http://go.datafountain.cn/4Zj 机器学习战队 获奖方案 团队简介 我们团队由五名成员组成,对机器学习都非常感兴趣,同时在机器学习领域有着丰富的实战经验&#xff0c…

Teams Room视频会议室方案

需求背景: 适合在40平米的会议室参加Teams视频会议,会议桌周围可以坐20人,要求: 1,操作简单,一键入会Teams Room; 2,任何人带上自己的笔记本电脑,可以分享电脑画面&#…

uniapp 持续获取定位(登录状态下才获取)(不采用定时器)(任意页面都可监听定位改变)

基于上次文章做了优化和改良,保证在登录状态下才获取定位信息 uniapp 小程序实时且持续获取定位信息(全局设置一次)(单页面监听定位改变)(不采用定时器)_uniapp小程序定位_前端小胡兔的博客-CSDN博客本篇文章实现了uniapp 微信小程序实时获取定位信息,小程序打开即可持续获取定…

2023年我想开信用账户!融资融券开通佣金最低是多少?两融利率低至5%!

2023年融资融券开通佣金最低是多少?两融利率低至5%! 随着科技的不断发展和金融市场的日益完善,2023年的融资融券市场将迎来更加便捷和低成本的交易方式。据悉,融资融券开通佣金最低仅为5%,且利率也将进一步降至5%左右。…

eeglab(自用)

目录 1.加载、显示数据 2.绘制脑电头皮图 3.绘制通道光谱图 4.预处理工具 5.ICA去除伪迹 5. 提取数据epoch 1.加载、显示数据 观察事件值(Event values):该数据集中包含2400个事件,每个事件指定了EEG.event结构的字段Type(类型)、position(位置)和…

HCIP BGP选路规则总结

选路前提条件 多条BGP路由目标相同,且均可优(下一跳可达、同步关闭),具有相同的优先级(管理距离)。 1、优选Preference_Value值最高的路由(私有属性,仅本地有效)。 不传递 权限最高属性 …

为什么vscode访问谷歌浏览器是显示白色????

1、我的代码没有错误: 2、访问谷歌浏览器就显示白色???是什么情况

【word中如何插入带圆圈的数字编号】

第一种方法 在插入菜单栏选择编号 输入需要插入的数字,并选择编号类型 即可成功创建一个圆圈数字编号 第二种方法 在输入原本的数字后,选中数字,点击开始菜单栏中的字 选择所需的符号点击确定 即可成功添加带圈文字,但此种…

C#使用EmguCV播放视频

目录 一、前言 1、简介 2、测试工程代码下载链接 3、EmguCV 库文件下载链接 二、工程环境配置 1、EmguCV控件添加引用 (1)窗口控件添加 (2)相关Dll文件添加添加引用 (3)工程运行基础文件夹添加 &a…

棱镜七彩正式加入龙蜥社区安全联盟(OASA)

近日,龙蜥社区安全联盟(OASA)正式成立,棱镜七彩成为该联盟成员单位。 龙蜥社区安全联盟是促进产业合作的非营利组织,致力于打造中立开放、聚焦操作系统信息安全的交流平台,推进龙蜥社区乃至整个产业安全生态…

【计算机视觉 | 目标检测 | 图像分割】arxiv 计算机视觉关于目标检测和图像分割的学术速递(7 月 31 日论文合集)

文章目录 一、检测相关(9篇)1.1 Semi-Supervised Object Detection in the Open World1.2 Multi-layer Aggregation as a key to feature-based OOD detection1.3 Non-invasive Diabetes Detection using Gabor Filter: A Comparative Analysis of Different Cameras1.4 Local …

【福建事业单位-推理判断】03类别推理

【福建事业单位-推理判断】03类别推理 一、类别推理1.1语义关系考点一、近义反义关系(不需要严格的,意思相近即可)近义反义的二级辨析(感情色彩)考点二:比喻义、象征义 1.2 逻辑关系1.2.1全同关系&#xff…

【性能测试】性能数据采集工具nmon安装使用及报告参数含义详解

目录 nmon nmon下载 解压安装 启动 数据采集配置 生成图形结果 nmon报告中的参数含义 资料获取方法 nmon nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文…

OJ:C++ | [vector] — 力扣

文章目录 118. 杨辉三角 - 力扣思路解: 17. 电话号码的字母组合 - 力扣思路:递归解: 137. 只出现一次的数字 II- 力扣思路:解: 118. 杨辉三角 - 力扣 题目链接:118. 杨辉三角 - 力扣(LeetCode&…

车载开发核心技术——SystemUI控制技术

SystemUI是指车载开发中的一个重要组件,它负责管理和控制车机的用户界面和交互功能。本文将详细介绍SystemUI的各项控制技术,包括音量控制、RingtonePlayer、电源管理、任务管理、通知栏和服务定制,并提供相关代码示例和解析。 一、音量控制…

【Docker】Docker容器化技术基础

Docker容器化技术 Docker(软件跨环境迁移)Docker概念:安装Dockerdocker架构配置Docker镜像加速器 一、Docker命令服务daemon相关的命令镜像相关命令Docker容器相关命令 二、Docker容器的数据卷数据卷概念配置数据卷配置数据卷容器 三、Docker…

【linux--->数据链路层协议】

文章目录 [TOC](文章目录) 一、数据链路层协议概念二、以太网帧格式1.字段分析 三、局域网通信原理四、ARP协议1.结构2.作用3.ARP通信过程4.ARP协议相关命令 五、局域网内中间人原理六、DNS系统(域名系统)1.域名概念2.DNS系统组成3.DNS协议3.浏览器输入域名后的通信过程4.dig工…

网络授权验证在线发卡系统是什么

软件授权发卡系统是一种用于对软件进行授权管理的系统。在当前数字化时代,软件授权发卡系统的应用越来越广泛,不仅可以帮助软件开发商保护自己的软件知识产权,还可以帮助用户合法使用软件,从而实现双赢的局面。 软件授权发卡系统的…