Bharata B Rao | 934352f | 2008-11-10 20:41:13 +0530 | [diff] [blame] | 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. |