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

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

我有一个运行一组 php 脚本的 bash 脚本。它运行时需要一个小时,并且 CPU 占用率达到 95-99%。这导致我们的 lamp 堆栈(主要是 apache 进程)出现问题,并且同一台服务器上的网站开始出现超时或 500 错误。

我怎样才能:

  • 以低优先级运行 bash 脚本和所有相关任务(也调用 PostgreSQL db 的 php 脚本),以便始终优先执行 Web 服务器的 apache、php 和 db 任务,或者
  • 将脚本和相关任务的 CPU 使用率限制为例如 25% CPU

我不确定哪一个是更好的解决方案。

答案1

除此之外nice,还可以考虑限制 CPU 时间,使用ulimit -t(假设您在 *nix 平台上)

答案2

通过 运行您的命令nice

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

 Available options:

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

答案3

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

假设你有四辆车,需要办几件事。用一辆车办事和用所有闲置的车办事哪个更合理?前者可以留下四辆车去做重要的事情。后者只留下三辆车。而且在大多数现实情况下,前者也会更快地完成低优先级的工作。

相关内容