性能诊断定位之内存问题排查(四):CentOS7系统中,JVM内存诊断

2023-11-20

目录

1. 要求

2. 处理思路

3. 示例演示 (CentOS7 环境中)

3.1 环境工具:

3.2 操作步骤

3.2.1 JForum环境配置 (配置在tomcat中),启动Tomcat         

3.2.2 编写JMeter脚本 (脚本的编写和运行,在win10端)

3.2.3 运行jmx脚本(win10中),持续访问CentOS7中的Jforum页面

3.2.4 在CentOS7中,通过top命令查看堆具体情况,找出占用CPU高的进程的PID

 3.2.5 根据上面获取的PID,使用命令 jstat 查看堆内存整体使用情况

3.2.6 通过上面获取的PID, 使用命令 jmap 查看堆内存使用详情 

3.2.7 使用命令生成.dump文件: jmap -dump:format=b,file=${fileName}.dump $pid

3.2.8 将.dump文件从CentOS7系统中拷贝到win10系统,可用WinSCP或rz/sz命令

3.2.9 在MAT软件中打开.dump,分析,定位问题


1. 要求

通过JMeter脚本,压测JForum。压测过程中,进行CPU和内存诊断。

2. 处理思路

2.1 JForum环境配置 (配置在tomcat中)         

(1)下载classes.7z,将解压出来的classes文件替换JForum程序中原来老的classes.

   路径为: ${TOMCAT_HOME}\webapps\jforum-1.1.9\WEB-INF\classes

 (2)启动Tomcat,即可开启JForum应用。

2.2 编写并运行JMeter脚本,脚本要求:访问JForum的随机板块和最新主题, 3个并发线程

2.3 通过jmap命令,生成.dump文件

2.4 在MAT中打开.dump文件,解析并定位问题

3. 示例演示 (CentOS7 环境中)

3.1 环境工具:

(1)CentOS7

(2)apache-tomcat-7.0.86 (内置Jforum)

(3)jforum-2.1.9 (已导入相关数据库sql文件,将配置在tomcat中)

(4)classes.7z (提前准备好的文件,将替换jforum目录下原始的class)

(5)JMeter (用来生成执行访问Jforum页面的脚本)

(6)mat (MemoryAnalyzer.exe,用来打开dump文件)

3.2 操作步骤

3.2.1 JForum环境配置 (配置在tomcat中),启动Tomcat         

(1)准备好apache-tomcat-7.0.86,解压即可(可mv改名),放到CentOS7的/usr目录下。

(2)将jforum-2.1.9(已导入相关的sql数据库文件),拷贝到tomcat的webapps目录下。

(3)下载classes.7z (提前准备好的),将解压出来的classes目录替换原来老的classes.

   路径为: ${TOMCAT_HOME}\webapps\jforum-1.1.9\WEB-INF\classes

 (4)启动Tomcat。

(5)在浏览器端打开Jforum相关页面,验证网页是否可以顺利访问。

3.2.2 编写JMeter脚本 (脚本的编写和运行,在win10端)

脚本要求:访问JForum的随机板块和最新主题, 设置3个并发线程。

(1)启动JMeter。

(2)编写JMeter脚本:访问随机板块和最新主题,设置3个并发线程。

这里JMeter中访问的页面的IP,是tomcat/jforum所在的centOS服务器的IP。

3.2.3 运行jmx脚本(win10中),持续访问CentOS7中的Jforum页面


3.2.4 在CentOS7中,通过top命令查看堆具体情况,找出占用CPU高的进程的PID

这里,占用CPU高的线程,其实就是我们前面JMeter脚本持续访问Jforum页面导致的。

 
3.2.5 根据上面获取的PID,使用命令 jstat 查看堆内存整体使用情况

3.2.6 通过上面获取的PID, 使用命令 jmap 查看堆内存使用详情 

 

3.2.7 使用命令生成.dump文件: jmap -dump:format=b,file=${fileName}.dump $pid

如下,生成14778.dump文件。

