2014-01-24 21 views
5

我正在嘗試關注cgroups的指南,例如this one作爲示例。我不確定清楚地理解cgroups應該如何工作。但我肯定有一件事:我找到的所有指南都記錄了/etc/cgconfig.conf/etc/cgrules.conf的用法。這些文件應該由兩個守護進程加載,我認爲應該命名爲cgredcgconfig試圖在debian wheezy中使用cgroups並且沒有守護進程

在Debian Squeeze下,看起來像那兩個通過安裝cgroup-bin自動安裝的守護進程。但是在Wheezy中,這些守護進程在包中不再存在:http://packages.debian.org/fr/wheezy/amd64/cgroup-bin/filelist

我只是想創建某種共享主機解決方案,我想限制我的用戶的RAM使用情況。我被告知cgroups並想嘗試它,但我不明白如何在Wheezy中使用該版本,並且找不到任何文檔來幫助我。

有人能告訴我該怎麼辦?那個軟件包壞了嗎?是否有一些全新的(並且沒有記錄)的方式來配置cgroups?

+1

的初始化腳本丟失。有一個在/ usr /共享/ DOC/cgroup中斌/ cgred爲cgrulesengined守護進程提供,但它被打破,因爲它是。另一個可能不是守護進程,而只是在啓動時運行的cgconfigparser來創建你的cgroup。當我有解決方案時,我可能會在這裏發佈給你。 – Hannes

回答

8

作爲使用cgroup-bin查看systemd的替代方案,它使用cgroups來分組/分離用戶進程,並且資源控制器的使用應該沒問題。

然而,在下面我會盡量回答cgroup-bin

你原來的問題由於目前沒有與這種多問題,我步:

的初始化腳本中缺少的軟件包。然而有/usr/share/doc/cgroup-bin/examples/cgred這部分工作(在系統啓動時爲我啓動cgrulesengd,但不會重新啓動守護進程)。在使用debian之前,刪除一些源代碼中不存在的init函數。但是,您也可以通過/etc/rc.local啓動它。

我有以下cgconfig.conf

mount { 
    cpu = /sys/fs/cgroup ; 
    cpuset = /sys/fs/cgroup ; 
    memory = /sys/fs/cgroup ; 
} 

group users { 
    memory { 
    memory.soft_limit_in_bytes = 512M; 
    memory.limit_in_bytes = 1G; 
    } 

# cpuset seems to be obligatory, adjust the parameters 
    cpuset { 
    cpuset.cpus = 0-7 ; 
    cpuset.mems = 0 ; 
    } 
} 

要加載cgconfig.conf執行cgconfigparser -l /etc/cgconfig.conf。您可以在啓動時在/etc/rc.local中執行此操作。

Debian在內核中默認禁用memory子系統,因此如果需要,您需要激活它:將內核命令行設置爲/etc/default/grub以加載內存子系統:GRUB_CMDLINE_LINUX_DEFAULT="quiet cgroup_enable=memory"。致電update-grub並重新啓動。

您現在應該在/sys/fs/cgroup的內部有一個users目錄的安裝cgroup文件系統。

嘗試cgexec -g memory,cpuset:users <command>並觀察錯誤日誌。