Linux内核Perf事件子系统的性能开销

6

Linux的性能计数器是一个基于内核的新子系统,提供了一个框架来进行性能分析。它涵盖了硬件级别(CPU/PMU,性能监测单元)特性和软件特性(软件计数器,跟踪点)。自2.6.33以来,内核提供了“perf_event_create_kernel_counter”内核API,供开发人员创建内核计数器以收集系统运行时信息。我最关心的是当启用跟踪点/ftrace时对整个系统的性能影响。我找不到任何文档有关它们的情况。我曾经被告知ftrace是通过动态修补代码实现的,它是否会显著地降低系统速度?


perf旨在对系统影响尽可能小,具体取决于您如何使用它。 - Spudd86
2个回答

1

动态修补被用作一种在未激活跟踪时最小化开销的方式。基于PMU的硬件计数器的开销应该取决于你正在采样多少不同的事件以及采样频率。根据你的需求,它可能足够低,让你找到一个可接受的配置。我建议尝试启用你感兴趣的任何信息收集,仔细设置频率,然后通过实证检查开销是否可接受。


-1

人们加入这些东西是因为认为它们可能有用,毫无疑问,它们可以收集有趣的信息。如果这是目标,那很好。

然而,如果目标是为了调整软件以提高性能,它们在诊断价值上没有多少作用。

它们可以提供有趣的测量结果,但它们并不告诉您要修复什么问题

这种方法确实告诉您要修复什么问题


我的目标是在生产机器上运行长期分析,因此性能开销最让我担心。 - Bo Xiao
1
@Bo:我认为,对于长期监测健康状况而言,您可能不需要以高频率收集信息,这更多是一个总体时间的问题。如果您有某些正在以如此高的频率收集信息的东西,以至于它可能影响性能,那么我认为这将是比您可能理解的更多的信息。通常人们进行“仪器化”(并担心开销)是为了尝试找到“瓶颈”(这不是一个好方法)。 - Mike Dunlavey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接