Docker 容器内存限制 - 八

Docker 内存限制;

docker run -d -i -t -m 256M --memory-swap 512M --name centos2.12 centos /bin/bash

 查看容器实例 内存限制:

限制容器内存大小;
docker run -d -i -t -m 256M --memory-swap 512M --name centos centos /bin/bash

-m, --memory    
# 内存限制大小,单位可以为 b,k,M,g;最小为4M

--memory-swap
# 内存+交换分区大小总限制

--memory-reservation 
# 预留内存大小;容器在宿主机最小占用内存;
--oom-kill-disable # out-of-memory 内存溢出;限制kill容器进程,默认没设置 --oom-score-adj # 容器被 OOM killer 杀死的优先级,范围是[-1000, 1000],默认为 0 --memory-swappiness # 用于设置容器的虚拟内存控制行为。值为 0~100 之间的整数 --kernel-memory 核心内存限制,最小为 4M。

1、memory 设置容器内存大小;

--memory-swap 不是交换分区,而是 memory + swap 的大小;
容器的交换分区 swap = memory-swap - memory

2、Docker 默认容器交换分区的大小和内存相同

memory-swap 不设置 或者设置为 0 ;
容器的交换分区 swap 大小就是 memory 的小大;
容器的进程使用最大内存 = memory + swap

3、memory-swap 设置

当 memory-swap 设置为 -1 时;
容器内存大小为 memory 设置的大小;
交换分区大小为宿主机 swap 大小;
容器进程能使用的最大内存 = memory + 宿主机 swap 大小;

4、内存溢出

--oom-kill-disable 
限制 kill 容器进程; (必须设置在 memory 之后才有限;)

docker run -d -i -t -m 256M --oom-kill-disable --name Centos-1 centos /bin/bash

5、核心内存 & 用户内存
核心内存和用户内存不同的地方在于核心内存不能被交换出。
不能交换出去的特性使得容器可以通过消耗太多内存来堵塞一些系统服务。

核心内存包括:
stack pages(栈页面) slab pages socket memory pressure tcp memory pressure

可以通过设置核心内存限制来约束这些内存。
每个进程都要消耗一些栈页面,通过限制核心内存,可以在核心内存使用过多时阻止新进程被创建。

docker run -d -i -t -m 500M --kernel-memory 128M --name Centos-2 centos /bin/bash
限制容器内存 256M;限制核心内存 128M 。

docker run -d -i -t --kernel-memory 128M --name Centos-3 centos /bin/bash
内存为宿主机memory大小, 限制核心内存 128M

6、Swappiness  内存回收页
容器的内核可以交换出一定比例的匿名页。

--memory-swappiness就是用来设置这个比例的。
--memory-swappiness可以设置为从 0 到 100# 0 表示关闭匿名页面交换。
# 100 表示所有的匿名页都可以交换。默认情况下,如果不适用--memory-swappiness,则该值从父进程继承而来。

docker run -d -i -t --memory-swappiness=0 --name Centos-4 centos /bin/bash
将--memory-swappiness设置为 0 可以保持容器的工作集,避免交换代理的性能损失。

Swappiness 的值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。默认值swappiness=60

sysctl vm.swappiness = 100 
# cat /proc/sys/vm/swappiness

 

转载于:https://www.cnblogs.com/sharesdk/p/10109105.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值