使用hotspot/cpuperf进行CPU占用分析
目录
- Perf
- Hotspot
- 安装与配置(Ubuntu20.04)
- hotspot
- cpu perf
- 使用hotspot抓包并查看
- 启动
- 启动程序并抓包
- 查看录制结果
- 参考
Perf
perf是Linux下的一款性能分析工具,能够进行函数级与指令级的热点查找。它由一个叫Performance counters的内核子系统实现,基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析,可用于性能瓶颈的查找与热点代码的定位。
Hotspot
hotspot
是KDAB发布的一个新的分析perf.data的工具,是perf的图形界面。除了比命令行的perf report更直观外,其最大看点就是集成了火焰图,也就是FlameGraph。
安装与配置(Ubuntu20.04)
hotspot
sudo apt update
sudo apt install hotspot
cpu perf
sudo apt update
sudo apt install linux-tools-generic linux-cloud-tools-generic
使用hotspot抓包并查看
启动
sudo hotspot
注意:需要root权限,抓取的
perf.data
会保存至启动目录下如果启动不了提示缺少系统工具,按照说明安装自己内核版本对应的linux-tools-generic/linux-cloud-tools-generic即可
启动程序并抓包
在hotspot中选择
File->Record data
选择需要分析的程序
- 如果程序已经启动,选
Attach To Application
,然后利用程序名或PID选择程序 - 如果需要指定程序启动,选
Launch Application
正常路包速度会比较慢,比较常用的降频方法是在Advance中加入 “-F 99 -a -g”
参考:https://blog.csdn.net/juS3Ve/article/details/78651436
- 如果程序已经启动,选
点击
Start Recording
录制一段时间的数据包,按Stop Recording
结束
查看录制结果
- 使用
View Results
查看函数时间运行占比等信息(需要编译程序时开启debug symbol)
参考
- 使用Hotspot分析代码时间性能,优化运行时间_Rosen.的博客-CSDN博客
- https://www.5axxw.com/wiki/content/3noidg
- https://blog.csdn.net/melody157398/article/details/125176078
使用hotspot/cpuperf进行CPU占用分析相关推荐
- java应用CPU占用过高分析、C2 Compiler Thread高CPU占用分析
文章目录 1. 查找进程下占用过高CPU的线程 1.1 查找应用对应的pid 1.2 查看哪个线程cpu占用高,确定对应的线程id: 1.3 计算线程id的十六进制值 1.4 打印线程堆栈内容 2. ...
- Android系统top指令cpu占用分析
Android使用top指令,在多核cpu占用统计中,cpu占用比与linux不一致,其统计的为所有核心占用百分比,非单核平均占用. 比如4核cpu下,top指令统计出的所有进程cpu占用百分比之和是 ...
- Java 线上cpu占用过高分析
转载于:https://blog.csdn.net/ch999999999999999999/article/details/113151519 感谢作者:ch999999999999999999 J ...
- jstack分析cpu占用100%
问题:使用jstack来分析cpu占用100%. 过程分析: 1. 运行测试程序后,top命令发现某个进程(pid)占用cpu达到100%. 2. 查看哪个线程占用最多资源: ps mp 24018 ...
- 一次cpu占用高的定位分析
客户机器cpu占用较高甚至出现cpu打满的情况,造流程启动运行缓慢,状态更新卡死,严重影响用户体验. 首先观察用户机器资源情况,内存剩余40G,jvm内存占用10%不到. jps -ml 拿到pid之 ...
- java应用 cpu占用过高问题分析及解决方法
主要介绍了java应用cpu占用过高问题分析及解决方法,具有一定参考价值,需要的朋友可以参考下. 使用jstack分析java程序cpu占用率过高的问题 1,使用jps查找出java进程的pid,如3 ...
- 一次线上集群CPU占用100%的问题分析过程
一.前言 最近在搭建Ignite集群的过程中,突然发现线上机器运行一会儿之后CPU占用就会飙升到99%甚至100%.于是开始着手分析并解决了该问题.本文将详细讲解整个问题定位过程. 二.分析过程 1. ...
- 一种CPU占用过高的故障定位分析方法
目 录 1.前 言 2. 测试类编写 3. 故障定位方法 3.1 定位CPU占比最高的PID 3.2 定位该PID对应的应用程序名字 3.3 定位具体的线程ID 3.4 定位具体的应用程序代码位置 4 ...
- windows服务器java项目cpu占用较高原因分析
前言 在windows平台上要找出到底是哪个线程占用的cpu还不那么容易,linux用top就简单多了最后的解决方法: 1.找到java进程对应的pid. 找pid的方法是:打开任务管理器,然后点击 ...
最新文章
- mysql数据库有几种连接方法_几种常见的数据库连接方法
- 区块链去中心化有那么有用吗?
- C# does not contain a constructor that takes no parameter
- Node js报错 npm ERR! cb() never called!
- 【POJ - 3125 】Printer Queue(模拟,队列+优先队列,STL)
- 定量库存控制模型_供应链分析:关于库存管理的预测功能(1)
- spring-bean(xml方式管理)
- 怎么破解Windows账户密码
- 飞刀哥移植UC/OS-II到LPC1788(ARM Cortex-M3)的步骤
- 跑步蓝牙耳机推荐,适合跑步的蓝牙运动耳机
- 如何实现今日头条跳转到微信?
- 文件下载(三):wireshark抓包文件下载整个过程
- 豪杰超级解霸 V8.3 11月18日发布
- 个人云盘、企业云盘傻傻分不清楚?3分钟带你清晰两者差异!...
- 时间窗口算法用matlab,一种基于动态规划算法的时间窗口相关的参与者选择方法与流程...
- 互联网废品回收+废品回收小程序开发这些实际功能要有
- Redis6笔记分享(从NoSQL基础到分布式锁的介绍)
- 华为p10手机安装linux,matebookD安装linux系统总结
- 第五周嵌入式课程总结
- 快速编制管桩贯入度或终压值竣工图