1.测试目的
  目前新的稳定版Linux内核(3.2.6)中cgroup的功能和特性都已经比较丰富和完善,用户空间的工具也有了。Cgroup中对于CPU资源的控制主要集中cpu和cpuset这两个子系统,其中cpu子系统主要用来控制进程调度,设置进程占用CPU资源的比重;cpuset则主要是控制进程能够使用哪些CPU和内存节点(NUMA)。
  测试的目的主要是对  cgroup 中 cpu 和cpuset这两个子系统的功能进行验证,探索cpu.shares、cpu.rt_period_us 、cpu.rt_runtime_us 等参数功能和使用方法。
  2.测试平台:
ubuntu 11.10
3.0.0-26-generic-pae
4  Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz
  3.测试过程
  挂载:
mount -t tmpfs cgroup_root /sys/fs/cgroup
mkdir /sys/fs/cgroup/cpuset
mount -t cgroup -ocpuset cpuset /sys/fs/cgroup/cpuset
  创建目录:
  root@ubuntu:/sys/fs/cgroup/cpuset# mkdir tailor tinker
  挂载 :
  root@ubuntu:~# mount -t cgroup -o cpu none /sys/fs/cgroup/cpu
  创建目录:
  root@ubuntu:/sys/fs/cgroup/cpu# mkdir tailor tinker
  启动两个测试程序:
  sina@ubuntu:~$ ./a.out &
  [2] 3944
  sina@ubuntu:~$ ./a.out &
  [2] 3945
  将测试进程放到 cpu cpuset分支里面:
  sina@ubuntu:/sys/fs/cgroup/cpuset/tinker$ echo 3944 > tasks
  sina@ubuntu:/sys/fs/cgroup/cpuset/tailor$ echo 3945 > tasks
  sina@ubuntu:/sys/fs/cgroup/cpu/tailor$ echo 3945 > tasks
  sina@ubuntu:/sys/fs/cgroup/cpu/tinker$ echo 3944 > tasks
  设置 cpu分支里面的 cpu.shares
  [html] view plaincopy
  sina@ubuntu:/sys/fs/cgroup/cpu/tailor$ echo 1024 > cpu.shares
  sina@ubuntu:/sys/fs/cgroup/cpu/tinker$ echo 512 > cpu.shares
  设置两个组的cpu affinity:
  sina@ubuntu:/sys/fs/cgroup/cpuset/tailor$ echo 3 > cpuset.cpus
  sina@ubuntu:/sys/fs/cgroup/cpuset/tinker$ echo 3 > cpuset.cpus
  一段时间之后观察cpu使用率:(因为 内核调度等方面的原因,需要等待很久才能得到如下结果)