我正在管理一个托管多个 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,低于双核系统的容量。如果是单核系统,您可能应该考虑硬件升级。