在虚拟桌面项目中,当虚机为高负载类型的业务,对CPU的要求很高的时候,我们希望为这些虚拟桌面分配更多的CPU资源,但是我们也发现,部分系统对CPU数量的支持有数量的限制,超过以后,即使分配,也没法利用到。笔者以下分享为Xenserver中虚拟机分配多个vCPU资源。 一 概念梳理在CPU中有几个概念:Socket、Core、Hyper-Threading(HT)
Socket:可理解是是连接到主板的一个CPU,通俗讲就是一个物理CPU Core:可理解是同一个CPU芯片上集成的多个核心,也就是所谓的多核的核 Hyer-Threading:模拟的多线程,通俗讲在一个核心上模拟出两个CPU执行线程,能够提高多任务的性能 二 系统本身对CPU的支持限制windows server操作系统对物理CPU(socket)以及多核CPU(multi-Core)的支持受产品版本(标准、企业、数据中心版本等)的限制
针对多物理CPU(multi-socket): windows 7和XP最多支持2路CPU,企业版以上支持2路CPU,企业版以下(Home版)只支持1路CPU 针对多核心(multi-core): windows 7 32位系统支持最多32核,64位windows 7支持多达256核的CPU。 三 原理解释XenServer分配给虚机的vCPU都是以Socket的形式呈献给虚机的,这就导致通过XenCenter最多只能给虚机分配2个vCPU,即使多分配,系统也无法识别到,因为windows 7和XP最多只支持2个socket。
而windows 7和XP又能支持多core,所以我们如果能够以每个socket有多核,然后分配给虚机,这样就可以达到分配更多的CPU自愿给这些虚机系统 四 为Xenserver中虚拟机分配多个vCPU4.1 将对应虚拟机执行关机操作;4.2 查看虚拟机对应的UUID;![]() 4.3 设置虚拟机cores-per-socket参数,以设置虚拟机每个socket 4个为例;![]() 4.4 设置虚拟机启动时vCPU参数;![]() 如果cores-per-socket设置为4,如果分配一个vCPU给虚机,虚拟机就是有一个socket. 4.5 启动虚拟机,查看虚拟机vCPU数量;4.6 若是需要进行批量创建,可直接修改模板后进行创建即可。 |