是否可以通过Linux实时监控进程的调度?

moz*_*ors 3 linux scheduling process scheduled-tasks linux-kernel

我正在尝试使用RaspberryPi开发一个多进程系统,我想在其中监视所有主要进程以及如何使用Linux进行调度.也就是说,获取调度程序状态,开始时间,发布时间等.我一直在弄乱'/ proc'文件夹以找到这样的信息,但到目前为止我还没有找到任何真正有用的东西.

例如,如果你进入/ proc/pid/task/pid,你可以看到:

se.exec_start
se.vruntime
se.sum_exec_runtime
se.statistics.wait_start
se.statistics.sleep_start
se.statistics.block_start
se.statistics.sleep_max
se.statistics.block_max
se.statistics.iowait_sum
se.statistics.wakeups
Run Code Online (Sandbox Code Playgroud)

等等.现在,这看起来像我要做的事情,但不够清楚.我想看看如何在核心中安排进程.即,Process1在0.30发布,然后Process2从0.70(系统计时器值)等开始.

通过监视'/ proc'等内核文件夹可以实现这样吗?如果没有,有没有办法使用Linux的其他跟踪工具或调度工具来确定这一点?

任何指导都非常感谢.请告诉我是否还有其他需要提供的东西.

提前致谢.

编辑:使用kernelshark, 在此输入图像描述

我想确切地知道,对于其他进程,cpu何时为每个任务完成一次迭代.

osg*_*sgx 5

我想看看如何在核心中安排进程.即,Process1在0.30发布,然后Process2从0.70(系统计时器值)等开始.

这称为跟踪,通常在用户请求后在内核中完成.Linux中有几个内核事件跟踪器.尝试

Gregg有一些关于Linux追踪的信息(带有"小马玉米吉祥物"的魔力):http://www.brendangregg.com/blog/2015-07-08/choosing-a-linux-tracer.html(应该有一些)有关跟踪的介绍,请访问https://www.slideshare.net/brendangregg)...

通过监视诸如'/ proc'之类的内核文件夹可以实现这样的事情

没有inotify/proc(它里面没有真正的目录或文件的真实:/sf/answers/1742911341/),所以你不能监视更改,你只能重新读了一些/ proc中(或/ SYS)定期.