docker的资源控制

1Docker资源控制

1:docker底层有Cgroup机制;

2:Cgroup是control

3:group的简写,是Linux内核提供的一种限制使用物理资源的机制,这些资源只要包括CPU,内存,bikiio,下面将操作docker是如何使用Cgroup机制进行资源管理的。

4:对CPU的控制

  《1》:限制CPU的使用率

 在centos7中可以通过修改对应的Cgroup配置文件cpu.cfs_quota_us的值来实现,直接执行echo命令将设定值导入到文件中就会立即生效

<1>:docker rm -f $(docker ps -aq) 删除所有容器

<2>:docker run -itd centos /bin/bash 创建

<3>:docker ps -a  查看

<4>:ls /sys/fs/cgroup/cpu.cpuacct/docker  查看ID号的位置

<5>:ls /sys/fs/cgroup/cpu,cpuacct/docker/8f5d448e00ba8ec697ba7b0fd84fb1ae511c50416f56f8eedd34b85c6b610b4b/cpu.cfs_quota_us  查看

<6>:echo "20000" > /sys/fs/cgroup/cpu,cpuacct/docker/8f5d448e00ba8ec697ba7b0fd84fb1ae511c50416f56f8eedd34b85c6b610b4b/cpu.cfs_quota_us  输出

5:多任务按比例分享CPU

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

  例如:运行三个新的容器A,B,C,占用cpu资源为1:1:2

      docker run --name A -itd --cpu-shares 1024 centos /bin/bash

     docker run --name B -itd --cpu-shares 1024 centos /bin/bash

      docker run --name C -itd --cpu-shares 2048 centos /bin/bash

   如果又一个容器D需要更多的cpu资源,则可以将其 --cpu--shares的值设置为4096,那么ABCD的cpu资源比例为1:1:2:4  

6:限制cpu核心使用

      在Docker中可以使用 --cpuset-cpus 选项来是其某些程序独享cpu核心,以便提高其处理速度,对应的Cgroup文件为/sys/fs/cgroup/cpuset/docker 容器ID号/cpuset.cpus .选项后直接跟参数0,1,2..表示一个内核,第二个内核,与/proc/cpuinfo 中标点相同

如果该容器内得进程只会在0,1,2,3,centos  /bin/bash

那么该容器内得进程只会在0,1,2,3的cpu上运行

 尽量使用绑定内核的方式分配cpu资源给容器进程使用,然后在配合 --cpu-share 选项动态调整cpu的使用资源的比例

7:对内存使用的限制

 在Docker中可以通过docker run -m

    命令来限制容器内存使用量,相应的Cgroup配置文件为/sys/ts/cgroup/cpuset/system.slice/docker-容器编号.scope/zemory.linit _in byteso但是需要注意,一旦容器Cgroup使用的内存超过了限制的容量,linux内核将会尝试收回这些内存,如栗仍旧没发控制使用内存在限制范围之内,进程就会被杀死。

 例如,限制新建容器的内存上限为512NB

docker run -itd -aS12MB centos / bin/bash 

8:对blkio的限制

       如果在一台服务器上进行容器的混合部署,那么会存在同时几个程序写磁盘数据的情况,这时可以通过--davice-write-iops德项来飓制每秒写io次数来限制制定设备的写速度。和应的还有--device-read-bps选项可以限制读取的速度,但是这种方法只能限制设备,而不能限制分区,和应的cgroup写配置文件为/sys/fs/cgroup/blkio/docker-容器工D/bikio.throttle.write_bps_device.

  例如,限制新建容器的/devl sda的写入速度为1MB。

docker run -itd --device-write-iops /dev/sda:1M镜像名/bin/bash

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

BK_小小关

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

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

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

打赏作者

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

抵扣说明:

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

余额充值