我正在使用linux / proc // stat文件为应用程序生成cpu使用信息。我遇到的问题是在Fedora 13上看起来很奇怪,在ubuntu 10.04上的事情就像我期望的那样。
具体地:
在fedora上,应用程序以3:1的比例记录更多的处理系统时间
在ubuntu上,应用程序以4:1的比例记录更多进程用户时间
在fedora上,进程用户时间值会在一段时间后停止递增,并且永远不会继续。
这对我来说似乎很奇怪,而且用户时间停止递增的事实看起来像是一个彻头彻尾的错误。
我也尝试用几种不同的方式读取值,所有这些都具有相同的结果,并且我已经进行了测试以确认用户和系统时间没有被转置。
任何人都可以了解可能发生的事情吗?是否有任何有效的方法可以使进程用户时间停止为进程递增?
答案 0 :(得分:0)
根本没有增加的用户时间听起来像一个bug。如果您可以创建一个演示问题的最小示例,我会将其提交到Fedora bug tracker。
(你是否在信号处理程序方面做了很多工作?)
答案 1 :(得分:0)
假设您的意思是/ proc / [pid] / stat,如果一个进程在syscall中花费所有时间或等待wchan(通常是磁盘或网络或其他I / O),则该进程不会累积用户时间。
进程记帐的详细程度由Linux 2.6.x(可能还有其他)内核中的许多配置变量控制。