天天看点

use cgroup limit cpu core usage

本文将测试一下使用cgroup的cpuset组来控制进程对cpu的使用 : 

测试环境centos 7.x x64

创建一个继承组

继承组自动创建对应的限制文件

继承组的tasks为空.

查看cpu资源

设置cpuset.mems

否则在将pid添加到这个组的时候, 会报错如下 : 

设置cpuset.cpus

将数据库的主进程加入到这个组

现在数据库被限制了只能使用7号cpu 核.

使用top的p选项查看 : 

在top界面按 f 

选择

查看到所有postgres进程新fork的backend process都用的7号cpu

改为0-7可以使用8个cpu核

再次测试 : 

当然性能也有提升

[参考]1. https://www.kernel.org/doc/documentation/cgroups/cgroups.txt

2. http://blog.163.com/digoal@126/blog/static/163877040201411341949278/

3. http://blog.163.com/digoal@126/blog/static/1638770402014102653934376/

4. http://serverfault.com/questions/579555/cgroup-no-space-left-on-device

5. http://www.cnblogs.com/wang_yb/p/3942208.html

6. http://www.bullopensource.org/cpuset/cpuset.html

继续阅读