linux-kernel - 内核模块分析器

标签 linux-kernel kernel profiler kernel-module

我想分析一些模块(例如网络子系统模块)。 我们可以分析内核模块中函数的时间/CPU 利用率吗?

我听说过一些分析器,例如:

是否有任何分析器最适合我的上述用例?

非常感谢您的宝贵时间,谢谢

最佳答案

你没看错! Perf 是适合您的工具。由于您要分析内核模块,因此没有必要使用任何用户空间工具,例如 valgrind

通常在监控软件时,您关心的是您的系统在每个系统上花费了多少时间,这可以通过 perf top 来实现,它可以让您很好地估计您的系统花费了多少时间在每个功能。

您花费大量时间的函数可能是非常好的优化指针。

我不确定我是否理解您需要的时间/cpu 模型,但我认为以上内容应该可以满足您的需求。

您可以阅读有关如何使用 perf here 的更多信息.

[编辑]
正如@myaut 所说,还有其他内核分析工具。虽然我对 perf 有很好的经验并且我不同意@myaut 关于结果质量的观点,但值得一提的是其他一些工具。如果您只是对完成工作感兴趣,perf 就可以了,但如果您想了解其他分析工具及其功能,我发现了这个不错的引用资料 here

(...如果我们帮助了您,请不要忘记将@myaut 或我的回答标记为已接受...)

关于linux-kernel - 内核模块分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29339619/

相关文章:

Java线程分析器?

linux - 将 cassandra shell 输出重定向到文件

c - 耳机插3.5接口(interface)怎么知道?

c - FreeBSD Kmod 找不到 sys/param.h

c - 由 fscanf 引起的 fscanf 分析器错误

c# - 为什么 GC.GetTotalMemory() 和 CLR Profiler 数字之间存在巨大差异?

linux - 如何在用户空间调用自定义的Kernel函数?

assembly - Linux x86 64 中 MSR_GS_BASE 的详细信息

c - 为什么 Linux 内核模块中定义的 mmap 返回 MAP_FAILED?

linux - Linux 中的实时调度