linux – 什么是锁步采样?

linux – 什么是锁步采样?,第1张

概述我在几篇关于分析应用程序的帖子中看过这个术语,但我不明白它实际意味着什么以及它如何影响分析结果. 我见过它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 numbere 我在几篇关于分析应用程序的帖子中看过这个术语,但我不明白它实际意味着什么以及它如何影响分析结果.

我见过它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天的样本周期将包括一天中的所有小时.这样可以更全面地了解流量水平.每小时一次采样将在短短几周内提供完整的图像.

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

总结

以上是内存溢出为你收集整理的linux – 什么是锁步采样?全部内容,希望文章能够帮你解决linux – 什么是锁步采样?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1025542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存