· ARM架构的主机暂不支持IOMMU/SMMU配置,CPU超线程配置、嵌套虚拟化功能。 · ARM架构的主机,IOMMU/SMMU功能默认已经开启。 |
主机的启动项配置包括大页内存的配置、IOMMU/SMMU配置、CPU隔离、CPU超线程配置、嵌套虚拟化。
大页内存管理方式(HugePage),与传统的4KB普通页管理方式相比,大页管理大内存(8GB以上)更为有效,大大提高了CPU cache中存放page table所覆盖的内存大小,从而提高了TLB命中率。
IOMMU/SMMU(Input/Output Memory Management Unit,内存输入/输出管理单元)允许系统设备在虚拟内存中进行寻址,也就是将虚拟内存地址映射为物理内存地址,让实体设备可以在虚拟的内存环境中工作,这样可以帮助虚拟机提升内存访问的性能。
CPU隔离是把指定的CPU从主机的多核平衡调度策略中移除。CPU被隔离后,系统不会自动把任务放到隔离的CPU上运行。隔离的CPU专用于虚拟机CPU绑定的物理CPU、DPDK绑定的物理CPU。以防出现主机CPU一直处于忙碌状态,一些重要业务的虚拟机或者主机启用DPDK功能时获取主机CPU资源过慢的情况,影响业务的处理速度。
CPU超线程配置,每个CPU核可以运行多条线程,提高处理器吞吐量以及线程软件的整体性能。
嵌套虚拟化允许X86架构或物理主机下面的虚拟机再运行KVM类型的虚拟机,能够使一台虚拟机具有物理机CPU特性,但嵌套虚拟机与物理主机中的虚拟机相比,性能较差。
修改大页、IOMMU/SMMU配置、CPU配置、CPU超线程配置、嵌套虚拟化后,必须重启主机才能生效。
若主机开启了DPDK配置,则无法禁用大页配置。
若主机网卡的驱动为VFIO,则无法禁用IOMMU/SMMU。
开启CPU隔离配置并且选择了超线程生成的CPU后,不允许在物理服务器BIOS中禁用CPU超线程,否则会导致CPU隔离配置失效;此时请在物理服务器BIOS中手动开启CPU超线程并重启服务器,以保证CPU隔离正常使用。
主机不是物理主机时,不支持嵌套虚拟化,也就是说仅支持嵌套一级虚拟化系统;嵌套虚拟化功能为测试场景或教学场景下使用,非必要请勿开启。
启用CPU隔离配置后,在使用相关的虚拟机或其他应用程序(如虚拟交换机)前,请先为它们手动绑定物理CPU。
同一个CPU不能同时配置在CPU隔离和CPU分组中。并且,如果CPU已经被绑定至虚拟机,则配置CPU分组时,“虚拟机”分组中必须包含该CPU。
选择顶部“云资源”页签,单击左侧导航树[计算/主机池/<主机名>]或者[计算/主机池/集群/<主机名>]菜单项,进入主机概要信息页面。
选择“高级设置”页签,进入主机的启动项配置页面。
修改大页配置,在大页配置状态选择框中选择启用或禁用大页,若选择启用大页,则根据需要选择页大小,输入页数。
修改IOMMU/SMMU配置,在IOMMU/SMMU配置状态选择框中选择启用或禁用IOMMU/SMMU。
修改CPU隔离,在CPU隔离配置状态选择框中选择启用或禁用CPU隔离。若选择启用CPU隔离,则至少选择一个NUMA节点,单击NUMA节点<隔离CPU>按钮,弹出隔离CPU对话框,选择要隔离的CPU,单击<确定>按钮。
设置CPU分组,在CPU分组配置状态选择框中选择启用或禁用CPU分组。若选择启用CPU分组,则可以为“虚拟机”或“自定义”组分配CPU,单击<分组CPU>按钮,弹出虚拟机分组CPU或自定义分组CPU对话框,选择要加入该组的CPU,单击<确定>按钮。
单击<保存>按钮完成操作。
大页配置:
大页当前状态:主机当前的大页状态,包括:启用、禁用,默认为禁用。
大页配置状态:主机大页配置的状态,包括:启用、禁用,默认为禁用。
页大小:主机大页配置的页大小。
页数:主机大页配置的页数。
IOMMU/SMMU配置:
IOMMU/SMMU当前状态:主机当前的IOMMU/SMMU状态,包括:启用、禁用,默认为禁用。
IOMMU/SMMU配置状态:主机IOMMU/SMMU配置的状态,包括:启用、禁用,默认为禁用。
CPU隔离配置:
CPU隔离当前状态:主机当前的CPU隔离状态,包括:启用、不启用,默认为不启用。
CPU隔离配置状态:主机CPU隔离配置的状态,包括:启用、不启用,默认为不启用。开启CPU隔离后,需要为虚拟机或程序(如虚拟交换机)绑定隔离出的物理CPU,推荐绑定比例为1:1,即为虚拟机的每个vCPU绑定一个物理CPU,其他一个程序通常绑定一个物理CPU。如果不绑定物理CPU,那么这些物理CPU无法正常调度给虚拟机或程序使用,无法使用。会导致主机中的虚拟机或程序的性能下降。
NUMA节点:系统中NUMA节点数对应主机物理CPU数,单个CPU物理核数(如CPU支持超标量则还需乘超标量数值)即为NUMA节点内的CPU数量,NUMA节点编号从0开始。每个NUMA节点包含CPU,IO总线及内存资源。
隔离CPU:NUMA节点中被隔离的CPU。
操作:显示操作员可以对CPU隔离执行的管理操作。单击<隔离CPU>按钮可修改NUMA节点上被隔离的CPU,单击<清除配置>按钮可清空NUMA节点的所有配置。
CPU分组配置:
CPU分组当前状态:主机当前的CPU分组状态,包括:启用、不启用,默认为不启用。
CPU分组配置状态:主机CPU分组配置的状态,包括:启用、不启用,默认为不启用。
CPU使用者:分组后CPU的用途,分为虚拟机和自定义,自定义包括虚拟交换机等进程。
NUMA节点:显示当前NUMA节点(例如NUMA0、NUMA1)中已被设置到分组的CPU。
操作:显示操作员可以对CPU分组执行的管理操作。单击<分组CPU>按钮可修改加入分组的CPU,单击<清除配置>按钮可清空分组的所有配置。
CPU超线程配置:
CPU超线程当前状态:主机当前的CPU超线程状态,包括:启用、不支持,默认状态和物理主机超线程状态保持一致,若物理主机超线程开启,此状态为开启;若物理主机超线程不启用,此状态为不支持。
CPU超线程配置状态:当CPU超线程当前状态显示启用状态时,才可配置此参数。主机CPU超线程配置的状态,包括:启用、不启用。默认为不启用。
嵌套虚拟化:
嵌套虚拟化当前状态:主机当前的嵌套虚拟化状态,包括:启用、不启用,默认为不启用。