如果负载 >= 1,则告诉 'nice' 停止 +19 个进程

如果负载 >= 1,则告诉 'nice' 停止 +19 个进程

我注意到,当负载增加到超过 1(即“uptime”命令中“load average:”后的第一个数字)时,我的计算机就会变得迟缓。

重负荷进程(如 rsync)经常会使负载超过 1,即使我将它们重新设置为最低优先级(+19)。重新设置优先级有一点帮助,但作用不大。

我可以告诉 nice(或其他程序)在负载增加超过 1 时完全停止(kill -STOP)任何 +19 进程(并在负载减少到 .75 或类似值时恢复)吗?

答案1

FreeBSD 具有 IDLE 进程类 - 参见 rtprio(1) 手册页 - 因此您可以为 rsync 分配 IDLE 优先级,这样当有正常进程活动时它就不会获得时间片。

http://www.freebsd.org/cgi/man.cgi?query=rtprio&apropos=0&sektion=0&manpath=FreeBSD+8.2-RELEASE&arch=default&format=html

Linux 有用于 CFQ io 调度程序的 ionice(1): http://linux.die.net/man/1/ionice 非常相似的概念,但用于 I/O。

相关内容