Linux
CentOS 5(2.6.18核心)限制程序資源消耗
我想限制同一伺服器上程序的資源(CPU、記憶體和網路頻寬)消耗。如果我可以將程序從一台伺服器遷移到另一台伺服器,那就太好了。
我想我正在尋找一些輕量級的虛擬化。我發現 LXC 是一個不錯的選擇。但是我們的 2.6.18 核心不支持 LXC。它是一個共享集群,所以,我不能升級核心。而且我認為“setrlimit”系統呼叫只會在達到預算時向程序發送信號,而不是像虛擬機那樣限制資源消耗(如果我錯了,請糾正我)。對這個任務有什麼建議嗎?
謝謝!
其中一些資源可以通過 pam_limits 模組進行限制。可以在以下位置找到此主要文件:
man limits.conf
在所有 Red Hat 類型的系統上,配置該文件的文件是 /etc/security/limits.conf。
很可能首先要了解的是硬限制和軟限制之間的關係。此外,一些要開始研究的指令是:
- 中央處理器
- 記憶體鎖
- 核
手冊頁底部有範例。
就網路頻寬而言,這更難做到(但並非不可能)。基本思想是通過 iptables 限制基於 UID 的訪問,並通過 tc(流量控制)執行流量。
man tc