Line 14: | Line 14: | ||
== Current status == | == Current status == | ||
* Targeted release: | * Targeted release: | ||
* Last updated: 2009- | * Last updated: 2009-02-10 | ||
* Percentage of completion: | * Percentage of completion: 20% | ||
== Detailed Description == | == Detailed Description == |
Revision as of 08:26, 10 February 2009
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 or display control groups data (using libcgroups package).
Owner
- Nils Philippsen
- email: nphilipp@redhat.com
- Ivana Varekova
- email: varekova@redhat.com
- Jan Šafránek
- email: jsafrane@redhat.com
Current status
- Targeted release:
- Last updated: 2009-02-10
- Percentage of completion: 20%
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 display control groups data. 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.
First steps would include bugfixing and creation of missing tools, then creation of Python bindings to use from any GUI tools.
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
- Required extended testing and fixing of libcgroups package and in time when libcgroups will be stable enough try to add start to write another parts - based on existing ones.
How To Test
For now it is necessary to have a kernel with cgroups support (Documentation/cgroups/cgroups.txt
) and the libcgroup
package.
1. yum install libcgroup
- creating cgroups -
- one configure
/etc/cgconfig.conf
file - two start/stop cgconfig service and test whether the created groups are as expected
- moving task to groups -
- one with configured cgroups - using the previsou steps configure
/etc/cgrules.conf
file - two start/stop new proces using
cgexec
- three test
cgrulesengd
daemon (should automatically moved processes via cgrules.conf configure file) - four configure pam module and test that works if you login
User Experience
Currently, the libcgroups
package has several bugs, these will have to be fixed at first. When that is out of the way, configuration (or even monitoring) tools would reduce the barrier of entry to using control groups on Linux significantly.
Dependencies
- Depends on kernel > 2.6.24 and
libcgroups
(current version is 0.32.2) which both are in Fedora since F-9.
Contingency Plan
Currently, nothing depends on libcgroup
or the tools which would use it. If things go really wrong, we can always go back to the last working version of libcgroup
.
Documentation
- kernel documentation:
Documentation/cgroups/
]libcg
:- upstream site
- LWN.net article: libcg: design and plans
Release Notes
libcgroups is a tool which helps to manipulate, control administrate and monitor control groups and the associated controllers. Using this tool it is possible to aggregate/partition set of tasks and their future children into hierarchical groups with specialized access to resources.