jmap 和jstack使用

news2024/11/17 17:24:18

jmap

jmap是JDK提供的一个可以生成Java虚拟机的堆转储快照dump文件的命令行工具

1.查看整个JVM内存状态

jmap -heap [pid]

2.查看JVM堆中对象详细占用情况

jmap -histo [pid]

3.导出整个JVM 中内存信息,可以利用其它工具打开dump文件分析,例如jdk自带的visualvm工具

jmap -dump:file=文件名.dump [pid]

Jmap导出java运行中的堆内存dump及Jprofiler分析方法

1.jmap导出dump

执行jmap -dump:format=b,file=文件名 [pid]

2.Jprofiler分析方法
下载Jprofile,将jmap导出的文件web.dump文件更改后缀为web.jps,*.jps为Jprofiler可识别后缀。
使用jprofiler打开web.jps文件
在这里插入图片描述

这里可以看到内存使用情况,查看具体占用内存的是什么,然后选中该项右键
在这里插入图片描述

然后选择references,在里面选择cumulated incoming references查看具体

在这里插入图片描述

可以看到具体内存占用的什么

jstack

在日常工作中,我们有时候需要排查线上问题,找出系统中CPU利用率最高的线程.当然,我们这里默认被排查的线程在JVM中,而不是其他非JVM的线程.

涉及的命令

$ top
$ ps
$ jstack

思路

1.根据top和ps命令查找到进程中CPU利用率最高的线程(内核级线程)
2.将内核级线程的十进制转成十六进制
3.根据jstack命令获取JVM级的线程信息

方式一

1.通过top命令找到CPU消耗(%CPU列)最高的进程, 并记住PID
2.通过top -Hp PID 找到CPU消耗(%CPU列)最高的线程, 并记住线程TID
  通过printf "%xn" 十进制线程TID # 将十进制转成十六进制
3.通过jstack PID | grep 十六进制TID -A 30

方式二

1.通过top命令找到CPU消耗(%CPU列)最高的进程, 并记住PID
2.通过ps -mp PID -o THREAD,tid,time 找到CPU消耗(%CPU列)最高的线程, 并记住线程TID
  通过printf "%xn" 十进制线程TID # 将十进制转成十六进制
3.通过jstack PID | grep 十六进制TID -A 30

参考:https://blog.csdn.net/weixin_42523104/article/details/113534423
https://www.jb51.net/article/201435.htm

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

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

相关文章

Faster RCNN网络源码解读(Ⅸ) --- ROIAlign、TwoMLPHead、FastRCNNPredictor部分解析

