我正在尋找一種一致的方法來在資源有限的 Ubuntu 14.04 桌面系統上配置 cgroup。
我想做的事:
- 建立幾個分配給特定任務的有限記憶體和 CPU 組
- 重新啟動時會自動啟用這些群組
- 為每個群組分配某些命令/程序
我了解 cgroup 配置,以及如何使用 cgexec 啟動特定群組的進程。問題是下一步。
我已經建立了一個工作 /etc/cgconfig.conf 文件,我可以使用 cgconfigparser 成功解析和啟動該文件以取得配置的 cgroup。然而,據我所知。
- 我找不到在系統啟動時正確讀取和解析 /etc/cgconfig.conf 的服務。目前的 cgroup 軟體包似乎不包含這樣的服務。
- 據我了解 /etc/cgconfig.conf 附帶一個 /etc/cgrules.conf 文件,該文件描述了默認情況下如何在某個組中啟動進程。我無法辨識解析它的服務或機制。如果沒有此功能,我需要使用 cgexec 啟動所有進程以將它們放入 cgroup 中。
我嘗試使用 cgmanager,但該服務似乎也沒有從 /etc/cgconfig.conf 配置。一般來說,我發現很難找到如何在 Ubuntu 桌面系統上設定和使用 cgroup 的資訊。
那麼,有人能夠指出我正確的方向嗎?我需要安裝什麼服務,它遵循哪些設定檔?
要明確說明的是:我不是尋找容器。它是在單一專用系統上建置資源處理。
非常感謝 :)
答案1
# vi /etc/cgrules.conf
tomcat7:wkhtmltopdf cpu,cpuset group1
# cgrulesengd -d -v -f /var/log/cgrulesengd.log &
# cat /var/log/cgrulesengd.log
CGroup Rules Engine Daemon log started
Current time: Thu Jan 15 16:04:20 2015
Opened log file: /var/log/cgrulesengd.log, log facility: 0, log level: 7
Proceeding with PID 28569
Rule: tomcat7:wkhtmltopdf
UID: 500
GID: N/A
DEST: group1
CONTROLLERS:
cpu
cpuset
Started the CGroup Rules Engine Daemon.