3.2.8 将.dump文件从CentOS7系统中拷贝到win10系统,可用WinSCP或rz/sz命令

图略

3.2.9 在MAT软件中打开.dump,分析,定位问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

性能诊断定位之内存问题排查(四):CentOS7系统中,JVM内存诊断 的相关文章

  • Github官网进不去怎么办?Github无法访问怎么办?

    GitHub是一个面向开源及私有软件项目的托管平台 超5千万程序员正在使用 也被戏称为全球最大同性交友网站 是程序员必备网站之一 GitHub能干什么 1 托管代码 历史版本管理 当然不仅仅是代码 任何文件都支持 不少人用GitHub来写博
  • Java while循环学习小结

    while循环先判断循环条件是否满足 再执行循环语句 while循环可能一次都不执行 编写循环时要注意循环条件 并避免死循环 具体内容扫描关注公众号
  • 企业微信内部跳转小程序

    企业微信中跳转小程序 企业微信官方文档 在企业微信内快速跳转到指定的小程序页面之前需要先调用wx agentConfig wx agentConfig corpid 必填 企业微信的corpid 必须与当前登录的企业一致 agentid 必
  • Unity打包WebGL的优化常用操作?

    1 贴图部分优化 如果贴图格式时2048 在不影响画面效果的情况下 改成1024或者5 12 还可以缩小包体 2 压缩和解压缩问题 WebGL打包的时候分三种压缩情况 gzip 比Brotli文件打 但打包快 http和https都支持 B
  • 管道

    管道 pipe 管道可用于具有亲缘关系进程间的通信 有名管道克服了管道没有名字的限制 因此 除具有管道所具有的功能外 它还允许无亲缘关系的进程间通信 实现机制 管道是由内核管理的一个缓冲区 相当于放入内存的一个纸条 管道的一端连接一个进程的
  • 什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试?

    什么是静态测试 动态测试 黑盒测试 白盒测试 测试 测试 静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程 动态测试是实际运行被测程序 输入相应的测试实例 检查运行结果与预期结果的差异 判定执行结果是否符合要求 从
  • cmd下添加自定义命令

    问题 电脑是win10操作系统 安装的java是1 7版本 一般执行jar包就在cmd里cd到jar包所在目录 敲命令即可 java jar xxx jar 目前手头有个jar包小工具 是jdk1 8编译的 正好电脑里有jdk1 8的文件夹
  • C++ set用法总结(整理)

    http www cplusplus com reference set set insert 顺序容器包括vector deque list forward list array string 所有顺序容器都提供了快速顺序访问元素的能力
  • Kafka 权威指南

    Kafka 权威指南 这本书于 2021 年看完 2022 年又看了一遍 感觉书读百遍 其义自现 这本书侧重于 Kafka 的理论知识 虽然书有点老 但是其中关于 Kafka 的基础知识的章节讲得确实不错 适合学习 Kafka 的新手以及
  • vue 获取当前元素的父元素_vue获取dom元素内容

    通过ref来获取dom元素 在vue官网上对ref的解释 ref 被用来给元素或子组件注册引用信息 引用信息将会注册在父组件的 refs 对象上 如果在普通的 DOM 元素上使用 引用指向的就是 DOM 元素 如果用在子组件上 引用就指向组
  • Mecanim Any State

    Any State表示任意状态 任意状态是 一个一直存在的特殊状态 他的存在是为了保证你在无意转移至某个你当前正处于的特殊状态而准备的 为你的状态机中的每个状态设置相同的对外转移是一个快捷的方式 假如有Walk Run Fly Die这四个
  • phpmailer发送邮箱验证码

    composer require phpmailer phpmailer use PHPMailer PHPMailer PHPMailer mail new PHPMailer true 服务器配置 mail gt CharSet UTF
  • java文明用语的检测_语言检测工具language-detection

    给你一段文字 让你检测它是什么语言 有两个开源的项目可以使用 一个是Apache Tika 一个是language detection language detection是google Code上开源的一个语言检测软件包 不折不扣的日货
  • 解决在jupyter notebook 上新建python报404问题

    如果你在jupyter notebook上新建python报404问题 并且随即网页变成空白 可能是浏览器的问题 建议换个浏览器打开jupyter
  • 多目标优化算法:多目标北方苍鹰优化算法MONGO(提供MATLAB代码)

    一 算法简介 北方苍鹰优化算法 Northern Goshawk Optimization NGO 由MOHAMMAD DEHGHANI等人于2022年提出 该算法 该算法模拟了北方苍鹰捕猎过程 猎物识别和攻击 追逐及逃生 苍鹰是中小型猛禽
  • 放大滤波电路设计

    放大滤波电路设计 摘 要 研究目的主要为自主设计一个放大滤波电路 使其满足相应参数要求 并且在放大器输出端留有测试端子 本作品信号源提供正弦输入信号 基本满足电压增益40dB可调 低通滤波器 带通滤波器设计等任务要求 关键词 放大滤波电路
  • VSCode『SSH』连接服务器『GUI界面』传输

    前言 最近需要使用实验室的服务器训练带有 GUI 画面的 AI 算法模型 pygame 但是我是使用 SSH 连接的 不能很好的显示模型训练的效果画面 所以下面将会讲解如何实现 SSH 连接传输 Linux GUI 画面的 注 我们没有采用
  • DAX:GROUPBY函数

    DAX 中的 SUMMARIZE 函数功能强大 但同时也很难使用 它可用于执行表之间的分组和连接 正如我们之前在分组数据一文中描述的那样 不幸的是 它在计算聚合值时存在一些众所周知的性能问题 除了性能之外 SUMMARIZE 的计算限制是它

