记一次通过arthas+profilier解决队列内存爆炸问题

Arthas线上故障案例分析——内存使用率上升,负载突然变高 arthas是阿里的一款线上故障分析工具,对jvm当前的上线文可以进行实时监控,下文会介绍我在实际过程中是如何使用arthas来定位问题的。 阅读详情
  • 前倾纪要

测试环境测试 发现跑一段时间内存会居高不下 不一会cpu也会爆满。推测是哪里缓存数据出了问题 遂用上了神器‘arthas’

  • 解决方法

首先下载就不说了 官网针对不同系统都有 然后我们启动arthas
请添加图片描述> 我要测试1 所以输入1
请添加图片描述
这里启动成功了 目前做的第一步是要观察cpu 与内存的变化 所以输入命令 dashboard
请添加图片描述> 这里会列出cpu 及内存的 还有gc的使用情况
观察一阵后发现 gc 会执行 但是一段时间后 及时几个线程一起去gc 内存还是居高不下 说明有强引用占用内存
输入命令"heapdump" 下载文件 并用profilier 打开
请添加图片描述> 果然和想的差不多 大量hashMap占用很多内存 继续分析 右击选中并请添加图片描述
点击确定会告诉你 这些hashMap是哪里来的
请添加图片描述
经过层层打开 发现是队列 disreptor 的ringBuffer 持有
打开代码发现ringbufferSize = 10241024
将值修改成2 再次测试问题没有了
原来我们每次会传输500左右的数据 一次占用一个坑位 那么1024
1024 会循环占用只有下一次数据来了 才会清理上一次的 这样持久下去 内存就会居高不下 所以把这个值适当减小就可以了。

特此记录 不得不感叹 arthas 真好用

arthas常用命令,排查cpu和内存场景 查看jvm总体信息,包括线程,内存和运行环境。 阅读详情

相关推荐

arthas 内存占用过大排查

arthas是阿里的一款线上故障分析工具,对jvm当前的上线文可以进行实时监控,下文会介绍我在实际过程中是如何使用arthas来定位问题的。背景测试反应系统反应较慢,后端服务无法进行响应;故障分析一个月前的测试使用中并未出现该问题,原因可能:1、近期业务编码出现问题(多层循环、逻辑错误等);2、近期大数据量测试,数据量增大内存不够;

li371490890的博客 3499

