为进程设置更高的 nice 级别是否是减少其对系统负载/CPU 时间影响的有效方法?

Gre*_*hal 11 cron io rsync load nice

我有一个 rsync cron 作业,它正在推动服务器负载并触发监视器警报。如果我将作业设置为以较高的 nice 级别运行,是否会有效减少它对系统负载值的影响?

M_d*_*_dk 10

更改 nice 值不会直接降低系统负载。然而,它可以用来为剩余的进程留下更多可用的资源,我怀疑这是你真正想要的。

来自http://linux.101hacks.com/monitoring-performance/hack-100-nice-command-examples/

内核根据 nice 值决定进程需要多少处理器时间。可能的 nice 值范围是:-20 到 20。nice 值为 -20 的进程具有非常高的优先级。nice 值为 20 的进程的优先级非常低。

所以是的,如果您想确保其他进程获得优先级,您希望在比其他进程更高的级别运行 cron 作业。

为此,您希望您的 cron 脚本像这样执行:

/bin/nice -n 10 /path/to/cron-script
Run Code Online (Sandbox Code Playgroud)

这将以增加 10 的 niceness 运行 cron 脚本。您可能想要进行一些测试,以在剩余进程和脚本执行时间之间找到一个很好的(非故意的)平衡。

另请参阅如何工作?http://www.cyberciti.biz/faq/change-the-nice-value-of-a-process/了解更多详情。


Tot*_*tor 9

它不会减轻您的负担。

如果存在可能的资源争用(多个进程“竞争”没有足够的可用 CPU 时间),它只会让其他进程更频繁地使用 CPU 时间。


Gre*_*ill 5

更改进程的 nice 级别不太可能影响系统负载值。系统负载值是运行队列平均长度,基本上就是想要使用CPU的进程数。

如果您正在运行一个受 CPU 限制的进程(rsync 不是,但只是例如),那么只要有可用时间,它就会始终希望使用 CPU 时间。由于它总是想运行,因此它将为系统负载值贡献 1.0 的负载值。进程nice级别是什么并不重要,因为运行队列的平均长度不受运行队列中进程顺序的影响。