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微秒。