Linux

如何限制應用程序可以在 linux Web 伺服器上使用的資源

  • September 13, 2012

這是這種情況:

我有一個 PHP/MySQL Web 應用程序,可以進行一些 PDF 處理和縮略圖創建。這是通過在伺服器上使用一些第 3 方命令行軟體來完成的。這兩種處理都消耗大量資源,以至於阻塞伺服器。我想限制這些應用程序可以使用的資源量,以使伺服器能夠在沒有太多延遲的情況下繼續為使用者提供服務,因為現在當處理一些繁重的 PDF 時,我的使用者沒有得到任何響應。

是否可以限制應用程序可以使用的 RAM 和 CPU 量(所有程序組合)?還是有其他方法來處理這些情況?這通常是怎麼做的?

執行它nice -n 20 ionice -c 3

這將使它使用剩餘的 CPU 週期並訪問其他程序未使用的 I/O。

對於 RAM,您所能做的就是在程序使用量超過您希望它使用的量時終止程序(使用 ulimit)。

您可以從 php 執行它,但 ionice 需要以 root 身份執行,因此要麼使用 sudo 執行 ionice,要麼在使用 ionice 執行的伺服器程序下執行該 php 腳本。

如果您使用 fastcgi,您可以執行兩個不同的引擎,並將高資源工作分配給優先級較低的引擎。

如果你在沒有 fastcgi 的情況下使用 Apache,則必須使用 sudo 來執行命令,確保 sudo 權限盡可能具體,否則你將面臨安全漏洞的風險。

引用自:https://unix.stackexchange.com/questions/46592