当前位置: 首页 > news >正文

深圳网站设计+建设首选搜索排行

深圳网站设计+建设首选,搜索排行,开发电子商务网站的主流语言,ev123建站Linux 浅谈之性能分析工具 perf HELLO,各位博友好,我是阿呆 🙈🙈🙈 这里是 Linux 浅谈系列,收录在操作系统专栏中 😜😜😜 本系列将记录一些阿呆个人整理的 OS 相关知识…

Linux 浅谈之性能分析工具 perf

HELLO,各位博友好,我是阿呆 🙈🙈🙈

这里是 Linux 浅谈系列,收录在操作系统专栏中 😜😜😜

本系列将记录一些阿呆个人整理的 OS 相关知识 🏃🏃🏃

OK,兄弟们,废话不多直接开冲 🌞🌞🌞


一 🏠 概述

什么是 PERF

perf 是一个 Linux 性能分析工具,它利用 PMU、tracepoint 和内核计数器来进行性能统计

内核计数器是一个基于内核的子系统,它提供一个性能分析框架,比如硬件(CPU、PMU( Performance Monitoring Unit ) 功能和软件 (软件计数器、tracepoint) 功能


什么是 PMU

性能监视单元(Performance Monitor Unit),CPU 提供的一个单元(硬件),通过访问相关寄存器读取 CPU 的一些性能数据

内存读写很快,但是无法和处理器指令执行速度相比。cache 是一种 SRAM,读写速度非常快,能和处理器相匹配。因此将常用的数据保存在 cache 中,处理器便无需等待,从而提高性能


tracepoints

tracepoints 是内核源码中的一些 hook,在特定代码被执行时触发,该特性可被各种trace/debug 工具所使用

perf 将 tracepoint 时间记录下来,生成报告,分析这些报告,调优人员便可以了解程序运行期间内核的各种细节,tracepint 对应的 sysfs 节点在 /sys/kernel/debug/tracing/events 目录

PERF 整体架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WGmW4F2f-1677034090822)(E:\2022年MD文档\2023 年 MD文档\二月\操作系统\Linux 浅谈之性能分析工具 perf.assets\1676896375395.png)]


二 🏠 核心

PERF 使用

事件分为三种

  • Hardware Event PMU 部件产生,探测性能事件的发生次数(如 cache 命中)
  • Software Event 内核产生,统计和操作系统性能相关事件(如 进程切换)
  • Tracepoint Event 静态 tracepoint 触发事件(判断程序运行期内核行为,分配器分配次数)

perf --help 可看到 perf 二级命令


perf list

perf list查看当前系统支持的性能事件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xa9XIrMe-1677034090823)(E:\2022年MD文档\2023 年 MD文档\二月\操作系统\Linux 浅谈之性能分析工具 perf.assets\1676897086463.png)]


perf top

perf top 类似 top 命令,实时分析各函数在某性能事件的热度,快速定位热点函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z0F26RBE-1677034090824)(E:\2022年MD文档\2023 年 MD文档\二月\操作系统\Linux 浅谈之性能分析工具 perf.assets\1676897154333.png)]


perf stat

用于输出指定程序的性能统计数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yLFgteQJ-1677034090824)(E:\2022年MD文档\2023 年 MD文档\二月\操作系统\Linux 浅谈之性能分析工具 perf.assets\1676897212741.png)]


perf record

perf record 收集采样信息,并记录在文件中,可离线分析

常用方式 perf record

-e 指定事件

-p 指定进程

-g 生成调用关系(类似gcc中-g)

-o 输出文件名


更多参数参考 perf record --help

perf report

perf report 分析 perf record 生成的 perf.data 文件

常用参数:-i:指定输入文件


火焰图制作与解读

火焰图是基于 perf 结果产生的 SVG 图片,用来展示 CPU 的调用栈

y 轴表示调用栈,每一层是一个函数,调用栈越深,火焰就越高,顶部就是正在执行的函数,下方都是它的父函数

x 轴表示抽样数,如果一个函数在 x 轴占据的宽度越宽,就表示它被抽到的次数多,即执行的时间长(x 轴不代表时间,而是所有的调用栈合并后,按字母顺序排列的)

火焰图就是看顶层的哪个函数占据的宽度最大。只要有 平顶,就表示该函数可能存在性能问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uygcmEr3-1677034090825)(E:\2022年MD文档\2023 年 MD文档\二月\操作系统\Linux 浅谈之性能分析工具 perf.assets\1676897438542.png)]


常用操作

先用 top -Hp + 进程号
执行 SQL, 占用 CPU 最高的那个线程号应该就是要抓的线程
用 perf record -g --call-graph dwarf -e cpu-clock -F 1000 -t 线程号 -o perf.data 
抓取, 等 SQL 结束 ctrl + c 结束掉
用 perf report -i perf.data --no-ch //查看data文件内容

三 🏠 结语

身处于这个浮躁的社会,却有耐心看到这里,你一定是个很厉害的人吧 👍👍👍

各位博友觉得文章有帮助的话,别忘了点赞 + 关注哦,你们的鼓励就是我最大的动力

博主还会不断更新更优质的内容,加油吧!技术人! 💪💪💪

http://www.mnyf.cn/news/15823.html

相关文章:

  • 博客网站需要的功能百度seo视频教程
  • 顺义网站建设报价做广告的怎么找客户
  • 怎么做自己的淘宝客网站总排行榜总点击榜总收藏榜
  • 荣昌集团网站建设软文范例大全300字
  • 张掖做网站小吃培训机构排名前十
  • wordpress 头像打岔说到很多seo人员都转行了
  • 网站建设公司需要申请icp吗千锋教育学费
  • 自己做捕鱼网站能不能挣钱网站收录免费咨询
  • 做电影网站怎么样公众号推广平台
  • 广东手机网站建设品牌互联网广告平台有哪些
  • 网站平台设计费用多少营销策略是什么意思
  • 阿里云网站备案网站建设方案书广告设计网站
  • 美女做暧暧免费网站seo诊断方法步骤
  • 网站关键词挖掘工具广东seo推广外包
  • struts动态网站开发综合实训总结哪个网站是免费的
  • 个人网站做多久有效果创建app平台
  • 做网站首页网站推广和优化系统
  • 网站制作的困难与解决方案网上卖产品怎么推广
  • 可以做公务员题目的网站网络推广哪个平台效果最好
  • dede 网站图标付费推广有几种方式
  • 80后陈某做盗版视频网站漳州seo网站快速排名
  • 建设购物网站的条件免费的行情网站
  • 南昌有做网站的吗市场调研问卷调查怎么做
  • seo公司发展前景seo中介平台
  • 网站怎么做外部链接百度搜索量查询
  • 外行做网站什么文案容易上热门
  • 网站开发需要注意什么西安网站建设制作
  • 网站建设沈阳怎么下载有风险的软件
  • wordpress不在新窗口打开江苏泰州seo网络优化推广
  • 桂林网站排名黑帽seo培训多少钱