首页 理论教育 私有云架构设计与实践:Libvirt中CPU性能

私有云架构设计与实践:Libvirt中CPU性能

时间:2023-10-28 理论教育 版权反馈
【摘要】:Libvirt中可对CPU进行的定义包含如下内容。□vCPU微调对虚拟机CPU性能优化的常用做法是设置其拓扑与微调字段。如果对上述参数进行适当设置,将全部虚拟机的所有vCPU平均地分散到各个pCPU上,就能够较好地改善此状况。由于vCPU在主机操作系统中是在用户空间任务运行,如果当虚拟机的所有vCPU线程在同一个路CPU中运行时,那么它们之间将会共享L3缓存从而提高执行效率。

私有云架构设计与实践:Libvirt中CPU性能

以QEMU作为模拟器的虚拟化平台一般借助于libvirt进行较细颗粒度的vCPU性能调节,包括CPU特征、拓扑、钉选(pinning)、NUMA配置等。

Libvirt中可对CPU进行的定义包含如下内容。

□vCPU微调

虚拟机CPU性能优化的常用做法是设置其拓扑与微调字段。Cputune中的vcpupin即是我们常说的钉选,即是将虚拟机的单个或多个vCPU线程分别固定在指定pCPU上运行;而share、period、quota字段则可限制虚拟机在全部物理核上的时间片比例。以虚拟机并发数量较高的应用场景为例,多个模拟器的子进程为在多个物理核间进行漂移,上下文切换成本较大,导致全部虚拟机内的程序运行缓慢。如果对上述参数进行适当设置,将全部虚拟机的所有vCPU平均地分散到各个pCPU上,就能够较好地改善此状况。

□vNUMA

钉选同样也是虚拟机进行NUMA优化的基础。由于vCPU在主机操作系统中是在用户空间任务运行,如果当虚拟机的所有vCPU线程在同一个路CPU中运行时,那么它们之间将会共享L3缓存从而提高执行效率。(www.xing528.com)

在设置NUMA之前,我们需要查询主机能力中是否支持NUMA功能,使用命令“virsh host capabilities”进行查询:

然后在虚拟机的定义中添加NUMA内存分配模式,包括strict(严格遵守定义,资源请求失败则分配失败)、interleave(以轮询方式请求资源,这种模式适用于大多数场景)、prefered(优先从单一节点分配内存):

最后将虚拟机的vCPU进行分组,即定义vNUMA:

如此一来这个虚拟机的8个vCPU便分别绑定到了服务器的两个pCPU上,从而能够增加vCPU的内存效率。期间可以通过命令numastat查询NUMA节点内存使用情况、numactl控制进程与共享内存的NUMA策略,在virsh中使用numatune动态调节vNUMA。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