vmware 下虚拟cpu和物理cpu 核的映射关系
1. 映射关系Hypervisor(例如VMware ESXi,KVM,Xen等)为了最大化性能,一般都是根据资源可用性等等来动态的调整虚拟CPU和物理CPU的映射关系的。调度vCPU的算法非常复杂多样,有简单的轮转算法(round-robin),也有复杂的考虑NUMA等内存局部性的算法。2. 是否能在虚拟机中动态获得Hypervisor是知道这些映射关系的,但是在虚拟机内部能否获取到,取决于Hypervisor是否想把这些信息暴露给虚拟机。我倾向于Hypervisor不会暴露映射关系给虚拟机,原因有两点:a,映射是动态改变的,而且改变周期不确定(有可能很长,也可能短到一个时间片);b,没有意义,如果虚拟机里面的应用需要确定的映射关系可以通过其他方式达到,例如下面的可行方案。3. 可行的解决方案看题主的问题,应该是想将虚拟机里面的某个程序(假设为P)运行到某个物理CPU(假设为PhyCore0)上。这个可以通过两层CPU Affinity设置达到。首先在VMware EXSi里面将该虚拟机的某个CPU(假设为VirtCore0)绑定到PhyCore0上(可以搜索 vmware cpu affinity),然后在虚拟机内部使用OS提供的机制将程序P绑定VirtCore0上(guest os是linux的话,可以用taskset等)。采用这个方式可能会降低一部分性能,毕竟本来有可用的CPU就能运行,现在必须等到PhyCore0空闲才能运行。当然,题主的问题是使用NUIOA,只需要把Affinity设置到一个Socket上就行,这样实际性能损失应该会较小。
推荐阅读
- 关于人工智能虚拟人的一些问题
- 王思聪|王思聪都没享受到的待遇,如今被一位3D虚拟偶像提前实现了?
- 未来手机上会装备深度摄像头吗,是否有这种需求
- 苹果为啥不自己设计电脑的CPU?
- 虚拟现实护眼吗
- 箩筐科技|自动驾驶虚拟仿真测试介绍
- 虚拟现实可塑怎么样的未来?
- 虚拟现实有没有电子墨水屏
- 虚拟现实能替代现实吗
- 笔记本电脑主板有个通电自动启动的设置 通电自动启动对主板或者cpu有危害吗
