?Feature? Name
ControlGroups
Summary
Improve the existing tools where necessary and feasible and/or to create new ones e.g. to create or modify persistent cgroups configuration (using libcgroups package).
Owner
- Nils Philippsen
- Ivana Varekova
Current status
- Targeted release:
- Last updated: 2009-01-19
- Percentage of completion: 0%
Detailed Description
Since kernel 2.6.24, Linux has so called control groups as a means to partition available resources between running processes. Libcgroups makes that functionality available to programmers and contains two tools, cgexec
and cgclassify
, to start processes in a control group or move existing processes from one control group to another.
Our goals are to improve the existing tools where necessary and feasible and/or to create new ones e.g. to create or modify persistent cgroups configuration. At the beginning the focus will be on command line tools, but we'll keep in mind that in the long term we'll likely want to have graphical tools. These would offer similar functionality and we should try to make sure that any non-UI code written is usable from both kinds of frontends.
Benefit to Fedora
Libcgroups handles the new kernel features which are able to restrict the sources for tasks. This project should help the user to make the best of this feature.
Scope
currently in process
How To Test
For now it is necessary to have a kernel with cgroups support (Documentation/cgroups.txt
) and the libcgroups
package.
Start the cgconfig
service:
- Create the
/etc/cgconfig.conf
configuration file (the example is in the /samples section, the initscript from version 0.32.2 is able to create the mount point itself and mount the filesystem to it). - For each mount point create the relevant directory and mount it. The filesystem type is
cgroup
, so an fstab line would look like this:
cgroup <mount-point> cgroup defaults 0 0
or you can mount it manually with this command:
mount -t cgroup cgroup <mount-point>
(see scripts/doc/howto.txt
- this mentions that the script would mount it but this doesn't seem to work, probably a problem in the cgroup init script)
- Then you can start the service:
/sbin/service cgconfig start
Problems (in 0.32.2)
- Test example of
cgconfig.conf
fromscripts/doc/howto.txt
does not work. - Changing
/etc/cgconfig.conf
while cgconfig is running leads to a bunch of error messages if you try to restart it.
User Experience
For now libcgroups package has several bug - so they have to be fixed at first
Dependencies
Depends on kernel > 2.6.24 which is already in fedora and libcgroups which is (the last version 0.32.2) in fedora - the package is there from f-9.
Contingency Plan
At first there have to be tested libcgroups to finds bugs and create more stable package - then there could be created any
Documentation
- kernel documentation is: http://www.mjmwired.net/kernel/Documentation/cgroups.txt
libcg package -
- upstream sites: http://libcg.sourceforge.net/
- libcg: design and plans: http://lwn.net/Articles/271788/