微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

通过下面物理内存和swap的参数来控制Docker内存的使用量。

原创 aide_941 28℃
# 容器可运用的内存包括两部分:物理内存和 swap。 Docker 经过下面两组参数来操控容器内存的运用量。
# -m 或 –memory:设置内存的运用限额,例如 100M, 2G。
# –memory-swap:设置 内存+swap 的运用限额。
# 当咱们执行如下指令:
docker run -m 200M –memory-swap=300M ubuntu
# 其含义是答应该容器最多运用 200M 的内存和 100M 的 swap。默认情况下,上面两组参数为 -1,即对容器内存和 swap 的运用没有约束。
# 下面咱们运用 progrium/stress 镜像来为容器分配内存。该镜像可用于对容器执行压力测验。执行如下指令:
docker run -it -m 200M –memory-swap=300M progrium/stress –vm 1 –vm-bytes 280M
# –vm 1:发动 1 个内存作业线程。
# –vm-bytes 280M:每个线程分配 280M 内存。
# 由于 280M 在可分配的规模(300M)内,所以作业线程能够正常作业,如果让作业线程分配的内存超越 300M,分配的内存超越限额,stress 线程报错,容器退出。
# 如果在发动容器时只指定 -m 而不指定 –memory-swap,那么 –memory-swap 默以为 -m 的两倍,比方:
docker run -it -m 200M ubuntu
# 容器最多运用 200M 物理内存和 200M swap。
# ———–
用户内存约束
选项  描绘
-m,–memory 内存约束,格局是数字加单位,单位可以为 b,k,m,g。最小为 4M
–memory-swap   内存+交流分区大小总约束。格局同上。有必要必-m设置的大
–memory-reservation    内存的软性约束。格局同上
–oom-kill-disable  是否阻挠 OOM killer 杀死容器,默认没设置
–oom-score-adj 容器被 OOM killer 杀死的优先级,规模是[-1000, 1000],默以为 0
–memory-swappiness 用于设置容器的虚拟内存操控行为。值为 0~100 之间的整数
–kernel-memory 核心内存约束。格局同上,最小为 4M
CPU 约束相关参数
docker run指令和 CPU 约束相关的所有选项如下:
选项  描绘
–cpuset-cpus=””    答应运用的 CPU 集,值可以为 0-3,0,1
-c,–cpu-shares=0   CPU 同享权值(相对权重)
cpu-period=0    约束 CPU CFS 的周期,规模从 100ms~1s,即[1000, 1000000]
–cpu-quota=0   约束 CPU CFS 配额,有必要不小于1ms,即 >= 1000
–cpuset-mems=””    答应在上执行的内存节点(MEMs),只对 NUMA 体系有效
# ———————-
# docker-compose:
mem_limit: 700m #最大内存运用不超越700m

转载请注明:SuperIT » 通过下面物理内存和swap的参数来控制Docker内存的使用量。

喜欢 (1)or分享 (0)