情况就是这样:
我有一个(php / mysql)Web应用程序,可以进行一些pdf处理和缩略图创建。这是通过在服务器上使用某些第三方命令行软件来完成的。这两种处理都消耗了大量资源,使服务器窒息。我想限制这些应用程序可以使用的资源量,以使服务器能够在没有太多延迟的情况下继续为用户提供服务,因为现在当处理一些繁重的pdf时,我的用户不会得到任何响应。
是否可以限制应用程序可以使用的RAM和CPU数量(所有进程合并)?还是有另一种方法来处理这种情况?这通常是怎么做的?
答案 0 :(得分:3)
使用ulimit
设置资源限制。 “硬”限制是操作系统强制执行的最大限制,一旦设置就无法增加。 “软”限制是建议的最大值,您的流程可以随意更改,但不能超过硬限制。
例如,要防止script.sh
使用超过256MB的虚拟内存:
ulimit -H -v $((2*1024*1024))
./script.sh
将其构建到PHP脚本中,该脚本在命令行上执行该过程。