2

这是这种情况:

我有一个(php/mysql)Web 应用程序,它可以进行一些 pdf 处理和缩略图创建。这是通过在服务器上使用一些第 3 方命令行软件来完成的。这两种处理都消耗大量资源,以至于阻塞服务器。我想限制这些应用程序可以使用的资源量,以使服务器能够在没有太多延迟的情况下继续为用户提供服务,因为现在当处理一些繁重的 pdf 时,我的用户没有得到任何响应。

是否可以限制应用程序可以使用的 RAM 和 CPU 量(所有进程组合)?还是有其他方法来处理这些情况?这通常是怎么做的?

4

1 回答 1

3

用于ulimit设置资源限制。“硬”限制是最大的、操作系统强制的资源限制,一旦设置就无法增加。“软”限制是您的进程可以随意更改但不能超过硬限制的建议最大值。

例如,要防止script.sh使用超过 256MB 的虚拟内存:

ulimit -H -v $((2*1024*1024))
./script.sh

将此构建到您的 PHP 脚本中,该脚本在命令行上执行该过程。

于 2012-08-29T11:37:59.753 回答