Docker 容器资源管理,你真的学会了吗?( 五 )
2. 如果只指定了 --memory 则最终 --memory-swap 将会设置为 --memory 的两倍 。也就是说,在只传递 --memory 的情况下,容器只能使用与 --memory 相同大小的 Swap 。
这也解释了上面“直接扩大至 20m 的时候能成功,而扩大到 100m 的时候会出错”,在上述场景中只指定了 --memory 为 10m,所以 --memory-swap 就默认被设置成了 20m 。
3. 如果 --memory-swap 和 --memory 设置了相同值,则表示不使用 Swap 。
4. 如果 --memory-swap 设置为 -1 则表示不对容器使用的 Swap 进行限制 。
5. 如果设置了 --memory-swap 参数,则必须设置 --memory 参数 。
至此,我介绍了容器资源管理的核心内容,包括管理容器的 CPU 资源和内存资源 。为容器进行合理的资源控制,有利于提高整体环境的稳定性,避免资源抢占或大量内存占用导致 OOM,进程被杀掉等情况 。
对 CPU 进行管理时,建议使用 --cpus,语义方面会比较清晰 。如果是对 Linux 的 CPU 调度器 CFS 很熟悉,并且有强烈的定制化需求,这种情况下再使用 --cpu-period 和 --cpu-quota 比较合适 。
对内存进行管理时,有个 --memory-swappiness 参数也需要注意下,它可设置为 0~100 的百分比,与我们平时见到的 swappiness 行为基本一致,设置为 0 表示不使用匿名页面交换,设置为 100 则表示匿名页面都可被交换 。如果不指定的话,它默认会从主机上继承 。
在本文中,关于在宿主机上查看容器的内存限制,我给出了一个命令:
(MoeLove)~ cat/sys/fs/cgroup/memory/system.slice/docker-$(docker inspect --format '{{ .Id}}' $(docker ps -ql)).scope/memory.limit_in_bytes10485760
本文节选自GitChat专栏,戳链接查看详情:https://gitbook.cn/m/mazi/comp/column?columnId=5d70cfdc4dc213091bfca46f
【Docker 容器资源管理,你真的学会了吗?】Tags:
推荐阅读
- 人力资源管理|一本非常值得考的证书:企业人力资源管理师!
- 人力资源管理师考试介绍 人力资源助理考试
- 电容器介绍 什么是电容器
- 空调电容器(如何测量空调电容好坏)
- 如何快速的打开Windows资源管理器
- 人力资源管理专业详解 人力资源管理做什么?
- docker-compose用法详解
- 人力资源管理者应具备哪些能力?
- 鼠疫|人力资源管理师,升职加薪,快来报考吧
- 坚持节水优先强化水资源管理的标语 坚持节水优先强化水资源管理