docker做虚拟化分配的是真实的cpu核心还是仅仅是线程数?

docker做虚拟化分配的是真实的cpu核心还是仅仅是线程数?

比如,处理器是支持超线程技术的,一个核心可以跑两个线程,docker分配的是核心数还是线程数?
一般我们针对docker cpu负载最高不要超过是核心数的2倍还是仅仅是核心数


回答:

docker分配的是"单个cpu核数的百分比倍数",
要澄清的是,操作系统在调度时不会特意区分cpu是物理核和超线程技术带来的虚拟核,
假如cpu有2个物理核,开启超线程时操作系统界面里能查询到4个核,关闭时查询到2个

其次, docker配置cpu核数是可以传递小数配置的,例如可以传递--cpus=2 给docker
宿主有4个cpu核心可用,docker实际占用的cpu更可能是4个cpu各占50%, 而不是2个100% 2个0%
docker自身文档里有说明,cpus参数可以配置成小数,
这个配置值相当于同时设定的cpu-quota与cpu-peroid参数的比值

如果要限制docker使用固定的cpu来提升cpu缓存效率,可以多传递一个cpuset-cpus参数,
例如--cpuset-cpus="1,3" 指定使用编号为1和3的cpu
这样可用的4个cpu核心就是2个100% 2个0%

以上是 docker做虚拟化分配的是真实的cpu核心还是仅仅是线程数? 的全部内容, 来源链接: utcz.com/p/937642.html

回到顶部