我注意到,当负载增加到超过 1(即“uptime”命令中“load average:”后的第一个数字)时,我的计算机就会变得迟缓。
重负荷进程(如 rsync)经常会使负载超过 1,即使我将它们重新设置为最低优先级(+19)。重新设置优先级有一点帮助,但作用不大。
我可以告诉 nice(或其他程序)在负载增加超过 1 时完全停止(kill -STOP)任何 +19 进程(并在负载减少到 .75 或类似值时恢复)吗?
答案1
FreeBSD 具有 IDLE 进程类 - 参见 rtprio(1) 手册页 - 因此您可以为 rsync 分配 IDLE 优先级,这样当有正常进程活动时它就不会获得时间片。
Linux 有用于 CFQ io 调度程序的 ionice(1): http://linux.die.net/man/1/ionice 非常相似的概念,但用于 I/O。