docker比一般多一点的初学者介绍四

这次单独介绍下docker体系里非常重要的cgroup,docker对资源的限制也是基于cgroup构建的,
简单尝试
新建一个shell脚本

1
2
3
4
#!/bin/bash
while true;do
echo "1"
done

直接执行的话就是单核100%的cpu

首先在cgroup下面建个目录

1
mkdir -p /sys/fs/cgroup/cpu/sxs_test/

查看目录下的文件

其中cpuacct开头的表示cpu相关的统计信息,
我们要配置cpu的额度,是在cpu.cfs_quota_us中

1
echo 2000 > /sys/fs/cgroup/cpu/sxs_test/cpu.cfs_quota_us  

这样表示可以使用2%的cpu,总的配额是在cpu.cfs_period_us中

然后将当前进程输入到cgroup.procs,

1
echo $$ > /sys/fs/cgroup/cpu/sxs_test/cgroup.procs

这样就会自动继承当前进程产生的新进程
再次执行就可以看到cpu被限制了