一、资源限制
二、内存限制
1、OOME
每一个进程都会有oom_adj(oom计算分数的权重)值,此值越大,oom_score(oom得分)越高,越容易被干掉,因此非常非常重要的容器化应用,一开始就应该调他的oom_adj的值。
2、容器内存资源限制
a、如果没有设置--memory,那么设置--memory-swap也不会生效
b、若想在容器占用内存非常大的情况下不被oom杀掉,那么需要将 --oom-kill-disable 设置为 True
--memory-swappiness 设置为0时表示能不用就不用,设置为100时表示能用就用,我们物理服务器也有此参数,在/proc/sys/vm 目录下
三、CPU设置
1、
cpu 核心数是小于进程数的,当所有进程都需要运行,需要运行的数量大于核心数量的的时候哪个会优先被运行呢?因此我们需要调度器,因此内核中进程管理子系统中最重要的一个组件就是进程调度器,就是调度进程在本地运行的CPU核心之上的,一般非实时优先级为100 - 139,基本进程都是120 ,可通过 奈斯 来调整优先级,范围为[-20,19],还有实时优先级(一般都是内核级的,特别重要的),从0-99,为了调度非实时优先级(100-139之间)的进程,我们有个调度器叫CFS scheduler(完全公平调度器)。
docker 1.13版本后还支持实时调度。
2、