比如,处理器是支持超线程技术的,一个核心可以跑两个线程,docker分配的是核心数还是线程数?
一般我们针对docker cpu负载最高不要超过是核心数的2倍还是仅仅是核心数
比如,处理器是支持超线程技术的,一个核心可以跑两个线程,docker分配的是核心数还是线程数?
一般我们针对docker cpu负载最高不要超过是核心数的2倍还是仅仅是核心数
2 回答5.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
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%