uno*_*ode 9 python subprocess gnu-screen multiprocessing idle-processing
我有一个python脚本,它使用多处理和子进程与不同的参数并行启动多个外部命令.代码可以在这里找到.
为方便起见,我在GNU Screen会话中启动此脚本.运行此脚本的计算机有12个处理器,这些处理器在进程变为活动状态之前处于空闲
每个过程需要几个小时到几天才能运行,因此我经常断开与机器的连接并分离屏幕会话.
然而,最近我注意到了一种我以前从未体验过的行为.有几次我回到机器上,发现零负载是空闲的.如果我通过ps ux
或获得活动进程列表,或者top
我仍然可以在进程列表中找到脚本(和子进程).然后我重新连接屏幕会话以检查程序的状态,并立即将新的一批进程发送到队列,并且系统的负载在几秒钟内返回到12.请注意,除了重新连接屏幕会话之外,我对脚本完全没有任何作用.
我在系统上安装了一个监控工具,结果是一些流程在一段时间后完成并且没有启动新流程.因此系统处于活动状态,直到子进程忙,并且一旦没有更多的作业从队列中释放就变为空闲.
所以我的问题是,有没有人知道解释这种行为的任何原因?
编辑:大约一年后,这个问题不再可重现,无论是屏幕上的一些补丁还是python本身.我接受了答案,因为它为测试提供了良好的指导.
我无法解释你所看到的原因。不过,我确实知道你下一步可以尝试什么。
请回复这些测试的结果。这会让我有更多的时间继续前进。