如何根据挂钟时间使用“perf”获取堆栈样本

如何根据挂钟时间使用“perf”获取堆栈样本

我正在尝试使用 Linux 的perf_events框架来调查我们一台服务器上的应用程序的问题。根据我对该perf工具的阅读,收集堆栈相对简单。

我想知道是否可以简单地使用挂墙时间作为一种事件来每 N 秒收集一次堆栈。

我当前使用的命令是:

perf record -e cycles -T -o <dir>/samples.data -F 1 --call-graph dwarf -T -p <pid>

根据我目前的理解,该命令将每 1 秒采样一次 ( ) 并从进程 ( ) 中-F 1抓取堆栈 ( ) ,直到 perf 命令被信号终止。-g-p <pid>

但根据我收集的数据,似乎每秒有不止一组样本?所以,我认为我误解或误解了收集样本的方式perf

另外,如果我想每 2、5 或 10 秒记录一次堆栈以减少收集的数据量,该怎么办?有没有办法实现这一点perf

相关内容