【问题标题】:Pausing non-essential CPU processes暂停非必要的 CPU 进程
【发布时间】:2012-01-22 03:38:52
【问题描述】:

是否可以命令 CPU 暂停所有非必要的进程,直到我的程序完成处理?目标是减少竞争 CPU 处理时间的进程数量,我最终期望我的程序的挂钟运行时间有所改善。

所以我想启动我的程序运行,命令 CPU 暂停除我的程序之外的非必要进程,当我的程序终止时,CPU 可以恢复之前暂停的进程。

【问题讨论】:

  • 我在 Windows 7 上运行

标签: cpu process


【解决方案1】:

在 linux 上,显而易见的初始策略是使用 renice 提高进程的优先级。 nice value越低,优先级越高,最高优先级为-20。

(这里我以创建一个长时间运行的进程为例)

sleep 100000 &

作为进程的根 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 root 会话的 shell。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-09
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多