如何设置 cronjob 以使用更少的 CPU

如何设置 cronjob 以使用更少的 CPU

我正在管理一个托管多个 ruby​​ on rails 网站的服务器。我需要为每个网站执行以下任务的 cron 作业:

  • 发送电子邮件(通知)
  • 创建缩略图

不幸的是,每次执行 cron 时,它都会占用 100% 的 CPU 使用率,从而降低所有网站的速度。

我尝试在 crontab -e 中使用 nice 命令:

cd /home/www/manager && nice -n 19 /usr/local/bin/rake website_cron RAILS_ENV=production

但过了一会儿,我得到的机架进程和乘客进程与耙子具有相同的良好水平,所以它根本没有帮助......

以下是使用率较低的 htop 输出 http://img688.imageshack.us/img688/3637/capturedu20120807143520.png

这是 cron 作业执行时的 htop http://img507.imageshack.us/img507/1736/capturedu20120807144808.png

谢谢

- - 编辑 - -

我的代码中有一个错误,正在重建所有网站进程,该nice命令正在运行

答案1

该进程已被nice降低其优先级并htop反映这一点。如果没有争用,它仍然会很乐意使用 99% 的 CPU。你能确认瓶颈是在 CPU 中,而不是 I/O 中吗?也许你需要提高网站进程的优先级来更高比默认的?

另外,你的主机有多少个核心?你的总体平均负载为 1.6,低于双核系统的容量。如果是单核系统,您可能应该考虑硬件升级。

相关内容