我有一个rsync cron作业,它正在推动服务器负载并触发监视器警报。如果我将作业设置为较高的运行级别,是否可以有效地减少其对系统负载值的影响?
我有一个rsync cron作业,它正在推动服务器负载并触发监视器警报。如果我将作业设置为较高的运行级别,是否可以有效地减少其对系统负载值的影响?
Answers:
更改nice值不会直接减少系统负载。但是,可以使用它为其余进程保留更多资源,我怀疑这是您真正想要的。
从http://linux.101hacks.com/monitoring-performance/hack-100-nice-command-examples/
内核根据nice值确定一个进程需要多少处理器时间。可能的精确值范围是:-20到20。正确值-20的进程具有很高的优先级。值为20的进程的优先级非常低。
因此,是的,如果要确保其他进程具有优先级,则希望在比其他进程更高的级别上运行cron作业。
为此,您希望像这样执行cron脚本:
/bin/nice -n 10 /path/to/cron-script
这将使cron脚本的正常运行速度提高10。
另请参阅效果如何?和http://www.cyberciti.biz/faq/change-the-nice-value-of-a-process/了解更多详细信息。
更改过程的良好级别不太可能影响系统负载值。系统负载值是运行队列的平均长度,基本上是要使用CPU的进程数。
如果您正在运行受CPU约束的进程(不是rsync,仅作为示例),那么只要有可用的时间,它将总是要使用CPU时间。由于它总是要运行,因此它将为系统负载值贡献1.0的负载值。进程的良好级别无关紧要,因为运行队列的平均长度不受运行队列中进程顺序的影响。
您可能会考虑以下三种方法来减少对系统负载/ CPU时间的影响:
nice
命令手动降低任务的优先级。cpulimit
命令重复暂停该过程,以使其不超过特定限制。built-in control groups
一种机制,该机制告诉调度程序限制可用于该进程的资源量。资源资源