Memory
--OOME
一旦发生 OOME, 任何进程都有可能被杀死, 包括 docker daemon
为此 docker 特地调整了 docker daemon 的 OOM 优先级, 以免它被内核 "正法"
但容器的优先级并未被调整!
限制容器可以使用的内存资源:
默认是没有限制!
-m/--memory -- 限制容器可用的内存空间
- ..............................................
- --memory-swap k|b|m|g
限制交换分区使用大小, 要先设置 - m 选项
用法规则:
-m 的值为正数 M 时,--memory-swap 也是正数 S 时
容器可用总空间大小为 S, 其中 ram 为 M,swap 为 (S-M)
若 S=M 则无可用 swap 资源
都设置有值时 --memory-swap 的值要大于 - m
当 - m 等于正数 M 时 --memory-swap 为 0 时, 相当于未设置 swap
当 - m 等于正数时 --memory-swap 为 unset 若主机启用了 swap
则容器的可用 swap 为 2*M
unset = 未设置
当 - m 为正数 M 时,--memory-swap 为 - 1 若主机启用了 swap
则容器可使用最大至主机上所有 swap 空间资源
注意:
在容器内使用 free 命令可以看到的 swap 空间并不具有其
所展现出的空间指标意义!
- ................................................
- --memory-swappiness
- [0--100]
0 = 能不用就不用交换分区
值越高就表示启用的优先级越高
--memory-reservation -- 设置预留内存空间
- --kernel-memory --
- --oom-kill-disable
- true/false
设置如果不想因为分配内存空间用尽而使得容器被杀死
就设置这一项的值为 true
.....................................................
CPU 设置:
容器可以使用宿主机上所有 CPU 资源!
CFS--- 算法
CPU 数量小于进程数
--CPU-shares [1024]
CPU 资源共享 --- 设置一个比例, 容器都需要时, 按比例分配
如果一个需要其它不需要, 就可以都分配给需要的那个容器
--cpus=<value> -- 限制一个容器最多能使用几核 CPU
支持使用小数如 0.5
- --CPU-period=<value>
- --CPU-quota=<value>
--cpuset-cpus -- 限制使用 CPU 范围
定义一个容器只能运行在那个 CPU 核心上工作!
CPU 核心数从 0 开始
--cpuset-cpus 0-2
stress -- 镜像
https://hub.docker.com
--fork [n] -- 启动几个进程
--vm [n] -- 启动多少个进程对内存做压测
--CPU [n] -- 使用几个 CPU
--io [n] -- 对 io 进行分配
--vm-bytes [n] -- 指定每个进程用多少内存
具体镜像应用:
docker run -it --name b1 --rm -m 256m 1ae56ccafe55 stress --vm 2
docker top [容器名称] -- 查看容器占用资源!
docker stats -- 显示容器资源占用!
对 CPU 做压测:
docker run -it --name b1 --rm -cpus 2 1ae56ccafe55 stress --CPU 4
定义使用的核心数为 2
也就是说做压测无论启用多少个进程最多只能占用百分之二百资源
不做限制会直接使用所有 CPU 资源!
当我启用两个容器并对比例做出要求时:
- docker run -it --name b1 --rm --CPU-shares 1024 1ae56ccafe55 stress --CPU 4
- docker run -it --name b1 --rm --CPU-shares 512 1ae56ccafe55 stress --CPU 4
会按照比例分配 CPU 资源!
..........................................................
要想容器不会因占用资源过高而被 kill:
方法 1:
--oom-kill-disable=true -- 直接禁用
方法 2:
--oom-score-adj [-1000-1000] 把值调整的越小越不容易被 kill
来源: http://www.bubuko.com/infodetail-2843644.html