我编写了一个 CPU 密集型数据处理脚本。它已经运行了几天,但是现在(感谢发送到控制台的跟踪消息),我可以看到它没有工作(实际上,过去 10 个小时左右都没有工作。
当我运行时top
,我注意到进程要么处于睡眠状态(S),要么处于不可中断的睡眠状态(D)。这是在浪费很多时间。
我曾经sudo renice -10 PID
更改过进程的nice值,运行了一会儿后,我注意到进程又重新进入睡眠状态。
我的问题:
我可以做些什么来强制脚本运行直到它完成(如果这意味着机器在脚本结束之前无法使用?
有没有
yield
我可以在 Python 中使用的命令,它允许我定期将控制权传递给其他进程/线程,以阻止调度程序试图让我的脚本进入睡眠状态?
我在 Ubuntu 10.0.4 上使用 python 2.7.x