sudo perf top
显示"事件:0周期"。
sudo perf record -ag sleep 10
显示
[ perf record: Woken up 1 time to write data ]
[ perf record: Captured and wrote 0.154 MB perf.data (~6725 samples) ]
但是,sudo perf report
显示" perf.data文件没有样本!"。我还检查了记录的perf.data
并确认其中没有任何样品。
系统是" 3.2.0-86-virtual#123-Ubuntu SMP Sun Jun 14 18:25:12 UTC 2015 x86_64 x86_64 x86_64 GNU / Linux"。 perf版本3.2.69
赞赏输入。
答案 0 :(得分:1)
空闲的虚拟化系统上可能没有真正的样本(你的linux内核版本有" -virtual"后缀);或者可能无法访问默认使用的硬件计数器(-e cycles
)。
尝试分析一些真实的应用程序,例如
echo '2^2345678%2'| sudo perf record /usr/bin/bc
同时检查-e cpu-clock
等软件计数器:
echo '2^2345678%2'| sudo perf record -e cpu-clock /usr/bin/bc
您可以尝试perf stat
(perf stat -d
)使用相同的示例来查找系统中哪些基本计数器真正增加:
echo '2^2345678%2'| sudo perf stat /usr/bin/bc
关于"(~6725个样本)"输出 - 性能记录不会对其输出中的样本进行计数,只是估计它们的计数,但这种估计始终是错误的。任何perf.data文件都有一些固定的部分没有任何样本,它可能在系统范围模式下使用数十kb;并且估计错误地将该部分计为包含一些平均长度的事件。