Linux 性能计数器是一个基于内核的新子系统,为所有性能分析提供了框架。它涵盖硬件级别(CPU/PMU、性能监控单元)功能和软件功能(软件计数器、跟踪点)。 从2.6.33开始,内核提供了“perf_event_create_kernel_counter”内核API,供开发人员创建内核计数器来收集系统运行时信息。我最关心的是启用tracepoint/ftrace 时对整个系统的性能影响。我找不到关于它们的文档。曾经有人告诉我ftrace是通过动态修补代码实现的,它会大大降低系统速度吗?
最佳答案
动态修补是在未激活跟踪时最大程度地减少开销的一种方法。基于 PMU 的硬件计数器的开销应取决于您采样的不同事件的数量和频率。它可能足够低,足以让您找到可接受的配置,具体取决于您想要的。我会尝试启用您感兴趣的任何信息收集,仔细设置频率,然后根据经验检查开销是否可以接受。
关于profiling - Linux 内核中 Perf 事件子系统的性能开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2794188/