Linux高级系统级性能分析工具-perf

Linux 的系统级性能剖析工具‐perf

(二)

承刚

TAOBAO  Kernel Team

chenggang.qin@

第三章  Perf top 工具

3.1  perf top 的基本使用方法

top 工具主要用于实时剖析各个函数在某个性能事件上的热度。利用perf

top ,能够直观地观察到当前的热点函数,并利用工具中内置的annotate 功能,

进一步查找热点指令。

图3. perf top 的界面

Perf top 的基本使用方法为:

$perf top

该命令以默认性能事件“cycles (CPU 周期数)”进行全系统的性能剖析,检

测系统中的所有应用程序函数与内核函数的热度。图3 为上述命令的执行结果。

perf 提供了3 种用户界面,分别是tui ,gtk 以及tty 。其中可操作性最强,

功能最丰富的界面是tui ,本文主要基于此界面讲解perf。top 工具仅支持tui 与

tty ,默认界面为tui 。图3 中展示的就是tui 界面。

top 工具的界面具有4 列信息。右面第一列为符号名,也就是函数名。左面

第一列为该符号引发的性能事件在整个监测域中占的比例,我们将其称为该符号

的热度。监测域是指perf 监控的所有符号。默认情况下包括系统中所有进程、

内核以及内核模块的函数。左面第二列为该符号所在的DSO。DSO 即动态共享对

象(Dynamic Shared Object)的缩写。第3 列为DSO 的类型。perf 中DSO 共有5

种类型,分别是:ELF 可执行文件,动态链接库,内核,内核模块,VDSO 等。

当第3 列为  [.]时表示此符号属于用户态的ELF 文件(包括可执行文件与动态链

接库)。为[k]表示此符号属于内核或内核模块。

需要提一下的是,必须在系统安装newt 软件包,perf 才能使能tui 界面。

在tui 界面下按'h' ,'?'或'F1'键时,会弹出一个帮助窗口,如图4 所示。

图4. tui 界面的帮助窗口

帮助窗口列出了perf top 的所有功能。我们首先来看注解(Annotate)功能。

注解功能可以进一步深入分析某个符号。给出对应线程的代码并且为热点代码标

记出它们触发的性能事件在整个测试域中的百分比。下面让我们来看一下如何使

用注解功能。在界面上按上下键,将光标在各个symbol 间移动。选定某个符号

后,按下a 键,得到如图5 所示的界面。

图5. perf top 的注解功能

图5 显示的是[code1] 中do_pi() 函数的注解。从图上可以看到perf 对do_pi()

中的C 代码给出了汇编语言的注解。并且给出了各条指令的采样率。从图上可以

看到耗时较多的指令(如访存指令)比较容易被perf 采到。

选定某个符号后按下热键’d’ ,perf 会过滤掉所有不属于此DSO 的文件。以图

1 中的实验为例,符号do_pi 归属的DSO 为t

linux 解析pdf下载工具,Linux高级系统级性能分析工具-perf.pdf相关推荐

  1. linux 系统级性能分析工具 perf 的介绍与使用

    目录 1. 背景知识 1.1 tracepoints 1.2 硬件特性之cache 2. 主要关注点 3. perf的使用 3.0 perf引入的overhead 3.1 perf list 3.2 ...

  2. 系统级性能分析工具perf的介绍与使用

    测试环境:Ubuntu16.04 + Kernel:4.4.0-31 apt-get install linux-source cd /usr/src/tools/perf make &&am ...

  3. java perf_系统级性能分析工具perf的介绍与使用

    测试环境:Ubuntu16.04 + Kernel:4.4.0-31 系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化. 性能剖析的目标是寻找性能瓶颈, ...

  4. 系统级性能分析工具 — Perf

    从2.6.31内核开始,linux内核自带了一个性能分析工具perf,能够进行函数级与指令级的热点查找. perf Performance analysis tools for Linux. Perf ...

  5. 系统级性能分析工具--Systemtap

    SystemTap 是一款诊断Linux系统性能的工具,可以跟踪内核以及用户态程序中的任意函数.syscall.语句甚至指令,可以用来动态地收集调试和性能信息的工具,不需要我们重新编译.重启内核.缺点 ...

  6. 股票交易应用系统的性能分析工具介绍(一)

  7. java c 性能分析工具_Jprofiler使用介绍--java性能分析工具中文帮助

    1.说明 改善Java服务器的性能需要模拟负载下的服务器.创建一个模拟环境.搜集数据并且分析结果可能是对许多开发人员的挑战.这里介绍了使用JProfiler跟踪分析Java服务器的性能. 简单的性能问 ...

  8. 【开发工具】【perf】性能分析工具perf的编译和使用说明

    源码位置: kernel/tools/perf 配置内核以支持perf make xxx_defconfig make menuconfig设置以下配置: CONFIG_HAVE_PERF_EVENT ...

  9. Linux性能分析工具汇总

    Linux针对性能调优设计了许多分析工具,这些工具对于分析整个系统性能可提供巨大的帮助.影响性能的因素有cache.I/O,系统调用,系统内核.CPU性能等等.比如某些程序无法充分利用 cache,从 ...

最新文章

  1. PHP多选题怎么弄,php多选题评分算法求指导解决方法
  2. 构件图(Component Diagram)—UML图(八)
  3. android 的 sp 智能指针用法介绍 sp wp
  4. LeetCode刷题(35)--Permutation Sequence
  5. AD19实时高亮显示网络,当鼠标悬停在网络上时能自动高亮
  6. c语言图书管理系统简单代码,C语言图书管理系统代码
  7. 使用bat命令一键启动常用浏览器
  8. 转载 Visual Assist X 10.8.2001 破解版 支持VC2013及以下版本
  9. 西门子CPU扩展以太网接口的一种解决方案
  10. 代理服务器和IP加速器之间有什么关系?
  11. Dropshipping在Facebook广告语怎么写?
  12. 多目标优化算法:多目标非洲秃鹫优化算法MOAVOA(提供Matlab代码)
  13. nested exception is io.lettuce.core.RedisCommandExecutionException: ERR invalid expire time in setex
  14. shopex mysql 数据库服务器_win2003以isapi的方式配置php+mysql环境(安装了shopEX) 毕竟我是杨小飞i...
  15. 用python实现BP神经网络预测运动员的跳高成绩
  16. 输入字体之间的间隔突然变大了
  17. [世界杯] 巴西 vs 克罗地亚 1:0
  18. 基于双重ABC分类的B2C电商的物流储位优化
  19. 在visual studio2019中编写Qt5.14版本的程序 BV1g4411H78N
  20. 振兴农村循环经济 和数链串起农业“生态链”

热门文章

  1. oracle触发器监听数据变化,【Trigger】利用Oracle的触发器,自动记录数据的变动履历...
  2. Linux 查看电脑基本配置
  3. 小白 vue-cli 项目打包
  4. reactjs组件实例的三大属性之props使用示例:在函数式组件中使用props
  5. 【收藏】K8S部署minio对象存储
  6. kylin的安装和启动
  7. Docker容器间Link单向通信
  8. docker安装Jenkins:查看安装版本信息
  9. Python3 数字类型转换
  10. Spring MVC Hibernate验证器使用示例