有没有一种方法可以跟踪来自另一个子进程的子进程的CPU和内存使用情况



我想启动一个始终在后台运行的芹菜进程。我希望这些正在运行的进程能够跟踪所有其他进程的系统资源(CPU、RAM等(使用情况,这些进程将在需要并行执行新任务时启动。然后我希望跟踪过程定期将数据记录到文件中。

如果上述实现是可能的,那么在生产设置中使用是否安全?

我没有试过,但我读过关于psutil和py spy的文章。但我不确定它们是否可以用于跟踪另一个并行过程的过程

已经阅读了关于psutil和py spy的内容。但我不确定它们是否可以用于跟踪另一个并行进程的进程。

是的,他们可以。

它们类似于分叉出一个$ ps axup ${PID}子代。如果ps可以获得统计数据,那么psutil也可以。


使用wait4()显然只适用于儿童。

使用getrusage()对自己和孩子都有效。

从前,ps需要sguid权限才能读取/dev/kmem。/proc伪文件系统清理了一些权限相关细节。

psutil当然可以。


import psutil
p=psutil.Process(121000) # a pid you want to track. Father, son, brother, unrelated. It doesn't matter
p.cpu_percent()
# 1.4 my process use 1.4% of a cpu
p.cpu_times()
# pcputimes(user=42.4, system=0.01, children_user=0.0, children_system=0.0, iowait=0.01)
# Or detail
p.cpu_times().user, p.cpu_times().system
# Time spend so far, in sec
p.memory_percent()
#0.14 (0,14% memory used)

相关内容

  • 没有找到相关文章

最新更新