随机推荐

  • 第一章 函数 极限 连续

    第一章 函数 极限 连续 第一节 函数 一 函数的概念及常见函数 1 函数概念 函数的两个基本要素 对应关系 定义域 判断两函数相等 从函数的两基本要素入手 即两函数的对应关系 表达式 定义域相同 对 于 任 意 x
  • c语言中头文件iostream,程序中为什么要包含头文件iostream.h?

    1 C 增加了名称空间概念 借以将原来声明在全局空间下的标识符声明在了namespace std下 2 统一C 各种后缀名 如 h hpp hxx等 标准化之前的头文件就是带后缀名的文件 标准化后的头文件就是不带后缀名的文件 C 98 规定
  • “挖矿”【题解】

    题目 题目描述 有N名矿工在挖矿 工厂预先给第i名矿工支付了M i 元工资 他每挖一吨矿需要消费K i 元 如果他手头余下的钱不足K i 元 他就停止挖矿 他每挖一吨矿 工厂会立即奖励他2元钱 奖励的钱也可以用 于挖矿的消费 给出矿工的信息
  • Design Compiler (八)——DC的逻辑综合与优化

    对进行时序路径 工作环境 设计规则等进行约束完成之后 DC就可以进行综合 优化时序了 DC的优化步骤将在下面进行讲解 然而 当普通模式下不能进行优化的 就需要我们进行编写脚本来改进DC的优化来达到时序要求 理论部分以逻辑综合为主 不涉及物理
  • 基于STM32F1系列芯片的OV7670颜色,形状识别

    在用ov7670做颜色识别的时候遇到一些问题 查阅很多资料才弄明白 遂整理一下 一 腐蚀中心 int SearchCenter uint16 t x uint16 t y const TARGET CONDITION t condition
  • #挑战Open AI!马斯克宣布成立xAI,你怎么看?# 马斯克的xAI:充满困难与希望

    文章目录 1 什么是xAI公司 2 xAI公司的图标 3 反AI斗士 马斯克进军AI 期待与挑战并存 3 1 关于马斯克 3 2 这位 反AI斗士 3 3 我的看法 3 4 可能会遇到的困难与优势 3 5 蓄谋已久的马斯克 3 6 xAI
  • python爬取基金_Python爬虫爬取基金数据

    1 程序结构介绍 代码结构图 代码结构图 代码目录结构 代码目录结构 结果图 结果图 2 数据源网站 3 GitHub地址 4 文件代码 main py from get fund code import from get fund dat
  • easyExcel实战:(五)写Excel设置excel的样式

    一 主要是设置Excel的字体大小和颜色 目前还不支持单元格内容居中和自动适应宽度 定义Excel正文背景颜色 TableStyle tableStyle new TableStyle tableStyle setTableContentB
  • mq的基本介绍和基本用法

    1 什么是MQ 有什么用 MQ 是message queue 消息队列 也叫消息中间件 遵守JMS java message service 规范的一种软件 同时还有另一个叫AMQP的应用层协议 语言无关性不受产品 语言等限制 rabbit
  • Java按顺序打印数字的每一位详解

    题目要求 输入一个数字 按顺序打印一个数字的每一位 例如 1234 打印出 1 2 3 4 用递归实现 实现代码 import java util Scanner public class blank40 public static voi
  • aarch64架构CPU的docker中ubuntu18.04,20.04,22.04等系统apt update均报错的原因

    宿主及环境为aarch64的CPU的Ubuntu18 04 docker版本为自带的19 03 6 对于Ubuntu14 04 16 04 18 04这个原因很乌龙 之前百度搜索结果也都不对 最终原因竟然只是因为网络问题 早上8点左右我到公
  • PySide2按钮传递参数以及*args,**kargs的含义

    1 PySide2按钮传递参数 lambda 表达式 self set priV on set clicked connect lambda self set priV con 1 def set priV con self valueV
  • Communications link failure问题解决方案摸索

    性能测试发现了Communications link failure错误 搜寻了网络上的好多种解决方案 记录总结一下 错误信息 Communications link failure The last packet sent success
  • 1037 在霍格沃茨找零钱

    1037 在霍格沃茨找零钱 20 20 分 如果你是哈利 波特迷 你会知道魔法世界有它自己的货币系统 就如海格告诉哈利的 十七个银西可 Sickle 兑一个加隆 Galleon 二十九个纳特 Knut 兑一个西可 很容易 现在 给定哈利应付
  • python读取文件时出现\ufeff非法字符的处理思路

    现象 系统环境 操作系统 Microsoft Windows 10 家庭中文版 10 0 1904 Python Python 3 8 8 问题 如下图所示 利用python读取文件后 在对字符串进行处理时 会出现 ufeff字符 这对基于
  • python读取excel成绩表,并设置柱状图

    目录 1 导入相关的包 2 读取excel文件 提取语文的数据 3 画柱状图的代码 4 完整代码 5 效果图 1 导入相关的包 import pandas as pd import matplotlib pyplot as plt 2 读取
  • 网管员牢记 10种较为常见的服务器管理错误

    网管员牢记 10种较为常见的服务器管理错误 网络管理阶层的工作就是保证网络的正常工作 从而使得职工们的工作不被打断 可问题在于事物并非总是按照理想状况发展 事实上经常会出现平地起风波的状况 其间有许多原因 这里我们只讨论10种较为常见的网管
  • angular 4 httpClient 数据访问

    服务里 是用来请求api的一个模块 使用httpClient服务请求数据常用方法如下 http get url subscribe export class ApiService 登录 一种是url是不变的 只需传参 login userN
  • VS项目属性的一些配置项的总结(important)

    以下内容为 原创 转载 首先 解决方案和项目文件夹包含关系 c 项目 VS解决方案和各个项目文件夹以及解决方案和各个项目对应的配置文件包含关系 假设新建一个项目ssyy 解决方案起名fangan 注意解决方案包括项目 此时生成的最外层目录为
  • 性能诊断定位之内存问题排查(四):CentOS7系统中,JVM内存诊断

    目录 1 要求 2 处理思路 3 示例演示 CentOS7 环境中 3 1 环境工具 3 2 操作步骤 3 2 1 JForum环境配置 配置在tomcat中 启动Tomcat 3 2 2 编写JMeter脚本 脚本的编写和运行 在win1