Ubuntu 下的 Cronjob 运行缓慢

Ubuntu 下的 Cronjob 运行缓慢

我配置了一个 cronjob(运行一个 bash 脚本),用crontab -e它将一些数据从一个硬盘本地复制到另一个硬盘(rsync),然后对它们进行比较(diff)。

我手动执行了脚本,看看一切是否按计划进行。它复制了 7 GB,大约花了 30 分钟。当它作为 cronjob 启动时,需要 4 小时,再次复制 7 GB。

自手动调用和 cronjob 调用脚本以来,数据和脚本尚未发生改变。

  • 可能是 cronjobs 作为优先级很低的守护进程运行?
  • 如果是的话,我该如何改变呢?

答案1

如果我没记错的话,cron 运行的级别是 2。

使用nice。例如:

nice -20 {script} >>/dev/null 2>&1

(如果 -20 占用的系统空间太大,则可以使用稍高一点的级别(-10、-15)。{script} 内的所有“子级”都将以与nice“父级”相同的级别运行。


  • nice 的手册页
  • 还有伊奥尼采用于IO调度。
  • “友善度”的范围从 -20(最有利的调度)到 19(最不利的调度)。
  • 一个具有 nice 值为 +15 的进程将比一个具有 nice 值为 +0 的进程多获得 25% 的 CPU 时间(即 (20 − 15)/(20 − 0) = 0.25)。

相关内容