文档开发者中心
我的

Linux性能分析工具——Perf

Linux性能分析工具——Perf

perf的原理是这样的:每隔一个固定的时间,就在CPU上(每个核上都有)产生一个中断,在中断上看看,当前是哪个pid,哪个函数,然后给对应的pid和函数加一个统计值

命令参数

  • -e:指定性能事件

  • -a:显示所有CPU上的性能统计信息

  • -C:显示指定CPU上的性能统计信息

  • -p:指定进程PID

  • -t:指定线程TID

使用案例

perf list

列出所有能够触发perf采样点的事件

  • software event

  • Hardware event

  • Hardware cache event

  • Kernel PMU event

  • Tracepoint event

  • SDT event

perf stat

分析系统/进程的整体性能概况

  • Task‐clock: 任务真正占用处理器的时间,毫秒

  • context-switches:系统上下文切换的次数

  • CPU-migrations:任务从一个处理器迁往另外一个处理器的次数

  • page-faults:内核发生缺页的次数

  • cycles:程序消耗的处理器周期数

  • instructions:指命令执行期间产生的处理器指令数

  • branches:执行期间遇到的分支指令数

  • branch‐misses:预测错误的分支指令数

perf top

实时显示系统/进程的性能统计信息

  • -K:隐藏内核统计信息

  • -U:隐藏用户空间的统计信息

perf record

记录一段时间内系统/进程的性能时间

  • -c:事件的采样周期

  • -o:指定输出文件,默认为perf.data

  • -g:记录函数间的调用关系

  • -F <数值>:指定采样频率

  • sleep:指定采样时长(秒)

perf report

读取perf record生成的数据文件,并显示分析数据

绘制火焰图

绘制火焰图的工程 FlameGraph 使用方法:

$ perf record -F 99 -a -g sleep 60$ perf script > out.perf$ ./stackcollapse-perf.pl out.perf > out.folded$ ./flamegraph.pl out.folded > kernel.svg


点赞
收藏
回复
3
分享
举报
浏览2155 编辑于2019-11-27 19:46未知归属地
全部评论
最多点赞
最新发布
最早发布

转给我的小伙伴

3楼回复于2019-11-28 08:44 未知归属地

总结的很到位

2楼回复于2019-11-28 08:43 未知归属地

学习了,正好可以用到

1楼回复于2019-11-28 03:40 未知归属地
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

目录 收起
Linux性能分析工具——Perf
命令参数
使用案例
perf list
perf stat
perf top
perf record
perf report
绘制火焰图
了解社区公约,与您携手共创和谐专业的开发者社区。