diff --git a/man7/cgroups.7 b/man7/cgroups.7 index 13d50fa19..1698593ed 100644 --- a/man7/cgroups.7 +++ b/man7/cgroups.7 @@ -228,6 +228,120 @@ in particular, .BR systemd (1) automatically creates such mount points. .\" +.SS Cgroups version 1 controllers +Each of the cgroups version 1 controllers is governed +by a kernel configuration option (listed below). +Additionally, the availability of the cgroups feature is governed by the +.BR CONFIG_CGROUPS +kernel configuration option. +.TP +.IR cpu " (since Linux 2.6.24; " \fBCONFIG_CGROUP_SCHED\fP ) +Cgroups can be guaranteed a minimum number of "CPU shares" +when a system is busy. +This does not limit a cgroup's CPU usage if the CPUs are not busy. + +Further information can be found in the kernel source file +.IR Documentation/scheduler/sched\-bwc.txt . +.TP +.IR cpuacct " (since Linux 2.6.24; " \fBCONFIG_CGROUP_CPUACCT\fP ) +This provides accounting for CPU usage by groups of processes. + +Further information can be found in the kernel source file +.IR Documentation/cgroup\-v1/cpuacct.txt . +.TP +.IR cpuset " (since Linux 2.6.24; " \fBCONFIG_CPUSETS\fP ) +This cgroup can be used to bind the processes in a cgroup to +a specified set of CPUs and NUMA nodes. + +Further information can be found in the kernel source file +.IR Documentation/cgroup\-v1/cpusets.txt . +.TP +.IR memory " (since Linux 2.6.25; " \fBCONFIG_MEMCG\fP ) +The memory controller supports reporting and limiting of process memory, kernel +memory, and swap used by cgroups. + +Further information can be found in the kernel source file +.IR Documentation/cgroup\-v1/memory.txt . +.TP +.IR devices " (since Linux 2.6.26; " \fBCONFIG_CGROUP_DEVICE\fP ) +This supports controlling which processes may create (mknod) devices as +well as open them for reading or writing. +The policies may be specified as whitelists and blacklists. +Hierarchy is enforced, so new rules must not +violate existing rules for the target or ancestor cgroups. + +Further information can be found in the kernel source file +.IR Documentation/cgroup-v1/devices.txt . +.TP +.IR freezer " (since Linux 2.6.28; " \fBCONFIG_CGROUP_FREEZER\fP ) +The +.IR freezer +cgroup can suspend and restore (resume) all processes in a cgroup. +Freezing a cgroup +.I /A +also causes its children, for example, processes in +.IR /A/B , +to be frozen. + +Further information can be found in the kernel source file +.IR Documentation/cgroup-v1/freezer-subsystem.txt . +.TP +.IR net_cls " (since Linux 2.6.29; " \fBCONFIG_CGROUP_NET_CLASSID\fP ) +This places a classid, specified for the cgroup, on network packets +created by a cgroup. +These classids can then be used in firewall rules, +as well as used to shape traffic using +.BR tc (8). +This applies only to packets +leaving the cgroup, not to traffic arriving at the cgroup. + +Further information can be found in the kernel source file +.IR Documentation/cgroup-v1/net_cls.txt . +.TP +.IR blkio " (since Linux 2.6.33; " \fBCONFIG_BLK_CGROUP\fP ) +The +.I blkio +cgroup controls and limits access to specified block devices by +applying IO control in the form of throttling and upper limits against leaf +nodes and intermediate nodes in the storage hierarchy. + +Two policies are available. +The first is a proportional-weight time-based division +of disk implemented with CFQ. +This is in effect for leaf nodes using CFQ. +The second is a throttling policy which specifies +upper I/O rate limits on a device. + +Further information can be found in the kernel source file +.IR Documentation/cgroup-v1/blkio-controller.txt . +.TP +.IR perf_event " (since Linux 2.6.39; " \fBCONFIG_CGROUP_PERF\fP ) +This controller allows +.I perf +monitoring of the set of processes grouped in a cgroup. + +Further information can be found in the kernel source file +.IR Documentation/perf-record.txt . +.TP +.IR net_prio " (since Linux 3.3; " \fBCONFIG_CGROUP_NET_PRIO\fP ) +This allows priorities to be specified, per network interface, for cgroups. + +Further information can be found in the kernel source file +.IR Documentation/cgroup-v1/net_prio.txt . +.TP +.IR hugetlb " (since Linux 3.5; " \fBCONFIG_CGROUP_HUGETLB\fP ) +This supports limiting the use of huge pages by cgroups. + +Further information can be found in the kernel source file +.IR Documentation/cgroup-v1/hugetlb.txt . +.TP +.IR pids " (since Linux 4.3; " \fBCONFIG_CGROUP_PIDS\fP ) +This controller permits limiting the number of process that may be created +in a cgroup (and its descendants). + +Further information can be found in the kernel source file +.IR Documentation/cgroup-v1/pids.txt . +.\" .SS Creating cgroups and moving processes A cgroup filesystem initially contains a single root cgroup, '/', which all processes belong to. @@ -363,120 +477,6 @@ For more changes, see the .I Documentation/cgroup-v2.txt file in the kernel source. .\" -.SS Cgroups version 1 controllers -Each of the cgroups version 1 controllers is governed -by a kernel configuration option (listed below). -Additionally, the availability of the cgroups feature is governed by the -.BR CONFIG_CGROUPS -kernel configuration option. -.TP -.IR cpu " (since Linux 2.6.24; " \fBCONFIG_CGROUP_SCHED\fP ) -Cgroups can be guaranteed a minimum number of "CPU shares" -when a system is busy. -This does not limit a cgroup's CPU usage if the CPUs are not busy. - -Further information can be found in the kernel source file -.IR Documentation/scheduler/sched\-bwc.txt . -.TP -.IR cpuacct " (since Linux 2.6.24; " \fBCONFIG_CGROUP_CPUACCT\fP ) -This provides accounting for CPU usage by groups of processes. - -Further information can be found in the kernel source file -.IR Documentation/cgroup\-v1/cpuacct.txt . -.TP -.IR cpuset " (since Linux 2.6.24; " \fBCONFIG_CPUSETS\fP ) -This cgroup can be used to bind the processes in a cgroup to -a specified set of CPUs and NUMA nodes. - -Further information can be found in the kernel source file -.IR Documentation/cgroup\-v1/cpusets.txt . -.TP -.IR memory " (since Linux 2.6.25; " \fBCONFIG_MEMCG\fP ) -The memory controller supports reporting and limiting of process memory, kernel -memory, and swap used by cgroups. - -Further information can be found in the kernel source file -.IR Documentation/cgroup\-v1/memory.txt . -.TP -.IR devices " (since Linux 2.6.26; " \fBCONFIG_CGROUP_DEVICE\fP ) -This supports controlling which processes may create (mknod) devices as -well as open them for reading or writing. -The policies may be specified as whitelists and blacklists. -Hierarchy is enforced, so new rules must not -violate existing rules for the target or ancestor cgroups. - -Further information can be found in the kernel source file -.IR Documentation/cgroup-v1/devices.txt . -.TP -.IR freezer " (since Linux 2.6.28; " \fBCONFIG_CGROUP_FREEZER\fP ) -The -.IR freezer -cgroup can suspend and restore (resume) all processes in a cgroup. -Freezing a cgroup -.I /A -also causes its children, for example, processes in -.IR /A/B , -to be frozen. - -Further information can be found in the kernel source file -.IR Documentation/cgroup-v1/freezer-subsystem.txt . -.TP -.IR net_cls " (since Linux 2.6.29; " \fBCONFIG_CGROUP_NET_CLASSID\fP ) -This places a classid, specified for the cgroup, on network packets -created by a cgroup. -These classids can then be used in firewall rules, -as well as used to shape traffic using -.BR tc (8). -This applies only to packets -leaving the cgroup, not to traffic arriving at the cgroup. - -Further information can be found in the kernel source file -.IR Documentation/cgroup-v1/net_cls.txt . -.TP -.IR blkio " (since Linux 2.6.33; " \fBCONFIG_BLK_CGROUP\fP ) -The -.I blkio -cgroup controls and limits access to specified block devices by -applying IO control in the form of throttling and upper limits against leaf -nodes and intermediate nodes in the storage hierarchy. - -Two policies are available. -The first is a proportional-weight time-based division -of disk implemented with CFQ. -This is in effect for leaf nodes using CFQ. -The second is a throttling policy which specifies -upper I/O rate limits on a device. - -Further information can be found in the kernel source file -.IR Documentation/cgroup-v1/blkio-controller.txt . -.TP -.IR perf_event " (since Linux 2.6.39; " \fBCONFIG_CGROUP_PERF\fP ) -This controller allows -.I perf -monitoring of the set of processes grouped in a cgroup. - -Further information can be found in the kernel source file -.IR Documentation/perf-record.txt . -.TP -.IR net_prio " (since Linux 3.3; " \fBCONFIG_CGROUP_NET_PRIO\fP ) -This allows priorities to be specified, per network interface, for cgroups. - -Further information can be found in the kernel source file -.IR Documentation/cgroup-v1/net_prio.txt . -.TP -.IR hugetlb " (since Linux 3.5; " \fBCONFIG_CGROUP_HUGETLB\fP ) -This supports limiting the use of huge pages by cgroups. - -Further information can be found in the kernel source file -.IR Documentation/cgroup-v1/hugetlb.txt . -.TP -.IR pids " (since Linux 4.3; " \fBCONFIG_CGROUP_PIDS\fP ) -This controller permits limiting the number of process that may be created -in a cgroup (and its descendants). - -Further information can be found in the kernel source file -.IR Documentation/cgroup-v1/pids.txt . -.\" .SS Release notification A special file in each cgroup hierarchy, .IR release_agent ,