目录 一、回顾以及本篇博客内容概述 二、代码解析 2.1 FasterRCNNBase类 2.1.1 forward正向传播 2.2 FasterRCNN类 2.2.1 roi_heads定义 2.3 TwoMLPHead类(faster_rcnn_framework.py) 2.4 FastRCNNPredictor类 2.5 RoIHeads类(roi_…

JavaWeb:用户注册登录案例

1.1 用户登录 1.1.1 需求分析 用户在登录页面输入用户名和密码,提交请求给LoginServlet在LoginServlet中接收请求和数据[用户名和密码]在LoginServlt中通过Mybatis实现调用UserMapper来根据用户名和密码查询数据库表将查询的结果封装到User对象中进行返回在LoginSe…

用或不用大O来优化代码(选择排序)

本文内容借鉴一本我非常喜欢的书——《数据结构与算法图解》。学习之余,我决定把这本书精彩的部分摘录出来与大家分享。 目录 写在前面 1.选择排序 2.选择排序实战 3.选择排序的实现 4.选择排序的效率 5.忽略常数 6.大O的作用 7.总结 写在前面 大 O 是一…

Java面向对象详解(下)

文章目录📖前言:🏅封装• 封装的概念• 封装的好处• 封装的核心理解🏅继承• 继承的概念•继承的特点● 何时使用继承?● 继承的形式● 继承的传递性● 继承的构造方法🧸super关键字🎇用途&…

【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.14 平移、旋转、缩放

本节对应的视频讲解:B_站_视_频 https://www.bilibili.com/video/BV1te4y1L7Mu 本节讲解平移、旋转、缩放这些变换操作 1. 关联信号槽 首先,在 widget.cpp 的构造中,为 “变换” 复选框,关联信号槽 // 平移、旋转、缩放 conn…

leetcode 2439. 最小化数组中的最大值

给你一个下标从 0 开始的数组 nums &#xff0c;它含有 n 个非负整数。 每一步操作中&#xff0c;你需要&#xff1a; 选择一个满足 1 < i < n 的整数 i &#xff0c;且 nums[i] > 0 。将 nums[i] 减 1 。将 nums[i - 1] 加 1 。 你可以对数组执行 任意 次上述操作&…

程序的环境与预处理 程序的编译与链接

目录 1.程序的翻译环境和执行环境 ​编辑 2.编译链接 运行环境 3.预处理 预定义符号 #define #与## 带副作用的宏参数 宏和函数的对比 命名约定 ​编辑 #undef​编辑 命令行定义 ​编辑 条件编译 文件包含 嵌套文件包含 4.其他预处理指令 1.程序的翻译环境和…

新年伊始,和大家聊聊鲜枣课堂的未来

大家好&#xff0c;我是小枣君。时间过得很快&#xff0c;转眼之间&#xff0c;2022年已经结束了。回首这一年&#xff0c;感觉自己一直都在忙&#xff0c;却想不起来到底忙了些什么。这一年&#xff0c;我的生活和工作节奏&#xff0c;一直都是混乱的。这里面&#xff0c;既有…

罗振宇2023“时间的朋友”跨年演讲原版PPT(附下载)

省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2022年11月份热门报告盘点2023年&#xff0c;如何科学制定年度规划&#xff1f;《底层逻辑》高清配图清华大学256页PPT元宇宙研究报告.pdf&#xff08;附下载链接&#xff09;…

软件测试[用例篇]

一. 回顾测试用例 1.测试用例基本要素 测试用例&#xff08;Test Case&#xff09;是为了实施测试而向被测试的系统提供的一组集合。 这组集合包含&#xff1a;测试环境、操作步骤、测试数据、预期结果等要素。 2.测试用例好处 测试用例可以提高测试效率&#xff08;可以减…

省时省力,高速收费站无线组网解决方案

一、行业背景随着我国高速公路里程数的不断增加&#xff0c;科技水平的不断进步&#xff0c;智能化的高速公路收费站趋势在不断的加强。例如&#xff1b;高速公路收费站智能备份系统&#xff0c;通常情况下收费站、路段分中心和省联网中心之间是需要传输收费数据记录流水、清账…

【1801. 积压订单中的订单总数】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个二维整数数组 orders &#xff0c;其中每个 orders[i] [pricei, amounti, orderTypei] 表示有 amounti 笔类型为 orderTypei 、价格为 pricei 的订单。 订单类型 orderTypei 可以分为两种&…

关于el-time-picker使用错误的记录

之前在紧急参与一个PC管理后台的项目&#xff0c;项目的基础架子是花裤衩大佬的vue-element-admin()vue2版本),。其中有一个需求是列表数据中数据回显时候&#xff0c;有关时间部分的数据在回显/编辑的情况下&#xff0c;提交时获取的值有问题。虽然后面解决了&#xff0c;但还…

2023年要来了。顺便分享过来后我的学开车经历

你好呀&#xff0c;读者朋友们&#xff01;我是你们的老朋友 zhen guo时光如梭&#xff0c;转眼间我这边再有1个来小时就2023年了&#xff0c;因时差&#xff0c;很多看到这里的读者朋友应该都已经进入2023年。2022年再也回不去了&#xff0c;就像曾经过去的每一年那样&#xf…

【王道操作系统】2.3.1 进程的同步与互斥

进程的同步与互斥 文章目录进程的同步与互斥1.进程同步2.进程互斥1.进程同步 同步也称为直接制约关系在多道程序环境下&#xff0c;进程是并发执行的&#xff0c;不同进程之间存在着不同的相互制约关系。为了协调进程之间的相互制约关系,如等待、传递信息等&#xff0c;引入了…

IP协议重点总结(附实例)

文章目录前言一、IP地址1.1 概念1.2 作用1.3 格式1.4 组成1.5 分类二、NAT地址转换2.1 作用2.2 转换过程2.3 NAPT端口映射2.4 现实中的栗子&#xff08;以博主的手机为例&#xff09;2.4.1 连无线WLAN的情况2.4.2 用流量上网2.5 NAT的缺陷三、子网掩码3.1 格式3.2 作用3.3 计算…

windows安装IIS服务

安装ASP的环境IIS 1、使用快捷键 【Win X】 打开系统功能菜单&#xff0c;选择【程序和功能】 2、进入【程序和功能】界面管理后&#xff0c;点击【启用或关闭windows功能】。 3、然后保证以下勾选&#xff0c;其他的默认就行&#xff0c;点击确定。如图&#xff1a; 4、出现…

vueJs中的watch与watchEffect函数

前言有时&#xff0c;我们需要在状态变化时执行一些副作用,比如:监听路由状态,更改DOM,或是根据异步操作的结果去修改另一处的状态这个时候,就需要用到监听器在组合式API中,就可以使用watch函数在每次响应式状态发生变化时触发回调函数01使用watch监视refwatch:监听某个属性的变…

2023.01/1801. 积压订单中的订单总数

1801. 积压订单中的订单总数 题意: 给你一个二维整数数组 orders &#xff0c;其中每个 orders[i] [pricei, amounti, orderTypei] 表示有 amounti 笔类型为 orderTypei 、价格为 pricei 的订单。 订单类型 orderTypei 可以分为两种&#xff1a; 0 表示这是一批采购订单 buy …

3D打印:FDM打印使用CURA4.13.1版本配置

一、前言 今天是2023年1月1日&#xff0c;新年阳历的第一天&#xff0c;在整理CSDN和写年度计划&#xff0c;对2022的总结&#xff0c;就像写一篇博客来分享一下我2022年积累的最多的一项经验&#xff0c;就是使用3D打印机&#xff0c;在2022年我先后入手了3台3d打印机&#x…