首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >虚拟化: vCPU与超线程主机CPU绑定?

虚拟化: vCPU与超线程主机CPU绑定?
EN

Server Fault用户
提问于 2015-06-14 08:42:16
回答 2查看 4.8K关注 0票数 1

我在具有Corei7-2600 CPU的Linux服务器上使用KVM/libvirt,它具有以下CPU拓扑(1套接字、4核、8线程):

代码语言:javascript
运行
复制
Physical | Logical
---------+--------
Core 0   | 0, 4
Core 1   | 1, 5
Core 2   | 2, 6
Core 3   | 3, 7

我通常在这个主机上运行3台虚拟机,每个虚拟机都有2个虚拟CPU。为了通过保持高速缓存来提高性能,我想将VM的vCores连接到固定的主机核上。

现在的问题是VM核到主机核的映射,考虑到主机CPU使用超线程的事实:

选项1:每个物理主机核心

一个VM

代码语言:javascript
运行
复制
VM1: logical cores 1, 5
VM2: logical cores 2, 6
VM3: logical cores 3, 7

这样,VM的两个虚拟核将映射到主机CPU上的同级超线程。客户端代码将受益于缓存局部性,因为两个主机核心共享一些缓存。

但是,考虑到两个超级线程也共享一些功能单元,它们在计算负载下会彼此减速。

选项2:分布式VM核心

代码语言:javascript
运行
复制
VM1: logical cores 1, 2
VM2: logical cores 3, 5
VM3: logical cores 6, 7

这种映射的优点是,如果一个VM在其两个虚拟核上都经历了计算负载,则该负载将映射到主机上的两个独立的物理核上。如果此时没有其他VM处于加载状态,那么前者可以使用两个物理内核,而不是只有一个有选项1的内核。

VM都主要运行web服务(Nginx、MySQL、PHP),所以我知道这个问题是理论性质的--但我还是想知道。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2015-06-14 13:32:01

你可能想得太多了。

在这里手工分配核心实际上可能会导致性能降低。在VMware世界中,除非有非常具体的需求,否则我们不会这样做,但是对于您所描述的工作负载和应用程序来说,这是不必要的。让KVM安排一些事情并完成。如果有疑问的话,买更多的核心和插座。但是在如此小的部署中,CPU并不是限制因素。

票数 4
EN

Server Fault用户

发布于 2015-06-14 13:22:21

在大多数情况下,选项1不应该放慢速度,但是操作系统和程序可能会触发--对它们的工作负载很满意。可能会堆起来。我认为如果你的邻居不介意这种微小的减速,第二种选择会更好。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/698888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档