Centos7下使用cgroups限制进程资源
时间:2015-01-16 00:32 来源:csdn.net 作者:the-way-to-cloud
cgroups简介
控制组(cgroups)是一个linux内核特性,它允许你指定内核应该如何给一个进程组分配特定的资源。你可以用cgroups指定在某一个组中的进程使用多少cpu时间、系统内存、网络带宽、或者这些资源的组合。
(选自马哥教育的微信公众平台)
# 下载一个可以模拟cpu高负载的工具,mathomatic是质数生成器,会加大处理器的负荷
wget http:
//mathomatic
.orgserve.de
/mathomatic-16
.0.5.
tar
.bz2
tar
xf mathomatic-16.0.5.
tar
.bz2
cd
mathomatic-16.0.5
/primes/
make
&&
make
install
# 编译安装
# centos7系统需要安装libcgroup-tools包,才有cgroup配置命令
yum
install
-y libcgroup-tools.x86_64
# 创建两个不同cpu资源分配的组
cgcreate -g cpu:
/large
# 具体命令使用cgcreate -h
cgcreate -g cpu:
/small
# cpu.shares是cpu控制的一个属性,更多的属性
# 可以到/sys/fs/cgroup/cpu目录下查看,默认值是1024,值越大,能获得更多的cpu时间
cgset -r cpu.shares=512 small
# cgexec启动一个cgroup任务
matho-primes 0 999999999 >
/dev/null
&
# 生成一个从0到999999999的质数列表
cgexec -g cpu:small
/usr/local/bin/matho-primes
0 999999999 >
/dev/null
&
# 后台运行
# 使用top命令查看发现cpu被100%占用,因为是一个单独的进程,它使用尽可能多的cpu
# cgroups限制仅在两个或多个以上进程竞争cpu资源时起作用
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6726 root 20 0 9208 2540 488 R 99.9 0.0 0:34.47 matho-primes
cgexec -g cpu:large
/usr/local/bin/matho-primes
0 9999999999 >
/dev/null
cgexec -g cpu:small
/usr/local/bin/matho-primes
0 9999999999 >
/dev/null
cgexec -g cpu:small
/usr/local/bin/matho-primes
0 9999999999 >
/dev/null
# 在small组中起两个matho-primes进程,然后top观察cpu时间
# small组两个matho-primes进程差不多共享cpu,large组的进程得到更多的cpu时间
(责任编辑:IT)
cgroups简介 控制组(cgroups)是一个linux内核特性,它允许你指定内核应该如何给一个进程组分配特定的资源。你可以用cgroups指定在某一个组中的进程使用多少cpu时间、系统内存、网络带宽、或者这些资源的组合。 (选自马哥教育的微信公众平台)
|