代码如下:
# echo 0 》/sys/fs/cgroup/cpuset/foo/cpuset.cpus
# echo 0 》/sys/fs/cgroup/cpuset/foo/cpuset.mems
这样, /foo 中的进程只能使用 cpu0 和内存节点0 。用
代码如下:
# cat /proc/《pid》/status|grep ‘_allowed_list’
可以验证效果 。
cgroups 除了用来限制资源使用外,还有资源统计的功能 。做云计算的计费就可以用到它 。有一个 cpuacct 子系统专门用来做 cpu 资源统计 。cpuacct.stat 统计了该控制组中进程用户态和内核态的 cpu 使用量,单位是 USER_HZ,也就是 jiffies、cpu 滴答数 。每秒的滴答数可以用 getconf CLK_TCK 来获取,通常是 100 。将看到的值除以这个值就可以换算成秒 。
cpuacct.usage 和 cpuacct.usage_percpu 是该控制组中进程消耗的 cpu 时间,单位是纳秒 。后者是分 cpu 统计的 。
P.S. 2014-4-22
发现在 SLES 11 sp2、sp3 ,对应内核版本 3.0.13、 3.0.76 中,对 cpu 子系统,将 pid 写入 cgroup.procs 不会实际生效,要写入 tasks 才行 。在其他环境中,更高版本或更低版本内核上均未发现
上面就是Linux中使用cgroups控制cpu资源的方法介绍了,如果你运行的程序占用过多资源,可以使用cgroups控制cpu资源,赶紧试试看吧 。
推荐阅读
- Linux中cgroups的基础知识
- vivo手机如何卡付费主题
- 甲状腺功能减退,该如何补充碘? 甲状腺机能减退
- 如何取消电脑自动关机 xp自动关机
- 微信过期文件怎么恢复下载
- 如何祛除狗狗的口臭问题
- 古人识字方法技巧 古代没有拼音如何识字
- 古代考试怎么作弊的,科举作弊如何处罚?
- 消费者如何选择购买境外医疗保险?
- 有社保 如何投保住院津贴型医疗险?
