perf记录-P做什么?

时间:2016-08-02 18:24:44

标签: record sample perf period

我已经尝试过命令perf记录,然后执行perf记录-P,这应该允许我指定采样周期,但它不起作用。 perf记录-P的结果与从perf记录获得的结果相同。

那么perf记录-P实际上做了什么?

3 个答案:

答案 0 :(得分:2)

@Alina,

如果您阅读了perf记录的手册页,您可以看到perf record -P将用于记录采样周期,而不是指定它。

如果要记录更多/更少的样本并修改周期,则必须指定perf record -c 2--count=)之类的命令,其中2是采样周期。这意味着,对于您正在测量的事件的每两次出现,您将获得一个样本。然后,您可以修改采样周期并测试各种值。

表示采样周期的另一种方法是指定每秒采样的平均速率(频率) - 您可以使用perf record -F来执行此操作。因此perf record -F 1000将每秒记录大约1000个样本,并且当与事件对应的硬件/ PMU计数器溢出时将生成这些样本。这意味着内核将动态调整采样周期。

答案 1 :(得分:1)

可以使用-c选项指定采样周期,但也可以使用-F选项指定采样频率。根据{{​​3}}:

,默认值为1000个样本/秒或1000Hz
  

期间和费率

     

perf_events接口允许两种模式表示采样周期:

     
      
  • 事件发生次数(期间)
  •   
  • 平均样本率/秒(频率)
  •   
     

perf工具默认为平均速率。它设置为1000Hz,或   1000个样本/秒。这意味着内核正在动态调整   采样周期达到目标平均费率。调整   在原始配置文件数据中报告期间。相比之下,随着   在其他模式中,采样周期由用户设置并且不变化   样本之间。目前不支持采样期   随机化。

至于-P选项的作用,perf的perf wiki(以及相关的commit message)包含一些背景知识。如果我正确地解释它,该选项意味着出于效率原因,许多相等的样本可以合并到也包含样本周期的单个事件中。最初的目的是减少生成的样本数量,以避免达到"速率限制"这将导致样本丢失。

答案 2 :(得分:0)

来自perf record的手册页:

  

-P--period

     

记录样本期。

perf文档经典简短,没有说任何重要内容。当然它不允许你添加一个参数。阅读代码并不能更好地了解该选项的用途。