docker的资源限制

前面提到过   cgroup对容器container进行资源限制,namespace对container进行隔离。

首先先来熟悉一下什么是资源控制

INSTALL测压工具
    yum -y install epel-release
    yum -y install stress

pull一个centos和一个测压镜像
    docker pull centos:7.3.1611
    docker pull progrium/stress

 

    前提说明,docker的container默认是不进行限制的,但是生产环境中,我们需要跑很多的container,所以必须做资源限制

1、限制容器对memory的使用

    docker  run  -it  -m  200M  --memory-swap=300M  progrium/stress  --vm  1  --vm-bytes  290M
 解析:限制条件(-m:200M内存    --memory--swap=300M:交换分区300-200=100M)   测压条件(--vm 1:分配一个线程        --vm-bytes 290M:一个线程290M)

提示:如果测压线程大于分配的大小,容器则终端,下面测压的结果

现在我们来运行一个container,并做内存限制,再查看

docker  run  -dit  --name  nginx  --hostname  nginx  -m  200M  --memory-swap=300M  centos:7.3.1611 

这里没启动一个container,在/sys/fs/cgroup/memory/docker里面就会生成一个container id,在container id目录里面可以看到我们做的内存限制,以bytes为单位,转换为M,大约300M。

2、限制container对cpu的使用

docker可以通过-c或者--cpu-shares设置container使用CPU的权重,默认1024也就是全部,但是我们设置CPU权重不是绝对的,docker会根据container的数量来分配CPU总数的比例。可能说的不太明白,下面我们实操来理解一下。为了更直观的看到我们结果,我把虚拟机改为一个CPU

docker  run  -it  -c  1024  progrium/stress  --cpu  1         执行过后再打开一个界面使用top查看

top查看我们的stress测压已经占用CPU的全部

下面我们再跑一个container,然后再查看

docker  run  -it  -c  512  progrium/stress  --cpu  1

可以看到又多了stress,CPU的占用率是第一个的一半,因为我们设置CPU权重一个是1024,一个是512。

最后我们在配置文件里面看一眼  cd  /etc/fs/cgroup/cpu/docker/

docker  run  -dit  -c  512  centos:7.3.1611

3、限制container的block  IO

默认情况下所有container都可以平等的读写磁盘,可以通过 --blkio-weight来改变container的读写优先级,这里提一下,它和--cpu-shares类似,设置的是相对的权重值,不是绝对的。注意:目前Block io之对direct io(不使用缓存)有效

下面实操

--device-read-bps  限制读设备的bps

--device-weite-bps  限制写设备的bps

--device-read-iops   限制读设备的iops

--device-weite-ops  限制写设备的iops

docker  run  -it  --name  testio --hostname  testio  --blkio-weight  600  centos:7.3.1611

再开个命令界面

docker  run  -it  --name  testio2  --hostname  testio2  --blkio-weight  300  centos:7.3.1611

分别用dd命令测试io的速度,可以明显看出来,第一个比第二个快了两倍。

我们再来跑一个container,限制io为30M

docker  run  -it  --device-write-bps  /dev/sda:30MB  centos:7.3.1611

在使用dd命令测试,可以看到io只有30Mb/s

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

weixin_46715997

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

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

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

打赏作者

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

抵扣说明:

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

余额充值