【问题标题】:What does the OProfile warning 'dropping hyperspace sample' mean?OProfile 警告“丢弃超空间样本”是什么意思?
【发布时间】:2012-04-03 00:48:32
【问题描述】:

当使用统计执行分析器 OProfile 为我的 C 应用程序可视化调用图配置文件时,它多次包含以下警告。这个警告对我来说相当神秘:

warning: dropping hyperspace sample at offset 1af9 >= 2be8 for binary /home/myuser/mybinary

我在这样的 Xen 虚拟化环境中使用 OProfile:

modprobe oprofile timer=1
opcontrol --no-vmlinux
opcontrol --start
(wait for profiling data to accumulate)
opcontrol --stop
opreport --session-dir=/var/lib/oprofile --exclude-dependent --demangle=smart \
--symbols /home/myuser/mybinary --callgraph

最后一条命令的完整输出是:

Overflow stats not available
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
warning: dropping hyperspace sample at offset 84d0 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 7ac0 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 7d90 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 7ac0 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 7d90 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 8210 >= 79a0 for binary /home/myuser/mybinary
samples  %        symbol name
-------------------------------------------------------------------------------

之后,它会打印看似合理的调用图数据。

“超空间”警告是什么意思?是什么原因造成的?它会影响分析结果吗?我该如何解决?

【问题讨论】:

    标签: c linux profiling performance-testing oprofile


    【解决方案1】:

    Maynard Johnson 在a message to a mailinglist 中解释了这个警告:

    据报道,oprofile 记录了样本 内核驱动程序似乎归因于错误的二进制文件,在 特别是如果采样率非常高或在做调用图时 分析(因为调用图分析,如高采样率,也 导致 oprofile 内核驱动程序的开销非常高,并且 其内部样本缓冲区溢出)。我怀疑那是什么 你遇到了。不幸的是,这是一个非常隐蔽的错误,并且 目前还没有人能够找到根本原因。内核驱动程序 确实报告其内部缓冲区的溢出计数,并且 oprofiled 日志将这些打印出来。为方便起见,从 oprofile 0.9.5 开始, opreport 在发现非零溢出时也会打印警告 计数并建议降低采样间隔。

    我建议查看您的 /var/lib/oprofile/samples/oprofiled.log 和 查找上述配置文件运行的溢出统计信息(日志条目 有时间戳)。如果您只看到几个或非常小的 百分比(例如,小于 3%),您可以忽略 异常。一般来说,为了避免/限制这种事情,你应该 以实际最低的采样率配置文件,尤其是当您 做 callgraph 分析。那么我所说的“实用”是什么意思?好吧, 与任何基于样本的分析器一样,oprofile 本质上是统计的。 你拥有的数据点越多,你对 数据。因此,为了 100% 的信心,您应该(理论上)使用 计数值为“1”。不过不太实用,因为你的机器 可能会出现锁定,因为正在完成的大部分工作都在录制 样品。对于循环事件分析,您可能可以使用计数 价值数百万左右(在今天的处理器上)并且仍然是 对数据非常有信心。对于其他事件,这真的取决于 关于它们的发生频率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-18
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-17
      • 2012-02-02
      • 1970-01-01
      相关资源
      最近更新 更多