docker容器对CPU和内存的运行时约束



如何在运行时更改docker容器的内存和cpu限制?我的意思是,当容器运行时,我想更改内存限制,例如

Thanks in advance

您不能在运行的容器内更改,您必须在您的主机上更改。

如何在主机上做到这一点取决于您的主机操作系统,在Linux上,我建议看一下cgroups,这是docker内部限制容器的方式。

ubuntu上,您可以使用 cgm(在ubuntu 15.04上尝试过)。

  1. 为cpu创建一个新的cgroup,将进程(例如28433)移动到其中,并设置一个值
> # cgm create cpu dudecpu 
> # cgm movepid cpu dudecpu 28433 
> # cgm setvalue cpu dudecpu cpu.shares 512
  • 为内存创建一个新的c组,将进程(例如28433)移动到它,并设置一个值
  • > cgm create memory dudemem
    > cgm movepid memory dudemem 28433
    > cgm setvalue memory dudemem memory.limit_in_bytes 1000000000
    
  • 检查你的新cgroups在哪里,并查看这些目录,你会在那里找到cgroup的所有属性。
  • > find /sys/fs/cgroup/ -name "dude*"
    > /sys/fs/cgroup/memory/user.slice/user-1000.slice/session-c3.scope/dudemem
    > /sys/fs/cgroup/cpu,cpuacct/user.slice/user-1000.slice/session-c3.scope/dudecpu
    

    最新更新