The software described in this documentation is either in Extended Support or Sustaining Support. See https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdf for more information.
Oracle recommends that you upgrade the software described by this documentation as soon as possible.
The cgroups
configuration file,
/etc/cgconfig.conf
, contains a mount definition
and one or more group definitions.
mount Definitions
A mount
definition specifies the virtual file
systems that you use to mount resource subsystems before you
attach them to cgroups
. The configuration file
can contain only one mount
definition.
The mount
entry takes the following form:
mount {subsystem1
= /cgroup/resource_path1
; [subsystem2
= /cgroup/resource_path2
;] . . . }
For example, the following mount
definition
combines the cpu
, cpuset
,
and memory
subsystems under the
/cgroup/cpumem
subsystem hierarchy, and also
creates entries for the blkio
and
devices
subsystems under
/cgroup/iolimit
and
/cgroup/devlist
. You cannot include a subsystem
in more than one subsystem hierarchy.
mount { cpu = /cgroup/cpumem; cpuset = /cgroup/cpumem; memory = /cgroup/cpumem; blkio = /cgroup/iolimit; devices = /cgroup/devlist; }
group Definitions
A group
definition specifies a
cgroup
, its access permissions, the resource
subsystems that it uses, and the parameter values for those
subsystems. The configuration file can contain more than one
group
definition.
A group
entry takes the following form:
groupcgroup_name
{ [perm { task { uid =task_user
; gid =task_group
; } admin { uid =admin_user
; gid =admin_group
; } }]subsystem
{subsystem.parameter1
=value1
; [subsystem.parameter2
=value2
;] . . . } . . . }
The cgroup_name
argument defines the
name of the cgroup. The task
section of the
optional perm
(permissions) section defines the
user and group combination that can add tasks to the cgroup. The
admin
section defines the user and group
combination that can modify subsystem parameters and create
subgroups. Whatever settings exist under perm
,
the root
user always has permission to make any
admin
or task
change.
One or more subsystem sections define the parameter settings for
the cgroup. You can associate only one virtual subsystem hierarchy
from /cgroup
with a cgroup. If a several
subsystems are grouped in the same hierarchy, you must include
definitions for all the subsystems. For example, if the
/cgroup/cpumem
hierarchy includes the
cpu
, cpuset
, and
memory
subsystems, you must include definitions
for all of these subsystems.
For example, the following group
definition
defines the cgroup dbgrp
for database
processes, allows the oracle
user to add tasks,
and sets various parameters for CPU and memory usage:
group dbgrp { perm { task { uid = oracle; gid = dba; } admin { uid = root; gid = root; } } cpu { # Reallocate CPU resources once per second cpu.rt_period_us="1000000"; # Allocate 50% of runtime to tasks in the cgroup cpu.rt_runtime_us="500000"; } cpuset { cpuset.mems="0"; # Allocate CPU cores 4 through 7 to tasks in the cgroup cpuset.cpus="4-7"; } memory { # Allocate at most 4 GB of memory to tasks memory.limit_in_bytes="4G"; # Allocate at most 8 GB of memory plus swap to tasks memory.memsw.limit_in_bytes="8G"; # Apply a soft limit of 2 GB to tasks memory.soft_limit_in_bytes="2G"; } }
You can include comments in the file by preceding them with a
#
character, which must be at the start of a
line.