是否可以使用 Linux 实时监控进程的调度情况?

是否可以使用 Linux 实时监控进程的调度情况?

我正在尝试使用 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

等等。现在看来我在做某事,但还不够清楚。我只想看看进程是如何在核心中调度的。即,进程 1 在 0.30 释放,然后进程 2 在 0.70(系统计时器值)启动,等等。

通过监视“/proc”等内核文件夹是否可以实现类似的操作?如果不是,有没有办法使用其他 Linux 跟踪工具或调度程序工具来确定这一点?

非常感谢任何指导。请告诉我是否还需要提供其他信息。

提前致谢。

答案1

每个进程的启动方式以及结束方式/原因都是不同的。看起来您想要做的事情实际上是不可能的,除非您想查看进程正在进行的调用,在这种情况下您可以使用strace输出并对输出进行排序以查看它到底在做什么。

相关内容