是否有可能为cron守护程序执行的所有脚本分配一个很好的和ionice的优先级?

为了更具体一些:

我有一台Debian Squeeze Linux机器,其中有一个Web应用程序,可以在全球范围内使用。 到目前为止,我每晚(在欧洲)都有一堆耗费资源的cronjob,对区域用户体验没有太大的影响。 但是现在我无法承受服务器在任何时候都变慢。

有没有办法强制所有的cron脚本(cron.daily等)inheritance一个不错的和ionice优先?

感谢您的贡献!

米格尔

是…

你可以让脚本获得一组特定的环境variables,或者从脚本中运行nice / ionice。

但是,这不是一个很好的解决你的问题。

  • 你可以抵消或错开脚本,使他们不争夺资源?
  • 你了解时间或系统活动模式? 例如, 在02:00和04:00之间,系统上的用户非常less,现在是运行维护脚本的好时机。
  • 你的服务器上有足够的资源吗?
  • niceionice不是很好的长期解决scheme。 ionice实际上并不影响一些更高性能的Linux内核调度algorithm。 它可以与CFQ调度程序一起工作 ,但有可能是要在服务器系统上使用截止date调度程序 。 这可能比试图强制过程中的好/离子更大的影响。

您可能需要设置crond服务,并运行nice和ionice已经设置。

http://b.zekjur.net/2012/09/23/systemd-ionice.html

但是,我还没有testing过,所以我不能以这种或那种方式担保。

如果这样做不起作用,或者没有足够帮助,则需要configurationcgroup。

你可能最好有这些cron作业运行在一个单独的Linux用户,你可以限制到较低的优先级。 假设你有这样的用户batchuser用户。 在你的/etc/security/limits.conf ,你想为这个用户添加一个条目(-19到19,其中19是最低优先级):

 batchuser - priority 19 

那么这个用户启动的任何进程,不pipe是从cron还是不从,都将inheritance这个优先级。 没有修改脚本,没有env或configuration文件设置。

http://manpages.debian.org/cgi-bin/man.cgi?query=limits.conf