我当前遇到一个问题,一个过程似乎以某种方式卡住,它只是没有被安排,状态总是'S'。我已经通过debugfs监视sched_switch_task跟踪了一段时间,没看到进程被调度。所以我想知道内核最后一次安排这个过程的时间是什么时候?
非常感谢。
答案 0 :(得分:3)
可能可以使用500
文件中的信息。
在那里你可以找到这些参数(取决于操作系统版本,我的是opensuse 3.16.7-21-desktop):
/proc/pid#/sched
这些值表示相对于系统启动时间的时间戳,但是在一个可能取决于您的系统的单位中(在我的示例中,单位是0.5毫秒,总值约为6天20小时并且更改)。
在上面列出的最后3个参数中,最多一个参数在任何时候都显示为非零,并且我怀疑相应的非零值表示它上次进入相应状态的时间(当过程主动运行时)都是零)。
因此,如果你的过程确实被卡住了,那么当它被卡住时会记录非零值。
注意:这主要是基于观察和假设 - 我没有发现这些参数记录在任何地方,所以带上一粒盐。
该文件中有大量其他计划信息,但主要是统计数据,而且没有难以使用的文档。