【问题标题】:perf.data file has no samplesperf.data 文件没有样本
【发布时间】:2014-02-04 23:31:53
【问题描述】:

我在 ubuntu 11.10 上使用 perf 3.0.4。它的记录命令运行良好,并显示在收集的终端 256 样本上。但是当我使用 perf report 时,它给了我以下错误:

perf.data file has no samples

我搜索了很多解决方案,但还没有成功。

【问题讨论】:

  • 请给我们您用来记录事件的命令。
  • 你的问题解决了吗?
  • 只是为了给出错误可能发生的另一个原因:它可能是because events requested are not enabled in kernel。例如,如果您记录sched: 事件之一,则必须设置sudo sysctl kernel.sched_schedstats=1

标签: profiling perf


【解决方案1】:

这个帖子有一些有用的信息:http://www.spinics.net/lists/linux-perf-users/msg01436.html

看来,如果您在不向来宾公开 PMU 的 VM 中运行,则默认集合 (-e cycles) 将不起作用。尝试使用-e cpu-clock 运行。根据该线程,OP 在运行 Ubuntu 10.04 的真实主机中也存在同样的问题,因此它也可能为您解决它...

【讨论】:

  • 谢谢!这帮助我解决了火焰图的问题(依赖于perf)。希望我提到的火焰图这条评论能帮助其他人找到这个话题。
  • 这对我没有帮助,但感谢您指出问题可能是它在 VM 中运行!
【解决方案2】:

perf record 命令报告的样本数是近似值,而不是正确的事件数 (see perf wiki here)。

要获得准确的事件数,请转储原始文件并使用wc -l 计算结果数:

性能报告-D -i perf.data | grep RECORD_SAMPLE | wc -l

如果perf report 表示找不到事件,此命令应报告 0。

让我们了解有关您如何使用 perf 记录、您正在采样哪个事件、哪个硬件、哪个程序的更多信息。

编辑:您可以先尝试使用-c-F 选项增加采样周期或频率

【讨论】:

    【解决方案3】:

    每当我在 perf record 过去工作过的机器上遇到此问题时,这是因为我留下了使用性能计数器运行的其他东西,例如,我在另一个终端选项卡中运行了 perf top

    在这种情况下,perf record 似乎根本没有记录任何与 PMU 相关的样本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 2017-06-16
      • 2016-01-11
      • 2018-08-24
      相关资源
      最近更新 更多