arthas使用分析

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。Arthas实现的原理:利用Instrumentation实现Java字节码的动态修改和增强,以实现方法拦截等功能。(Instrumentation是JDK1.5后新增的一个特性,它允许在程序运行时动态地修改或者增强Java类的行为,而不需要修改原始的字节码文件。

leixingbang的专栏 5707

【死磕JVM】用Arthas排查JVM内存 真爽!我从小用到大

Arthas 是Alibaba开源的Java诊断工具,采用命令行交互模式,提供了较为丰富的功能,主要还是他是免费里面的算是好用且功能比较强大的一个JVM排查的插件,在了解这个利器之后,发现还是挺好用的,而且支持的功能也比较全面,那么Arthas到底可以为我们做哪些事情呢?当我们输入a的时候打印2,但是我们上线以后才发现,我们需要输出的1,这个是如果要从本地更改要重新发布上线,为了这一个修改,明显是不值当的,但是如果我们用 redafine 热部署就可以帮助我们直接替换,不用重新发布jvm。

java_lujj的博客 4876

如何使用arthas排查java web服务内存占用过高的问题

Arthas 是一个 Java 诊断工具,可以帮助开发者快速定位和解决 Java 应用程序的问题。首先需要安装 Arthas,可以通过官方网站下载最新版本的 Arthas,解压后进入 bin 目录即可使用。这个命令会输出指定类的实例数量和占用内存大小,可以根据占用内存大小的排名来找出可能存在内存泄漏的类。这个命令会输出指定类的实例列表,可以根据实例的属性和引用关系来分析内存泄漏的原因。这个命令会打开一个 Web 页面,可以查看当前进程的 CPU、内存、线程等信息。2. 找出内存占用过高的进程。

worldkingpan的专栏 1万+

JVM内存分析工具-Arthas 教程[详细]

Arthas(阿尔萨斯)是阿里巴巴开源的一款Java诊断工具,用于实时检测、诊断Java应用程序的性能问题。它是一个命令行工具,提供了丰富的功能,包括查看类加载信息、方法执行耗时、线程堆栈、内存分析等。Arthas 的设计目标是在生产环境中实时诊断和解决Java应用程序的问题。实时性: Arthas 可以在运行中的 Java 进程中实时进行诊断,无需重新启动应用。丰富的命令: 提供了众多的命令,涵盖了类加载、方法执行、线程、内存、GC 等多个方面。动态追踪。

应无所住而生其心 6479

用C++从零复刻Wordle:手把手教你实现命令行猜词游戏(含完整源码解析)

本文详细介绍了如何使用C++从零开始实现一个命令行版本的Wordle猜词游戏,包含完整的源码解析和核心模块设计。通过游戏逻辑控制器、单词库管理器等模块的构建,开发者可以学习C++实战技巧和性能优化方法,适合提升编程能力和游戏开发兴趣。

weixin_26763955的博客 333

阿里Java诊断工具 arthas - 排查线上环境内存使用过大、线程cpu使用率高问题

一、arthas 上篇文章对arthas的安装以及指令做了展示,可以感觉出arthas提供的指令还是挺多的,上篇文章没有对指令进行过多的演示,目的是大家在学习arthas后,就可以在上篇文章或者官方文档中统一查找定位使用哪个指令了,本篇文章借助arthas排查应用内存使用过大、线程cpu使用率高问题,可以加深大家对arthas指令的理解。 下面是上篇文章的地址: https://blog.youkuaiyun.com/qq_43692950/article/details/122686329 二、排查应用内存使用过

小毕超博客 4万+

从仿真到实践:两级直接耦合放大电路的静态工作点协同调试指南

本文详细解析了两级直接耦合放大电路的静态工作点协同调试方法,从仿真到实践提供系统指南。重点介绍了Rc2电阻调整技巧、集电极电位测量方法及常见问题排查,帮助工程师解决各级静态工作点相互影响的难题,提升模拟电路设计效率。

weixin_29189373的博客 124

排查线上环境内存使用过大

Java面试过程中,对于项目线上遇到的问题会问一些,比如遇到哪些问题,怎么排查的,后期怎么修复的等等!我也整理了一些,请参考。以上就是今天要讲的内容,本文仅仅简单介绍了arthas的使用,和hprof的分析。...

新手学堂 5524

企业多部门网络隔离实战:用华为交换机VLAN+Trunk实现行政/技术部安全隔离

本文详细介绍了如何利用华为交换机的VLAN划分与Trunk链路技术,实现企业行政与技术部门间的网络逻辑隔离。通过具体的配置案例,阐述了Access与Trunk端口的工作原理、单交换机与多交换机环境下的部署策略,并延伸至三层网关部署与ACL访问控制,为企业构建安全、高效的核心网络提供实战指导。

p4q5r6s7t的博客 577

SAP-ABAP:SAP中如何查看系统表之间的关联关系?

在业务逻辑开发或者ALV开发过程中,我们通常要从系统中找出几个标准表之间的关联关系,有的是head与item,通过外键进行关联的关系。那么怎么去找到呢?以上就是具体如何产看系统表之间的关联关系的步骤,对于不同代码的业务顾问,也是必须要掌握的。

LinkStar的博客 2430

arthas java内存工具使用

arthas工具排查问题常用命令。watch,jad,vmtool,getstatic,查看变量的值,反编译java源代码

qq_42602993的博客 3658

SAP 错误消息调试之七种武器:让所有的错误消息都能被定位

目录 长生剑 - SAPGUI Where Used List 碧玉刀 - ABAP调试器观察点 霸王枪 - ABAP调试器动态断点 多情环 - ABAP代码静态扫描 孔雀翎 - SAT 离别钩 - ST05 拳头 - 迷之方法??? Jerry在2018年开始用中文在微信公众号平台上写作之前,在SAP官方社区上总共写了639篇英文博客。 其中有一篇写于2013年介绍ABAP调试技巧的博客:

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2805

记一次堆外内存泄漏分析

记一次堆外内存泄漏分析

聚焦AI技术前沿,深度解析大模型原理与多场景应用,探索最新突破与落地实践,助力行业洞悉趋势,驱动智能转型,赋能千行百业。 1万+

Android12+RK3588 多应用录音适配

两个应用能够同时录音,在Android12上的实现

guanmingyuangmy的博客 2223

铁路场景雷达点云目标识别与追踪系统

本文介绍了一种基于毫米波雷达的铁路货运车站安全监控系统。该系统采用分布式架构,通过多个毫米波雷达节点采集点云数据,经过坐标转换、多雷达融合等处理后,利用机器学习算法实现列车、行人等目标的实时识别与追踪。系统包含数据采集层、处理层、目标识别层、追踪层、预警决策层和可视化层,能够克服传统视频监控受环境影响大的缺点,实现全天候可靠监测。文中详细展示了雷达数据解析和点云预处理的代码实现,包括坐标转换、数据格式解析和体素网格滤波等关键技术。该系统可有效预警铁路场景下的碰撞风险,提升货运车站的安全管理水平。

huanghm88的专栏 124

Jvm.分析工具(jconsole,jvisualvm,arthas,jprofiler,mat)

定位排查问题时最为常⽤命令包括:jps(进程)、jmap(内存)、jstack(线程)、jinfo(参数)等。jps:查询当前机器所有Java进程信息jmap:输出某个 Java 进程内存情况jstack:打印某个 Java 线程的线程栈信息jinfo:⽤于查看 jvm。......

记录 分享 成就 2912

鸿蒙系统开发工程师:核心技术解析与深度面试指南

摘要: 鸿蒙系统开发工程师需具备底层驱动开发、系统移植优化及分布式架构能力。核心职责包括硬件适配(Bootloader、内核移植、HDF驱动开发)、性能调优(启动加速、功耗管理)及稳定性保障。技术要求涵盖C/C++编程、Linux内核机制、鸿蒙架构(HDF、分布式服务)及ArkTS/ArkUI基础。面试重点考察系统移植流程(如ARM板适配)、驱动开发(I2C/Display)、性能优化手段及内存/同步机制的应用。

郑伟强dev的专栏 429

Arthas Profiler 事件监控场景介绍

通过上述场景的介绍,可以看出Arthas提供的一系列Profiler功能非常强大,它们允许开发者在不修改代码和不重启服务的情况下,实时地监控和分析Java应用程序的运行状态,从而高效地定位和解决生产环境中的问题。通过设置间隔定时器,分析了晚间8点至10点之间的方法调用数据,发现了几个影响加载性能的瓶颈方法,并在后续进行了优化。假设一个在线购物平台在促销期间遭遇性能瓶颈,通过监控CPU使用情况,发现订单服务中的一个复杂查询方法消耗了大量CPU资源,进一步优化该方法的查询逻辑,解决了性能问题。

庄的博客 1539

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【arthas诊断CPU和内存问题实战】thread -n 5 + cpu火焰图 +内存火焰图

很清晰看出来:是心跳占用时间长,我们可以结合trace进一步分析到底哪个类中哪个方法占用时间长。看下蓝色的就知道哪个对象最多,目前看出来是: HashMap啥的。可与看出 SceneWorker占比最高,但是是哪个类中哪个方法则不是太清楚。因此最终使用trace去定位到底哪行代码占用cpu最长。step1: 先查看哪个线程占比cpu最高。横向:表示执行时间占比。2.输出火焰图采样html。通过线程信息分析CPU。通过线程信息分析CPU。1.开始内存火焰图采样。step2.分析代码。通过火焰图分析CPU。

focus-unchanged-thing 4022

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

深度剖析JVM调优法则,神器Arthas从CPU/内存出发轻松掌握调优实战技巧

在dashboard页面中,可以通过点击左侧的“Memory”标签页,查看Java应用程序的内存占用情况。其中,“Heap Memory Usage”图表显示了Java堆内存的使用情况,“Non-Heap Memory Usage”图表显示了非Java堆内存(如永久代、Metaspace等)的使用情况。我们可以通过观察这些图表,找出Java应用程序中存在的内存泄漏或其他内存问题。mat还比较智能,直接把存在问题的给你列出来。从线程栈信息中定位到具体的java代码。如何不记得命令可以在控制台输入help。

Hanko的专栏 1861

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

三步搞定OOM内存溢出,记一次使用Arthas处理OOM内存溢出问题java.lang.OutOfMemoryError: Java heap space

记录一次典型的OOM内存溢出问题,使用了Arthas和jvisualvm分析并查找问题的根源,三步搞定OOM内存溢出

cmw1085215666的博客 8498

JVM内存模型与Arthas诊断实战

本文将从‌JVM内存模型‌的基础原理出发,结合‌Arthas诊断工具‌的实战应用,系统性地讲解内存问题排查、性能调优策略。

递归尽头是星辰 1345

用它调试线上bug,真得劲!

arthas中文直译过来叫阿尔萨斯,是阿里巴巴开源的java应用诊断工具,在线排查问题,无需重启服务,实时监控jvm状态。支持JDK6以上版本,支持Linux/Mac/Window操作系...

架构师小秘圈 819
上一篇: Clickhouse 踩坑之旅 ---- MergeTree不合并分区的问题
下一篇: Mysql主从配置
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值