docker资源控制

control group简写cgroup,cgroup是linux内核提供的一种限制使用物理资源的机制

物理资源包括:cpu、内存、blkio(磁盘设备io速率)

1.对cpu控制

使用--cpu-quota限制cpu的使用率,cpu百分比是以1000为单位的,比如:

docker run --cpu-quota 20000 容器名  #cpu的使用率限定为20%

还可以通过修改对应的cgroup配置文件来实现:

/sys/fs/cgroup/cpu/docker/容器名/cpu.cfs_quota_us

echo 20000 >/sys/fs/cgroup/cpu/docker/10c4e8a5ba76e0fae97cc680892c169ffcdb188db64962f958c0adefae418e1d/cpu.cfs_quota_us

2.多任务比例分享cpu

当有多个容器任务运行时,很难计算cpu的使用率。为了合理使用cpu资源,通过--cpu-share设置按比例共享cpu资源,这种方法还可以实现cpu使用率的动态调整

限制a b c三个容器使用cpu,占用cpu资源的比例时1:1:2,如下:

数字代表权重

docker run --cpu-shares 1024 a
docker run --cpu-shares 1024 b
docker run --cpu-shares 2048 c

3.限制cpu内核使用

  • 使用--cpuset-cpus选项来使某些程序独享cpu内核,提高处理速度

  • 对应的cgroups配置文件是/sys/fs/cgroup/cpuset/docker/caef736466bc2f069069bd38acdd9bc6328fc02e686294f07977ce299e48271a/cpuset.cpus

ca...271a为相应的容器编号

  • 如果服务器有16个核心,cpu编号为0-15,使用容器绑定1-4个内核可以

    docker run --cpuset-cpus 0-3 容器名
    docker run --cpuset-cpus 0,1,2,3 容器名
    

    则容器内的进程只会在编号1,2,3,4的cpu上运行

  • 尽量使用绑定内核的方式分配cpu资源给容器进程使用,搭配–cpu-shares选项动态调整cpu使用资源的比例

4.对内存使用的限制

使用docker run -m来限制,相应的cgroup配置文件是

[root@centos7-docker ~]# cat /sys/fs/cgroup/memory/memory.limit_in_bytes
9223372036854771712

注意:

  • 一旦容器cgroup使用的内存超出了限制,Linux内核会回收这些内存
  • 如果回收不了,没法控制内存使用在限制的范围内,进程就会被kill
docker run -m 512m

5.对blkio限制

  • 如果在一台服务器上进行容器的混合部署,那么会出现同时有几个程序写磁盘数据的情况,这时通过--device-write-iops限制写入的iops,相应的还有--device-read-bps选项可以限制读取的iops。

  • 这种方法只能针对blkio限制的是设备(device),而不是分区

  • 相应cgroup配置文件

    /sys/fs/cgroup/blkio/docker/bf669a47ae96e78ca5b629c4dfc33534bfe832107a3f824471866a7fc8ae4769/blkio.throttle.write_iops_device
    
  • 限制容器的/dev/sda1的写入ipos为1MB

    docker run --device-write-bps /dev/sda1:1mb 容器名
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河 静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值