Docker容器对CPU和内存的运行时限制
如何在运行时更改Docker容器的内存和CPU限制? 我的意思是,虽然容器正在运行,我想改变内存的限制,例如
提前致谢
你不能在正在运行的容器内改变它,你必须在你的主机上这样做。
你如何做主机取决于你的主机操作系统,在Linux上我build议看看cgroups ,多数民众赞成在Docker内部限制集装箱。
在Ubuntu上你可以使用cgrouppipe理器cgm (在Ubuntu 15.04上试用过)。
- 为cpu创build一个新的cgroup,移动该进程(例如28433)并设置一个值
> # cgm create cpu dudecpu > # cgm movepid cpu dudecpu 28433 > # cgm setvalue cpu dudecpu cpu.shares 512
- 为内存创build一个新的cgroup将进程(例如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