Commit | Line | Data |
---|---|---|
934352f2 BR |
1 | CPU Accounting Controller |
2 | ------------------------- | |
3 | ||
4 | The CPU accounting controller is used to group tasks using cgroups and | |
5 | account the CPU usage of these groups of tasks. | |
6 | ||
7 | The CPU accounting controller supports multi-hierarchy groups. An accounting | |
8 | group accumulates the CPU usage of all of its child groups and the tasks | |
9 | directly present in its group. | |
10 | ||
11 | Accounting groups can be created by first mounting the cgroup filesystem. | |
12 | ||
13 | # mkdir /cgroups | |
14 | # mount -t cgroup -ocpuacct none /cgroups | |
15 | ||
16 | With the above step, the initial or the parent accounting group | |
17 | becomes visible at /cgroups. At bootup, this group includes all the | |
18 | tasks in the system. /cgroups/tasks lists the tasks in this cgroup. | |
19 | /cgroups/cpuacct.usage gives the CPU time (in nanoseconds) obtained by | |
20 | this group which is essentially the CPU time obtained by all the tasks | |
21 | in the system. | |
22 | ||
23 | New accounting groups can be created under the parent group /cgroups. | |
24 | ||
25 | # cd /cgroups | |
26 | # mkdir g1 | |
27 | # echo $$ > g1 | |
28 | ||
29 | The above steps create a new group g1 and move the current shell | |
30 | process (bash) into it. CPU time consumed by this bash and its children | |
31 | can be obtained from g1/cpuacct.usage and the same is accumulated in | |
32 | /cgroups/cpuacct.usage also. |