Runtime constraints on CPU and memory
目前相关资料还没有收齐,还在学习之中
下面的参数可以用来调整container内的性能参数。
参数 | 描述 |
---|---|
-m, --memory="" | Memory limit (format: |
--memory-swap="" | Total memory limit (memory + swap, format: |
-c, --cpu-shares=0 | CPU shares (relative weight) |
--cpu-period=0 | Limit the CPU CFS (Completely Fair Scheduler) period |
--cpuset-cpus="" | CPUs in which to allow execution (0-3, 0,1) |
--cpuset-mems="" | Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems. |
--cpu-quota=0 | Limit the CPU CFS (Completely Fair Scheduler) quota |
--blkio-weight=0 | Block IO weight (relative weight) accepts a weight value between 10 and 1000. |
--oom-kill-disable=false | Whether to disable OOM Killer for the container or not. |
--memory-swappiness="" | Tune a container’s memory swappiness behavior. Accepts an integer between 0 and 100. |
通过docker run -m 可以很方便的调整container所使用的内存资源。如果host支持swap内存,那么使用-m可以设定比host物理内存还大的值。
同样,通过-c 可以调整container的cpu优先级。默认情况下,所有的container享有相同的cpu优先级和cpu调度周期。但你可以通过Docker来通知内核给予某个或某几个container更多的cpu计算周期。
默认情况下,使用-c或者--cpu-shares 参数值为0,可以赋予当前活动container 1024个cpu共享周期。这个0值可以针对活动的container进行修改来调整不同的cpu循环周期。
比如,我们使用-c或者--cpu-shares =0启动了C0,C1,C2三个container,使用-c/--cpu-shares=512启动了C3.这时,C0,C1,C2可以100%的使用CPU资源(1024),但C3只能使用50%的CPU资源(512)。如果这个host的OS是时序调度类型的,每个CPU时间片是100微秒,那么C0,C1,C2将完全使用掉这100微秒,而C3只能使用50微秒。