| CPU Accounting Controller |
| ------------------------- |
| |
| The CPU accounting controller is used to group tasks using cgroups and |
| account the CPU usage of these groups of tasks. |
| |
| The CPU accounting controller supports multi-hierarchy groups. An accounting |
| group accumulates the CPU usage of all of its child groups and the tasks |
| directly present in its group. |
| |
| Accounting groups can be created by first mounting the cgroup filesystem. |
| |
| # mkdir /cgroups |
| # mount -t cgroup -ocpuacct none /cgroups |
| |
| With the above step, the initial or the parent accounting group |
| becomes visible at /cgroups. At bootup, this group includes all the |
| tasks in the system. /cgroups/tasks lists the tasks in this cgroup. |
| /cgroups/cpuacct.usage gives the CPU time (in nanoseconds) obtained by |
| this group which is essentially the CPU time obtained by all the tasks |
| in the system. |
| |
| New accounting groups can be created under the parent group /cgroups. |
| |
| # cd /cgroups |
| # mkdir g1 |
| # echo $$ > g1 |
| |
| The above steps create a new group g1 and move the current shell |
| process (bash) into it. CPU time consumed by this bash and its children |
| can be obtained from g1/cpuacct.usage and the same is accumulated in |
| /cgroups/cpuacct.usage also. |