cgroup--cpu spuset 子系统功能测试
作者:网络转载 发布时间:[ 2013/10/16 13:50:43 ] 推荐标签:
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使用率:(因为 内核调度等方面的原因,需要等待很久才能得到如下结果)

sales@spasvo.com