Docker资源控制

一、概述

  • Cgroup是Control group的缩写,是linux内核提供的一种限制所使用物理资源的机制
  • 在Docker中,主要是利用linux内核提供的Cgroup机制来管理CPU、内存和blkio

二、对CPU的控制

2.1、限制CPU使用速率
  • 在docker中可以通过–cpu-quota选项来限制CPU的使用率,cpu周期 1s 为100000,例如:
docker run --cpu-quota 20000 容器名       ###CPU限制使用率为20%
  • 在Centos中还可以通过修改对应的Cgroup配置文件/sys/fs/cgroup/cpu/docker/容器编号/cpu.cfs_quota_us的值来实现
[root@localhost /]# echo 30000 > /sys/fs/cgroup/cpu/docker/ID号/cpu.cfs_quota_us
2.2、按比例分配CPU
  • 多个容器运行时,很难计算CPU的使用率。为了能让容器合理使用cpu,可以通过–cpu-share选项设置CPU按比例共享cpu资源。

例如:
运行三个容器A、B、C,占用cpu资源比例为1:1:2,可以如下设置

[root@localhost /]# docker run --cpu-share 1024 容器B
[root@localhost /]# docker run --cpu-share 2048 容器C
2.3、限制cpu内核使用
  • 在centos7中,按top再按1可以看见当前使用的cpu情况

在这里插入图片描述

  • 使用cpuset-cpus选项可以指定容器只能运行在那个cpu核心上,

例如:
指定容器使用0和1编号cpu

[root@localhost /]# docker run -itd --name 容器名--cpuset-cpus 0,1 centos:7 /bin/bash

三、对内存的控制

  • 在Docker中可以通过docker run -m 命令来限制容器内存使用量
  • 相应的Cgroup配置文件为 /sys/fs/cgroup/memory/memory.limit_in_bytes;

例如:

docker run -itd --name test3 -m 512m centos:7
docker run -itd --name c5 -m 1024m centos:7

验证:
docker stats   #另一个终端窗口查看所有容器的状态值 

四、对blkio的控制

4.1、限制数据量
--device-read-bps:限制读某个设备的bps(数据量)
格式:docker run -itd --name 名字 --device-read-bps 设备名:读取额度 centos:7: docker run -d --name test4 --device-read-bps /dev/sda:30M centos:7

--device-write-bps:限制写入某个设备的bps(数据量)
格式:docker run -itd --name 名字 --device-read-bps 设备名:写入额度 centos:7: docker run -d --device-write-bps /dev/sda:30M centos:7

4.2、限制次数
--device-read-iops:限制读某个设备的iops(次数)

--device-write-iops:限制写入某个设备的iops(次数)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值