首页 > 其他分享 >IBM_mat工具的学习与整理

IBM_mat工具的学习与整理

时间:2024-02-02 10:22:39浏览次数:25  
标签:文件 IBM dump core 内存 SQL 整理 mat

IBM_mat工具的学习与整理


背景

客户现场出现了大并发时访问异常的情况。
一开始以为是配置较低撑不住大并发的场景导致的。
然后将异常时期的dump导出来到公司后进行了一下分析
发现并不完全如此, 自己对硬件能够支撑的并发量其实判断是有错误的。 
mat工具自己账务的也不是很好。 
丁杨老师发下你可以通过dump 找到具体的执行SQL进行判断。
我一开始一直没找到具体的点, 
然后发现自己对mat的使用的确太低级了,所以想总结一下备忘。 

感谢工作中给与灵感的各位同事

情况说明-dump文件的形成

第一种: 
dump 文件可以使用 oomerror的方式自动生成。 
可以再启动脚本里面进行配置:
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./dump

第二种:
如果是kill -4 或者是堆栈内存错误导致被操作系统kill可以修改一下内容
ulimit -c umlimited 
然后修改dump文件的形成:
可以通过修改 /etc/sysctl.conf 进行修改默认文件名和路径
kernel.core_pattern = /var/core_%e_%t_%p
如果jmap命令失效可以通过如下命令生成core文件
time gcore  $pid -o core
可以通过如下命令进行转换:
jstack x86_64-linux/bin/java core.5989
jmap -dump:live,format=b,file=core.5989.hprof  x86_64-linux/bin/java core.5989
可以生成dump文件。 

mat的使用建议

1.使用大内存高主频的机器进行分析,速度会快很多。
2.使用SSD存储的设置进行分析,因为mat分析过程中会产生很多index文件
  快速硬盘能够加快分析速度。
3. 修改配置,建议堆区至少大于产生dump的java进程内存配置
范例: MemoryAnalyzer.ini 
-startup
plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.400.v20211117-0650
-vmargs
-Xmx40960M
-Xms40960M

磨刀不误砍柴工
快速的机器能够极大的提高问题定位的速度。

mat查找异常问题SQL-excel文件

这里参照丁杨老师的方案进行处理
其他比较简单的处理不再赘述。 

1. 打开mat,打开dump文件分析。 如果dump文件在30G左右
   如果采取SSD的高速存储大内存的windows机器,预计可以再半小时之内解析完。
2. 解析完成之后, 没太有必要进行直接的memory leak 分析
   建议直接点击 工具栏的 齿轮状按钮。 打开 thread_overview 
3. 按照内存进行排序,将内存使用量较大的线程放到前面。
   然后右键点击对应的线程,一般为 tomcat的 TaskThread类型。
   点击 List objects 选择 outgoing references 
4. 在打开的 list_objects 里面进行查找 
   如果是 不分页SQL导致的话能够找到对应的SQL文件。
   如果是 导入大型excel导致内存出问题的话可以找到对应的excel文件名。

需要注意 查找过程中需要仔细认真
可能有比较多的 java local 对象, 需要仔细查看分析。
不然会出现误判的问题。 

感谢丁杨老师提供的方案。 这里仅是进行一下记录, 备忘并且便于后续问题的排查。 

标签:文件,IBM,dump,core,内存,SQL,整理,mat
From: https://www.cnblogs.com/jinanxiaolaohu/p/18002655

相关文章

  • 轴调控大揭秘:Matplotlib轴设置全攻略+顺口溜,一文掌握!
    在数据可视化的世界里,Matplotlib是那把魔法棒,让枯燥的数据跃然纸上,而掌控这把魔法棒的核心,就是对坐标轴的精妙操作。今天,就让我们一起揭开Matplotlib坐标轴设置的神秘面纱,配上易记的顺口溜,让你的数据可视化之路畅通无阻!一、轴标签和标题:基础篇xlabel&ylabel:设定X轴和Y轴的标......
  • 关于pycharm报错:Original error was: DLL load failed while importing _multiarray_u
    前提:遇到该问题时,已重新卸载并安装numpy,但由于今日重新打开pycharm,运行相同的代码,又再次报错,故重新寻找了新的方式进行尝试。原文地址解决方法:Step1:点击run,找到EditConfigurationsStep2:在EnvironmentVariables后加入:Path=Anaconda根目录\Library\bin......
  • delphi中的Format、FormatDateTime函数详解(转)
    Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用:首先看它的声明:functionFormat(constFormat:string;constArgs:arrayofconst):string;overload;事实上Format方法有两个种形式,另外一种是三个参数的,......
  • 基于yolov2网络的人脸识别系统matlab仿真,包括识别正脸,侧脸等
    1.算法运行效果图预览 2.算法运行软件版本matlab2022a 3.算法理论概述      基于YoloV2网络的面部识别系统是一种先进的实时面部识别系统,它能够识别正面、侧面等各种角度的面部。这种系统主要包括三个阶段:训练阶段、预处理阶段和识别阶段。 3.1、训练阶段 ......
  • m基于Q-Learning强化学习的异构网络小区范围扩展(CRE)技术matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要        基于Q-Learning强化学习的异构网络小区范围扩展(CellRangeExtension,CRE)技术是一种旨在优化异构无线网络性能的方法。异构网络是由不同类型的基站(如宏基站、微基站、皮基站等)组成的网络,这......
  • 基于FPGA的图像RGB转CMYK实现,包含testbench和MATLAB辅助验证程序
    1.算法运行效果图预览 将仿真结果导入到matlab中,得到如下对比结果: 2.算法运行软件版本matlab2022a,vivado2019.2 3.算法理论概述       基于FPGA的图像RGB转CMYK实现是一种将RGB图像转换为CMYK图像的硬件实现方法。下面将详细介绍其原理和数学公式。 3.1、......
  • 03 什么是材质(Material)?
    什么是材质(Material)?材质(Material):描述了物体表面如何与光发生反应。模型决定了物体的形状,材质决定了外观。什么是颜色?颜色可以分为红、绿、蓝三个通道表示(三基色R、G、B),0最小,1最大(也可以是0-255)。颜色:对光本身来说,是红、绿、蓝的光强度;对于物体来说,是物体对红、绿、蓝的光的......
  • ComfyUI 安装教程 Animatediff 1000张工作流分享 请收藏
    最近SD的大更新比较少,所以最近转战到ComfyUI,从流程节点,到工作流搭建,使用ComfyUI实现webui的大部分功能,且节点的定义性很强,这就造就了ComfyUI的多样性,但是不得不承认,多节点之间的搭配,是否符合整个底层流程,通过一个工作流实现多节点插件的配合工作是比较复杂的,而ComfyUI不近支持GPU还......
  • Matplotlib绘图设置中文字体
    importmatplotlibimportmatplotlib.pyplotaspltmatplotlib.font_manager.fontManager.addfont("/home/lixg/.fonts/msyh.ttf")#查看字体名以及对应的字体文件名#forfontinfont_manager.fontManager.ttflist:#print(font.name,'-',font.fname)plt.r......
  • matlab常用脚本
    导入arxml文件%'Data.xlsx'isnecessarytoloadmodelname[~,~,rawConfig]=xlsread('Data.xlsx','Configuration');Configsize=size(rawConfig);%disp(Configsize(2));fori=1:Configsize(2) ifstrcmp(rawConfig{1,i},'Model_Name......