在较低优先级或限制CPU下运行php脚本

我有一个运行一组PHP脚本的bash脚本。 运行时,需要花费一个小时,并将CPU固定在95-99%。 这导致我们的灯栈(主要是Apache进程)的问题,我们的网站在同一台服务器上开始吐出超时或500错误。

我怎么能:

  • 以低优先级运行bash脚本和所有相关任务(也称为PostgreSQL数据库的php脚本),因此web服务器的apache,php和db任务总是被优先化,或者
  • 限制脚本和相关任务的CPU使用率,例如25%的CPU

我不确定哪个是更好的解决scheme。

除了nice ,看着限制CPU时间,使用ulimit -t (假设你在* nix平台上)

通过nice运行你的命令。

很好的运行实用程序在改变调度优先级。 如果给出增量,则使用它; 否则假设增量为10。 超级用户可以使用负增量运行优先级高于正常的工具。 优先级可以在-20(最高)到20(最低)的范围内调整。

  Available options: -n increment A positive or negative decimal integer used to modify the system scheduling priority of utility. 

正如其他人所build议的, nice就是你想要的。 限制到25%的CPU是头重脚轻的。 这将不必要地延长系统性能降低的时间。

假设你有四辆车,需要做一些差事。 哪一个更有意义,用一辆车做差事,或者用所有未使用的汽车去做差事? 前者留下4辆重要任务。 后者只剩下3个。在大多数现实情况下,前者也会尽早完成低优先级的工作。