在程序完成处理之前,是否可以命令CPU暂停所有非必要进程?目标是减少竞争CPU处理时间的进程数量,我最终期望我的程序的挂钟运行时间有所改善。
所以我想启动我的程序运行,命令CPU暂停除我的程序之外的非必要进程,当我的程序终止时,CPU可以恢复先前暂停的进程。
答案 0 :(得分:2)
在Linux上,明显的初始策略是使用renice提高进程的优先级。 nice value越低,优先级越高,最高优先级为-20。
(这里我创建了一个长时间运行的过程)
sleep 100000 &
作为进程的root grep;
ps -ef | grep sleep
500 **4323** 2995 0 18:44 pts/1 00:00:00 sleep 100000
500 4371 2995 0 18:45 pts/1 00:00:00 grep --color=auto sleep
将流程重新设置为非常高的优先级;
renice -20 4323
您还可以将SIGSTOP和SIGCONT信号发送到停止和继续特定过程,如此;
skill -STOP -p <processid>
skill -CONT -p <processid>
不幸的是,构成非必要流程的内容取决于您自己的定义。您可以通过检查进程列表并使用以下命令暂时停止所有特定用户的进程来停止所有非root进程;
skill -STOP -u <userid>
skill -CONT -u <userid>
显然要注意停止生成sudo根会话的shell等进程。