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

标签 profiling linux-kernel performancecounter overhead ftrace

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/

相关文章:

database - 为 postgres 查询设计索引

c - 如何避免多个原始套接字绑定(bind)到同一 IP 地址?

c - wait_event_timeout 的解释

c# - 处理横切问题,例如 Web 应用程序组件的内部统计报告

c# - PerformanceCounter.NextValue() 抛出 InvalidOperationException

java - 我如何分析 Java 中的线程?

java - Tomcat 的 Catalina 实用程序线程定期使用高 CPU 和内存

c++ - 匹配开始/结束分析调用

linux-kernel - 为什么使用 strace 只捕获一次系统调用(getpid)?

C# PerformanceCounter 请求/秒未更新