云服务器上物理CPU和虚拟机CPU的关系
PS:现在设置的其中一个虚拟机2颗CPU 每克CPU 12个核心,总计24个核心在虚拟机上跑!系统正常,但用户连上去后速度不是很理想,按说不应该是这样啊。
PS:请不要复制粘贴其他地方的内容!该看的我都看了!还是没搞明白这个关系。 展开
CPU预留定义了分配给该VM的最少CPU资源;CPU限制定义了分配虚拟机占用CPU资源的上限;CPU份额定义多个虚拟机在竞争CPU资源的时候按比例分配;CPU份额只在各虚拟机竞争计算资源时发挥作用,如果没有竞争,有需求的虚拟机可以独占主机的物理CPU资源。
由于采用分时复用的方式,在不做VCPU预留的条件下,系统可分配给VM的VCPU总数远远大于实际可提供的VCPU数目(具体能创建多少额外的VCPU依赖于物理CPU的性能和VCPU的使用情况),在出现资源争用的时根据CPU QoS中的预留和份额来分配资源。
扩展资料
对虚拟机来说,不直接感知物理CPU,虚拟机的计算单元通过vCPU对象来呈现。在VMM中,每个vCPU对应一个VMCS结构,当VCPU被从物理CPU上切换下来的时候,其运行上下文会被保存在其对应的VMCS结构中;当VCPU被切换到PCPU上运行时,其运行上下文会从对应的VMCS结构中导入到物理CPU上。通过这种方式,实现各vCPU之间的独立运行。
虚拟化平台将1000台以上的服务器集群虚拟为多个性能可配的虚拟机(KVM),对整个集群系统中所有KVM进行监控和管理,并根据实际资源使用情况灵活 分配和调度资源池,可以突破单个物理机的限制,动态的资源调整与分配消除服务器及存储设备的单点故障,实现高可用性。
一个物理CPU一般一个内核会支持多个处理线程(英特尔超线程技术)。这就意味着一个六核的Xeon处理器可以提供给服务器六个物理CPU。当超线程开启的时候,每个线程可以作为一个物理CPU,所以如果这个六个核都开启了双线程支持,那么服务器将看到12个物理CPU。
每个物理CPU被抽象成每个虚拟CPU,通常情况下,会为每个内核划分可用的虚拟CPU资源,并允许多个虚拟CPU虚拟机共享一个物理处理器内核。默认情况下,虚拟化层会给每个工作负载分配一个虚拟CPU(一个核),一般一个虚拟CPU可以支持4到8个虚拟机。
参考资料:百度百科-云服务器
参考资料:百度百科-虚拟CPU
比如2颗8核16线程的CPU,可用vCPU数就是32个。
事实上是可以分配超过32个vCPU给不同的虚拟机的,但这样会导致虚拟机CPU处理性能有所下降,但依然可用。
我们曾经在3台esxi服务器(每台双8核16线程CPU)上建VSAN,上面创建150个云桌面,分配差不多近280个vCPU核心,依然正常使用。
只要所以的虚拟机并非同时CPU占用100%,就不会存在问题。一般虚拟机只分配单核或双核而已,只要特殊应用才分配4核到8核,如果真需要那么高强度的计算性能,建议不要采用虚拟化方式,直接安装到实体服务器上最好。当然也可以选择更强大的4路或8路服务器。
我也是用ESXI跑桌面云的,但区别是,我这个桌面云是多个用户使用一个虚拟机,目前虚拟机里只有20个用户连接,也就是说只有20个终端的桌面云,使用分配给他的双8核cpu24线程的CPU资源,但目前的状态都开始卡了!CPU负荷在50%--80%,硬盘是SSD的,所以应该不会出现卡的状况,所以我在想是不是CPU设置的多了?还是什么情况?
这个还有看具体用户连接上云桌面后,实时的CPU占用情况。
对于一般的用户而已,根本不需要给他分配双8核这么多的CPU资源。
如果是密集型计算,建议按vCPU=物理+逻辑CPU数来进行分配。
如果是一般桌面应用,建议给每用户或每云桌面分配单CPU1~2核心即可,云桌面内存要大,CPU一般双核即可。