您可以使用renice正在运行的进程,给它更多或更少的优先级(即所谓的“nice值”)。请注意,UNIX优先级比例有点违反直觉:负值表示进程比并发进程更受青睐,即,它具有“更多”优先级。
因此,您可以尝试通过给定其PID来“减慢”进程:
# lower priority of a process
renice +1 "PID"
每次运行此命令时,过程“ nice value”都会增加1;+1
当然可以使用其他整数值。
命令nice允许您以+10 nice的值调整来启动一个过程(使用option进行更改-n
)。例如:
# start a CPU-intensive task with low priority
nice ./cpu-hog
但是,“ nice value”仅会影响调度程序比系统中其他进程更喜欢运行特定进程的程度:如果您的计算机基本上处于空闲状态,则提高单个进程的“ nice value” 不会阻止该进程占用100%中央处理器。我引用了getpriority(2)联机帮助页:(我加了强调。)
它们的相对不错的值影响进程调度的程度在Unix系统之间以及在Linux上在内核版本之间都不同。从内核2.6.23开始,Linux采用了一种算法,该算法导致漂亮值的相对差异产生更强的效果。每当系统上有其他
_更高的优先级负载时,这会导致非常低的值(+19)真正为进程提供很少的CPU。
其原因在于进程在类似UNIX的内核上运行的方式:每次内核决定运行某个进程时,该进程在一定(固定和短时间内)都完全控制CPU内核。“ nice值”可以影响内核调度程序愿意多长时间为一个进程分配一个时隙,但是您不能更改这样的事实,即一旦调度,一个进程就会在固定的时间内不受干扰地运行。
因此,如果系统中没有其他可争夺CPU访问权限的进程,那么除了降低CPU的速度外,还无法使进程的运行速度变慢。