首页 > 其他分享 >perf抓取火焰图

perf抓取火焰图

时间:2024-07-27 10:39:20浏览次数:6  
标签:perf zip 抓取 火焰 unfold lib64 data docker

目录

一、Perf工具安装(压缩包在帖子下方的附件中)

*****************************ARM*****************************************
1.拷贝ARM.zip、lib64_arm.zip到需要安装的虚拟机或者Pod上
2.创建个独立目录,如perf
   mkdir perf
   mv ARM.zip perf
   mv lib64_arm.zip perf
   cd perf
3.解压、拷贝不覆盖原有so(-n)
   unzip ARM.zip
   unzip lib64_arm.zip
   cp ./lib64/* /usr/lib64/ -rn
4.安装perf工具
   cd  rpm-deps
   rpm -ivh *.rpm --force --nodeps --ignoresize
*****************************X86*****************************************
1.拷贝X86.zip、lib64.zip到需要安装的虚拟机或者Pod上
2.创建个独立目录,如perf
   mkdir perf
   mv X86.zip perf
   mv lib64.zip perf
   cd perf
3.解压、拷贝不覆盖原有so(-n)
   unzip X86.zip
   unzip lib64.zip
   cp ./lib64/* /usr/lib64/ -rn
4.安装perf工具
   cd  rpm-deps
   rpm -ivh *.rpm --force --nodeps --ignoresize
区分arm版本和x86版本执行命令:arch/uname -m
欧拉版本更新后,存在安装后执行perf命令提示缺少so的情况,则需要将附件中里lib64(arm版本为lib64_arm)压缩包拷贝到目标容器中/usr/lib64目录下,相同so不替换。

二、热点信息生成火焰图

1、容器外抓取热点信息生成火焰图

1.1、 将perf工具安装在vm上,安装方法参上,将perf所需依赖从docker中拷贝出来

docker cp 1967572122c7:/opt/depend /opt/depend
docker cp 1967572122c7:/opt/ccell /opt/ccell
docker cp 1967572122c7:/opt/http-server /opt/http-server
docker cp 1967572122c7:/opt/plat_libs /opt/plat_libs
1967572122c7 为sbim docker id

1.2、容器外查询worker pid、抓热点,生成perf.data文件

top -H -n 4 -d 3 -b > top.txt
perf record -g -o ./perf.data -p pid(对应worker的pid)
如果svg图出现unknown函数,使用如下(具体原理)
sudo perf record -e cpu-clock --call-graph dwarf -o ./perf.data -p xx(对应worker的pid)sleep xx(抓取时长,单位(秒),可选参数)

1.3、容器外(VM上)将perf.data转换为perf.unfold

perf script -i perf.data &> perf.unfold

1.4、从环境上取出,将环境上生成的perf.data和perf.unfold文件删除

将perf.unfold取出保存到windows本地
rm -f perf.unfold perf.folded

1.5、windows下载FlameGraph,生成火焰图perf.svg(FlameGraph工具见附件)

将环境生成的perf.unfold拷贝到FlameGraph目录下
FlameGraph目录下打开git bash执行如下命令:
./stackcollapse-perf.pl perf.unfold &> perf.folded
./flamegraph.pl perf.folded > perf.svg

1.6、生成火焰图后清除中间文件

FlameGraph目录下执行
rm -f perf.unfold perf.folded

2、容器内抓取热点信息生成火焰图

2.1、将perf工具压缩包上传到vm上,拷贝到docker内安装,安装方法参考第一步;

将压缩包拷贝到docker内,1967572122c7为dockerID:
docker cp xxx.zip 1967572122c7:/

2.2、进入容器、查询worker pid、抓热点,生成perf.data文件

docker ps | grep sbim
docker exec -it xxx bash (xxx为docker ps查出的sbimId)
ps afx
perf record -g -o ./perf.data -p xx(对应worker的pid) sleep xx(抓取时长,单位(秒),可选参数)
如果svg图出现unknown函数,使用如下(具体原理)
sudo perf record -e cpu-clock --call-graph dwarf -o ./perf.data -p xx(对应worker的pid)sleep xx(抓取时长,单位(秒),可选参数)

2.3、将perf.data转换为perf.unfold

perf script -i perf.data &> perf.unfold

2.4、生成火焰图 FlameGraph目录下打开git bash执行如下命令(FlameGraph工具见附件)

将环境生成的perf.unfold拷贝到FlameGraph目录下
FlameGraph目录下打开git bash执行如下命令:
./stackcollapse-perf.pl perf.unfold &> perf.folded
./flamegraph.pl perf.folded > perf.svg

2.5、生成火焰图后清除文件

FlameGraph目录下执行
rm -f perf.unfold perf.folded

3、生成火焰图效果

20210603213736.png

三、在容器中查看实时热点信息

参考:http://3ms.huawei.com/km/blogs/details/7849895
常用命令:

perf top -t pid -g-t

显示效果:
image.png

标签:perf,zip,抓取,火焰,unfold,lib64,data,docker
From: https://www.cnblogs.com/cuidexu/p/18326708

相关文章

  • 在 Chartink.com 上抓取网页
    请帮我抓取这个链接。链接-https://chartink.com/screener/time-pass-48我正在尝试网络抓取,但它没有显示我想要的表格。请帮助我。我已经尝试过这段代码,但它没有给我想要的结果。importrequestsfrombs4importBeautifulSoupURL='https://chartink.com/s......
  • 职场<火焰杯>测试开发大赛决赛成绩及获奖名单公布!
    亲爱的测试开发小伙伴们,职场<火焰杯>测试开发大赛决赛圆满结束,我们非常高兴地宣布决赛成绩以及获奖名单!感谢所有参赛选手的积极参与和辛勤付出,大家的努力和才华在比赛中得到了充分展示。01如何查询成绩点击以下链接,点击“成绩查询”即可进入成绩查询页面:https://progof.pla......
  • 网页抓取 雅虎财经 Python
    我正在尝试从损益表、资产负债表和现金流量报告中收集数据框中给定股票代码的雅虎财务数据。(下面提供了URL)我从使用yfinance的资产负债表中使用了此函数没有像雅虎财经那样的“总债务”但它只适用于股票代码“AAPL”而没有其他内容。我想要一个更强大的网络抓取......
  • Python 搜索和抓取
    我有一个问题想知道是否值得花时间尝试用Python来解决。我有一个包含鱼类学名的大型CSV文件。我想将该CSV文件与大型鱼类形态信息数据库(www.fishbase.ca)交叉引用,并让代码返回每条鱼的最大长度。基本上,我需要创建代码来搜索Fishbase网站上的每条鱼,然后找到页面上的最......
  • 我正在遵循使用 selenium 在网站上抓取图像的教程,但代码无法运行
    我正在尝试编辑代码以保存验证码,希望最终编写一个自动化机器人。以下python代码会导致随后的错误。importrequestsfromseleniumimportwebdriverfromselenium.webdriver.common.byimportByimporturllibimporttimeimportospath="C:/Users/micha/Do......
  • 使用 Tor + Privoxy 抓取谷歌购物结果:如何避免被阻止?
    我已经在我的服务器上安装了Tor+Privoxy并且它们工作正常!(已测试)。但现在当我尝试使用urllib2(python)抓取谷歌购物结果时,当然使用代理,我总是被谷歌阻止(有时是503错误,有时是403错误)。那么任何人有任何解决方案可以帮助我避免这个问题吗?非常感谢!!......
  • 高通进dump和抓取解析dump log
    1.触发dump的办法:高通进dump的方式使用指令:echoc>/proc/sysrq-trigger长按power键     有些基线默认是重启,需要进行配置才能使用该方法 3.通过PS-HOLD硬件的方式进入dloader模式抓取dump硬件飞线PS-HOLD将PS-HOLD短接地,手机进入dloader模式,抓......
  • 高通进dump和抓取解析dump log
    1.触发dump的办法:高通进dump的方式使用指令:echoc>/proc/sysrq-trigger长按power键有些基线默认是重启,需要进行配置才能使用该方法通过PS-HOLD硬件的方式进入dloader模式抓取dump硬件飞线PS-HOLD将PS-HOLD短接地,手机进入dloader模式,抓取ramdump短接时......
  • 我的 python 抓取数据是空的,不确定我的代码出了什么问题
    我的结果是空的,不确定我的代码出了什么问题:这里是我的代码:#尝试从该网站获取数据https://www.watsons.com.sg/health/c/2100000?currentPage=1importrequestsfrombs4importBeautifulSoupimportpandasaspd#Settingdisplayoptionsforpandaspd.......
  • Python - Selenium抓取淘宝直播间评论(可使用无头模式)
    Python-Selenium抓取淘宝直播间评论(可使用无头模式)下面介绍如何使用python中的selenium简单抓取淘宝直播间实时评论。友情提醒,仅供学习交流使用,请勿用于非法用途!一、创建python项目1.在目录下新建main.py和venv虚拟环境:创建虚拟环境:python-mvenvvenv激活虚拟环......