Docker资源限制
在默认的情况下,docker没有对容器进行硬件资源的限制,当容器负载过高时会尽肯能第占用宿主机资源。在这基础上,docker提供了针对容器的内存,CPU,IO资源的控制方式。(真正可以控制的只有内存和cpu)Docker内存控制OOME在linxu系统上,如果内核探测到当前宿主机已经没有可用内存使用,那么会抛出一个OOME(Out Of Memory Exception:内存异常 ),并且会开启killing去杀掉一些进程。一旦发生OOME,任何进程都有可能被杀死,包括docker daemon在内,为此,docker特地调整了docker daemon的OOM_Odj优先级,以免他被杀掉,但容器的优先级并未被调整。经过系统内部复制的计算后,每个系统进程都会有一个OOM_Score得分,OOM_Odj越高,得分越高,(在docker run的时候可以调整OOM_Odj)得分最高的优先被kill掉,当然,也可以指定一些特定的重要的容器禁止被OMM杀掉,在启动容器时使用 –oom-kill-disable=true指定。内存限制的部分参数-m : 指定容器内存
–memory-swap : 设置容器交换分区大小,设置交换分区必须要设置 -m:依赖前者,容器内与交换分区的关系比较特别,如下:–memory-swap–memory功能正数S正数M容器可用总空间为S,其中ram为M,swap为(S-M),若S=M,则无可用swap资源
O正数M相当于未设置swap (unset)
unset正数M若主机(Docker Host)启用了swap,则容器的可用swap为2*M
-l正数M若主机(Docker