如何从内核获取页面错误统计信息

问题描述:

如何从运行的应用程序中获取内核中的页面错误统计信息? 其他事件如SMP节点中的cpu迁移计数或上下文切换次数如何?如何从内核获取页面错误统计信息

我想为程序的各个小部分计算这样的事件。

谢谢。

你会想要使用内核打包的“perf”工具。请参阅here

+0

我很确定你会找到有趣的东西看PAPI,Likwid甚至Oprofile。 – claf 2011-10-06 09:01:43

procfs记录了一些信息,但是(我相信)并不是全部信息,绝对不是“针对各种小部件”,而是仅针对整个过程。我怀疑内核记录例如上下文切换或页面错误“适用于各种小部件”。也许你可以在每个“小部分”的开始和结尾处拍摄适用的/proc伪文件的快照,并为差异提供 - 对于某些应用程序(这些应用程序不是每次都以这种方式分支)可能是可接受的替代品。

+0

哪些procfs记录可以使用?有统计的cpu迁移和cntx交换机? – osgx 2010-04-04 01:31:07

+0

是的,我可以在测量的部件之间进行扫描(如读取文件)。 – osgx 2010-04-04 01:31:48

+0

有一个cntx开关的计数器:http://lxr.linux.no/linux+v2.6.33/kernel/sched.c#L2962 'long long nr_context_switches()' – osgx 2010-04-04 01:34:22