docker update修改内存/cpu

docker update

Usage: docker update [OPTIONS] CONTAINER [CONTAINER…]

常用参数:

--blkio-weight uint16       #Block IO(相对权重),介于101000之间,或者为0禁用(默认为0--cpu-period int             #限制CPU CFS(完全公平调度程序)周期
--cpu-quota int          #限制CPU CFS(完全公平调度程序)配额
 --cpu-rt-period int        #以微秒为单位限制CPU的实时周期
--cpu-rt-runtime int        #以微秒为单位限制CPU实时运行时间
      
  -c, --cpu-shares int             #CPU shares (relative weight)
      --cpus decimal               #Number of CPUs
      --cpuset-cpus string         #允许执行的CPU(0-30,1--cpuset-mems string         #允许执行的MEMs(0-30,1--kernel-memory bytes        #Kernel memory limit
  -m, --memory bytes               #Memory limit
      --memory-reservation bytes  # 内存软限制
      --memory-swap bytes          #交换限制等于内存加交换:'-1'以启用无限制交换
      --restart string            #容器退出时要应用的重新启动策略

修改正在执行的容器:

docker update -m 30M --memory-swap 30M  897a6a09807a

要使所有正在运行的容器更新以使用核心1和1g内存:

docker update --cpuset-cpus "1" --memory "1g" $(docker ps | awk 'NR>1 {print $1}')

遇到的问题:

root@hty:/home/hty# docker update --memory "30m" --cpuset-cpus "0-3" 64f479468b7c
64f479468b7c
Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.

这是在ubuntu或其他基于Debian的系统上才会出现的问题,原因是系统默认未开启swap限制。(开启后会使系统内存占用多1%,性能下降约10%,即使没有运行docker)

开启方法:

  • 首先使用sudo -i获取系统sudo权限
  • 修改系统的/etc/default/grub file文件。使用vim在这个文件中添加一行:
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
  • 更新系统的GRUB:
  sudo update-grub

改动在系统下次重启后生效。

docker容器 cpu memory资源限制
[https://www.cnblogs.com/zhuochong/p/9728383.html]

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值