加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 什么是锁步采样?

发布时间:2020-12-14 00:58:51 所属栏目:Linux 来源:网络整理
导读:我在几篇关于分析应用程序的帖子中看过这个术语,但我不明白它实际意味着什么以及它如何影响分析结果. 我见过它here for dtrace: The rate is also increased to 199 Hertz,as capturing kernel stacks is much less expensive than user-level stacks. The
我在几篇关于分析应用程序的帖子中看过这个术语,但我不明白它实际意味着什么以及它如何影响分析结果.

我见过它here for dtrace:

The rate is also increased to 199 Hertz,as capturing kernel stacks is
much less expensive than user-level stacks. The odd numbered rates,99
and 199,are used to avoid sampling in lockstep with other activity
and producing misleading results.

Here for perf:

-F 99: sample at 99 Hertz (samples per second). I’ll sometimes sample faster than this (up to 999 Hertz),but that also costs overhead. 99
Hertz should be negligible. Also,the value ’99’ and not ‘100’ is to
avoid lockstep sampling,which can produce skewed results.

从我所看到的所有剖析器应该避免锁步采样,因为结果可能“倾斜”和“误导”,但我不明白为什么.我想这个问题适用于所有的分析器,但我对linux上的perf感兴趣.

解决方法

锁步采样是指分析样本与应用程序中的循环频率相同的情况.结果是样本经常出现在循环中的相同位置,因此它会认为该操作是最常见的操作,并且可能是瓶颈.

如果您试图确定道路是否会出现拥堵,并且每隔24小时对其进行一次采样,则可以进行类比.该样本很可能与流量变化保持同步;如果是在上午8点或下午5点,它将与高峰时间一致,并得出结论:道路非常繁忙;如果它是在凌晨3点,它将得出结论,实际上根本没有流量.

为了准确采样,需要避免这种情况.理想情况下,样本应该比应用程序中的任何周期更频繁,或者以随机间隔,以便在任何特定操作中发生的机会与操作所花费的时间量成比例.但这通常是不可行的,因此下一个最好的事情是使用与程序周期的可能频率不一致的采样率.如果程序中有足够的循环,则应确保样本在每个循环开始时以许多不同的偏移量进行.

为了将其与上述类比联系起来,每天23小时或每天随机抽样将导致样本最终遇到一天中的所有时间;每23天的样本周期将包括一天中的所有小时.这样可以更全面地了解流量水平.每小时一次采样将在短短几周内提供完整的图像.

我不确定为什么奇数频率可能确保这一点.它似乎是基于一个假设,即程序操作有固有频率,这些都是偶数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读