perf使用

2023-05-16

perf可记录高达700多种events事件。

sudo perf list    #可以查看可以perf的事件
sudo perf record -F 999 -e cpu-clock,faults -a -g -p 28544 -- sleep 60
#制定进程7424采集cpu-clock和pagefault两个指标,全系统采集,控制频率999 要求caller/callee, 采集60秒,注意 -- sleep 之间有一个空格
# -g  : enables call-graph recording and display
# -a  : system-wide collection from all CPUs
# -p : profile events on existing process id
# -F : 每秒采集多少事件

# 上面的命令生成 perf.daa

#预处理
sudo perf script > out.perf
#clone仓库
git clone git@github.com:brendangregg/FlameGraph.git
#打平stack
./stackcollapse-perf.pl out.perf > out.folded
#生成火焰图
./flamegraph.pl out.folded > out.svg

参考:

http://www.brendangregg.com/perf.html

http://www.brendangregg.com/flamegraphs.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

perf使用 的相关文章

  • perf使用

    perf可记录高达700多种events事件 sudo perf list 可以查看可以perf的事件 sudo perf record F 999 e cpu clock faults a g p 28544 sleep 60 制定进程7
  • BCOS区块链性能分析工具的安装和使用perf+火焰图

    安装Perf perf的全称是Performance Event 在2 6 31版本后的Linux内核中均有集成 是Linux自带的强力性能分析工具 使用现代处理器中的特殊硬件PMU Performance Monitor Unit 性能监
  • Android Systrace 跟踪文件格式

    Android systrace工具 调用atrace通过亚行工具 但是 我不太了解跟踪文件的格式 显然它与linux非常相似ftrace工具有一些差异 主要区别在于它不使用系统映射文件 但它将所有信息包含到跟踪文件中 此外 还有 Andr
  • 在linux中定期读取性能计数器

    有没有办法在Linux中定期读取性能计数器 就像是perf stat我正在寻找能够对每个 X 周期进行采样的能力 基本上我希望能够读取某些程序的每 X 个 CPU 周期的指令计数器 执行的指令数 好消息 在下一个内核 Linux 3 9 中
  • “perf sched record”如何计算上下文切换?

    I used perf sched record p 8827记录特定程序的调度程序活动 但是 当我生成延迟报告时 它显示只有一个上下文切换 而要求它转储原始事件则显示许多切换 摘录如下 这怎么可能有道理呢 我想我在某种程度上误解了事情 切
  • Perf 显示没有内存访问的块中的 L1-dcache-load-misses

    下面是一个代码块 perf record 标记为导致所有 L1 dcache 未命中的 10 但该块完全是 zmm 寄存器之间的移动 这是 perf 命令字符串 perf record e L1 dcache load misses c 1
  • 如何让 perf stat 支持 KVM 中的“分支”、“分支未命中”等硬件事件

    我想通过 分支未命中 硬件事件来评估一个进程的性能 但是当我使用 perf stat 获取 分支未命中 数据时 它总是返回 0 因为我的操作系统位于 KVM 中 因为我拿一台真机来做测试比较麻烦 所以我想知道当我在 KVM 中时 有什么方法
  • 每 1 毫秒从 PMU 收集特定进程的数据

    我想每 1 毫秒访问一次特定 PID 的硬件性能计数器 并将输出保存到文本文件中 下面的代码收集系统中并行运行的所有进程在一定时间内的数据 然后将其输出到文本文件 bin sh set x ps ef awk printf 2 n gt o
  • 记录 Linux 中任何可执行文件/进程的所有内存访问

    我一直在寻找一种方法来记录 Linux 中进程 执行的所有内存访问 我知道之前有人就这个话题提出过这样的问题 记录Linux中整个系统的内存访问足迹 但我想知道是否有任何非仪器工具可以执行此活动 我是不寻找 QEMU VALGRIND为此目
  • Perf 事件:dTLB 加载和 dTLB 存储的含义是什么?

    我试图理解性能事件的含义 dTLB 加载和 dTLB 存储 当启用虚拟内存时 每次内存访问的虚拟地址都需要在TLB中查找 以获得相应的物理地址并确定访问权限和特权 或者在映射无效的情况下引发异常 这dTLB loads and dTLB s
  • Mac OS 的 Perf stat 等效项?

    Mac OS 上有等效的性能统计吗 我想对 CLI 命令做同样的事情 但谷歌搜索没有产生任何结果 Mac OS X 中有 Instruments 工具来分析应用程序 包括硬件 PMU 默认是对 CPU 使用情况进行采样分析器 一些文档 ht
  • 为什么执行指针追踪时该跳转指令的开销如此之大?

    我有一个程序可以执行指针追逐 https en wikichip org wiki pointer chasing我正在尝试尽可能优化指针追逐循环 我注意到perf record检测到函数中约 20 的执行时间myFunction 用于执行
  • perf_event_open - 如何监视多个事件

    有谁知道如何设置perf event attr可以通过以下方式触发 PMU 监视多个 类型 事件的结构perf event open Like perf record e cycles faults ls 它有两种不同的事件类型 PERF
  • “perf stat”输出是什么意思?

    I use perf stat 命令对一些事件进行统计 root root test perf stat a e r81d0 r82d0 v a r81d0 71800964 1269047979 1269006431 r82d0 2665
  • 从 perf 获取用户空间堆栈信息

    我目前正在尝试在我正在测试的 PostgreSQL 版本中追踪一些幻像 I O 它是一个多进程服务器 将磁盘 I O 关联回特定后端和查询并不简单 我还以为Linux的perf工具将是理想的选择 但我正在努力捕获块 I O 性能计数器指标并
  • 计算 Amd Zen 2 处理器上的 L3 缓存访问事件

    我试图找出与 perf stat 命令一起使用的事件来计算 AMD Zen 2 处理器上的 L3 缓存访问次数 根据 PPR http developer amd com wordpress media 2017 11 54945 PPR
  • 有没有办法使用 perf 工具查找流程中各个功能的性能?

    我正在尝试在流程中实现各个功能的性能 我该如何使用 perf 工具来做到这一点 还有其他工具吗 例如 假设 main 函数调用函数 A B C 我想分别获得主要功能以及功能 A B C 的性能 有没有一个很好的文档来了解 perf 源代码
  • CPU缓存性能。存储未命中与加载未命中

    我使用 perf 作为基本事件计数器 我正在开发一个遭受数据缓存存储未命中的程序 其中比例高达80 我知道缓存原则上是如何工作的 它会在各种未命中情况下从内存加载 并在需要时从缓存中删除数据 我不明白的是 存储未命中和加载未命中之间有什么区
  • 使用 perf 查找线程瓶颈并优化挂机时间

    对 cpu 周期进行采样perf record如果核心利用率大致恒定 则对于寻找优化候选非常有用 但对于具有并行性不同的多个阶段的代码 计算 cpu 周期将重点强调并行阶段 而低估影响挂机时间的顺序或有限并行阶段 简而言之 天真的 perf
  • 为什么 Linux perf 使用事件 l1d.replacement 来处理 x86 上的“L1 dcache misses”?

    在英特尔 x86 上 Linux用途 https stackoverflow com a 52172985 149138事件l1d replacements来实施其L1 dcache load misses event 该事件定义如下 计数

随机推荐