CN104615480A - 基于numa高性能网络处理器负载的虚拟处理器调度方法 - Google Patents
基于numa高性能网络处理器负载的虚拟处理器调度方法 Download PDFInfo
- Publication number
- CN104615480A CN104615480A CN201510058388.5A CN201510058388A CN104615480A CN 104615480 A CN104615480 A CN 104615480A CN 201510058388 A CN201510058388 A CN 201510058388A CN 104615480 A CN104615480 A CN 104615480A
- Authority
- CN
- China
- Prior art keywords
- virtual
- processor
- numa
- virtual machine
- numa node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了基于NUMA(Non-Uniform Memory Access Architecture)高性能网络处理器负载的虚拟处理器调度方法。其中,当虚拟机启动SR-IOV(Single-Root I/O Virtual i zation)高性能网卡分配的虚拟功能网卡时,通过监控虚拟机网卡的运行,获取虚拟机网卡缓存与NUMA节点上的亲和度情况;然后向VM及DOM0获取VCPU运行负载情况,通过VCPU到PCPU的映射关系获得NUMA节点上PCPU的运行负载;最后通过NUMA节点与缓存亲和度以及NUMA节点处理器实时负载信息,得到最终的调度结果,使得处理网络数据包的VCPU同时具有亲和度及处理器资源的优势,这些使得高性能网络服务器在虚拟化环境下网络性能取得了明显的提升。
Description
技术领域
本发明涉及计算机系统虚拟化领域,尤其涉及基于NUMA高性能网络处理器负载的虚拟处理器调度方法。
背景技术
虚拟化技术通过将底层硬件资源整合并再分配,将一台物理服务器虚拟出多台计算机,从而提升了硬件设备的利用率。虚拟机监控器(Virtual Machine Management,VMM)是存在于硬件与传统操作系统间的一个软件管理层。其管理者真实的物理资源(CPU、内存及I/O设备),并通过对物理资源的抽象,并将其分配给上层的操作系统,从而使一台服务器可以同时运行多个操作系统。NUMA(Non-Uniform Memory Access Architecture,NUMA)架构是一种较为成熟的多核处理器架构解决方案,它将服务器硬件资源分为多个节点,每个节点拥有自己的处理器及内存资源。处理器访问本地内存速度比访问远程内存快。
SR-IOV(Single-Root I/O Virtual ization)技术是一种基于硬件的网络虚拟化解决方案,它允许在虚拟机之间高效共享快速外设组件互连(Peripheral Component Interconnect Express,PCIe)设备,并且取得了能够与本机性能媲美的网络I/O性能。SR-IOV将自身功能分为物理功能(PF)和虚拟功能(VF),PF是全功能的PCIe功能,拥有完全配置资源,可以用于配置或控制PCIe设备;VF是一种轻量级PCIe功能,可以PF以及与同一PF关联的其他VF共享一个或多个物理资源,VF仅允许拥有用于自身行为的配置资源。
现有关于NUMA的研究主要集中在非虚拟化方面,通过一些类似NUMACTL的接口调用来对NUMA下任务的硬件资源进行控制,进而使得任务CPU与内存间具有较好的亲和度关系。关于SR-IOV的研究主要集中在减少虚拟机监控器(Virtual Machine Monitor,VMM)的介入以及减少中断的频率上。
进来XEN内核对NUMA也做了很多支持与优化,这使得在XEN环境下对NUMA相关研究成为可能,其中XEN4.2通过在分配给虚拟机(Virtual Machine,VM)硬件资源时,考虑将处理器资源与内存资源绑定,使得VM获得了较好的资源亲和度,但其可能产生某些NUMA节点处理器负载过重的情况;XEN4.3考虑到负载均衡问题,在XEN4.2的基础上增加了感知NUMA过载的调度模块,进而避免了资源分配不合理的情况。
但是在NUMA架构下专门针对虚拟机高性能网络的研究还没什么进展,因此,本发明致力于开发基于NUMA高性能网络处理器负载的虚拟处理器调度方法以解决VCPU处 理网络数据包效率不是最优的问题。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种基于当前虚拟机网卡缓存与NUMA节点亲和度,分析出物理处理器(Physical CPU,PCPU)负载情况进行预测调度的方法,其克服了虚拟机VCPU不能获取足够的处理器资源处理网络数据包的不足,有效地提高了网络数据包的处理效率。
为实现上述目的,本发明提供了一种基于当前虚拟机网络缓存在NUMA架构下的分布情况,并通过处理器实时负载的计算,进而进行VCPU的精确调度的方法,同时使虚拟机VCPU具有亲和度与处理器资源的优势。本发明包括以下步骤:
步骤1、每当虚拟机SR-IOV虚拟功能(VF)网卡启动的时候,通过获取网卡缓存虚拟地址信息,DOM0将地址信息转换为物理地址信息,通过NUMA节点间存取延迟情况,得到各个NUMA节点对网络缓存的资源亲和度。
步骤2、DOM0实时监控虚拟机及自身的VCPU负载,通过VCPU与PCPU之间映射关系及NUMA节点与PCPU的包含关系,最终得到整台服务器NUMA节点的负载情况。
步骤3、通过计算出来的NUMA节点处理器负载情况,并依据亲和度数据,得出最终的调度结果,调度VCPU到最优的网络处理NUMA节点,然后继续监视虚拟机网卡的运行情况,如果虚拟机网卡没有重启,跳转到步骤2,否则,跳转到步骤1。
基于当前虚拟机网卡缓存NUMA节点处理器实时负载的分析,得出最优的VCPU调度位置的方法具有以下有益的技术效果:
(1)可有效控制在XEN平台上VCPU资源的精确配置,保证VCPU对具有SR-IOV虚拟功能的虚拟机网络数据包具有最优的处理效果。
(2)本发明在DOM0里实现,并通过将VCPU调度至多个PCPU上运行,然后保持XEN原有的调度方法,减少了对虚拟机调度系统的影响,并且实现了轻量级的系统开销。
(3)基于对当前物理处理器负载的分析,能够保证在NUMA架构下VCPU和目标内存间具有较好亲和度的情况下,同时具有充足的处理器资源,充分利用了NUMA架构的特点。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是物理平台的NUMA架构示意图;
图2是具有SR-IOV功能的网卡运行示意图;
图3是本发明中超级调用及处理器负载分析示意图;
图4是本发明中vNAB架构示意图。
具体实施方式
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
图1是一个实验室服务器架构示意图,该图展示了NUMA架构存在的经典问题。
图2是本发明中用到的SR-IOV高性能网卡的运行示意图,IOMMU是指IO存储器管理单元。
图3是本发明中vNAB系统在整体VMM框架中的位置,vNAB通过超级调用从VM监控器获得缓存信息,同时DOM0实时从VM及自己获取VCPU实时负载,进而获取PCPU负载情况,为vNAB调用模块提供信息支持。
图4是本发明中vNAB模块示意图,通过对缓存信息及处理器实时负载的分析,将VCPU调度到合适的位置。
基于NUMA高性能网络处理器负载的虚拟处理器调度方法包括以下步骤:
步骤1、每当虚拟机SR-IOV虚拟功能(VF)网卡启动的时候,通过获取网卡缓存虚拟地址信息,DOM0将地址信息转换为物理地址信息,通过NUMA节点间存取延迟情况,得到各个NUMA节点对网络缓存的资源亲和度(该方法较上一代方法做了改进,效率更优)。该部分核心代码如下:
增加以下变量,用来存放调用接口的虚拟机参数。
Static struct domain*my_domain[1000];
static int count=0;
通过在下面初始化调用里面增加探取代码,获取参数信息。
通过新增函数unsigned long int do_print_mfn(unsigned long,int)超级调用VMM,获取虚拟机虚拟页表对应的物理页表。
步骤2、DOM0实时监控虚拟机及自身的VCPU负载,通过VCPU与PCPU之间映射关系及NUMA节点与PCPU的包含关系,最终得到整台服务器NUMA节点的负载情况。
首先,通过向VM与DOM0获取VCPU实时负载。
DOMU获取处理器负载核心代码如下:
DOM0向VM索取VCPU负载的核心代码如下:
然后,通过XEN内核提供的XL命令(xl vcpu-list),我们可以实时获取VCPU到PCPU的映射关系,并将VCPU负载加到PCPU上,进而得到PCPU的整体负载情况。
步骤3、通过计算出来的NUMA节点处理器负载情况,并依据亲和度数据,得出最终的调度结果,调度VCPU到最优的网络处理NUMA节点,然后继续监视虚拟机网卡的运行情况,如果虚拟机网卡没有重启,跳转到步骤2,否则,跳转到步骤1。该部分核心代码如下:
DOM0得到目标调度NUMA节点代码如下:
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (2)
1.一种基于NUMA高性能网络处理器负载的虚拟处理器调度方法,其特征在于,在非统一内存访问NUMA架构下,当具有SR-IOV虚拟功能的虚拟机启动虚拟网卡时,分析NUMA节点对虚拟机网络缓存的亲和度;在进行虚拟处理器调度时将处理器的实时负载情况作为调度的依据;通过实时统计物理处理器负载,同时让VCPU运行在处理器资源充足以及与网卡缓存具有较优所述亲和度的所述NUMA节点上。
2.如权利要求1所述的虚拟处理器调度方法,其特征在于,包括以下步骤:
步骤1、每当虚拟机所述SR-IOV虚拟功能网卡启动的时候,通过获取所述网卡缓存虚拟地址信息,DOM0将所述虚拟地址信息转换为物理地址信息,通过NUMA节点间存取延迟情况,得到各个NUMA节点对网络缓存的资源亲和度;
步骤2、DOM0实时监控虚拟机及自身的虚拟CPU负载,通过所述虚拟CPU与物理CPU之间映射关系及所述NUMA节点与所述物理CPU的包含关系,最终得到整台服务器所述NUMA节点的负载情况;
步骤3、通过计算出来的NUMA节点处理器负载情况,并依据所述亲和度,得出最终的调度结果,调度所述虚拟CPU到最优的网络处理所述NUMA节点,然后继续监视虚拟机网卡的运行情况,如果所述虚拟机网卡没有重启,跳转到步骤2,否则,跳转到步骤1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510058388.5A CN104615480A (zh) | 2015-02-04 | 2015-02-04 | 基于numa高性能网络处理器负载的虚拟处理器调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510058388.5A CN104615480A (zh) | 2015-02-04 | 2015-02-04 | 基于numa高性能网络处理器负载的虚拟处理器调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104615480A true CN104615480A (zh) | 2015-05-13 |
Family
ID=53149936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510058388.5A Pending CN104615480A (zh) | 2015-02-04 | 2015-02-04 | 基于numa高性能网络处理器负载的虚拟处理器调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104615480A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201650A (zh) * | 2016-06-29 | 2016-12-07 | 联想(北京)有限公司 | 一种虚拟机控制方法和系统 |
CN106354543A (zh) * | 2016-08-11 | 2017-01-25 | 上海交通大学 | 一种基于虚拟机和宿主机内存地址转换的numa内存迁页方法 |
CN106911741A (zh) * | 2015-12-23 | 2017-06-30 | 中兴通讯股份有限公司 | 一种虚拟化网管文件下载负载均衡的方法及网管服务器 |
CN107070709A (zh) * | 2017-03-31 | 2017-08-18 | 上海交通大学 | 一种基于底层numa感知的nfv实现方法 |
CN107885579A (zh) * | 2017-11-13 | 2018-04-06 | 郑州云海信息技术有限公司 | 虚拟机的负载均衡方法和计算机可读存储介质 |
CN107948071A (zh) * | 2016-10-12 | 2018-04-20 | 北京金山云网络技术有限公司 | 报文转发方法及装置 |
CN108062269A (zh) * | 2017-12-05 | 2018-05-22 | 上海交通大学 | 一种基于dpdk的计算资源弹性伸缩方法及系统 |
CN108701046A (zh) * | 2015-12-23 | 2018-10-23 | 英特尔Ip公司 | 用于避免虚拟机之间的物理cpu争用的虚拟cpu合并 |
CN111316237A (zh) * | 2017-10-31 | 2020-06-19 | 上海诺基亚贝尔股份有限公司 | 用于实时虚拟网络功能编排的方法、装置和系统 |
CN111427673A (zh) * | 2020-03-16 | 2020-07-17 | 杭州迪普科技股份有限公司 | 一种负载均衡方法、装置及设备 |
CN111884945A (zh) * | 2020-06-10 | 2020-11-03 | 中国电信股份有限公司重庆分公司 | 一种网络报文的处理方法和网络接入设备 |
CN114780463A (zh) * | 2022-03-01 | 2022-07-22 | 阿里巴巴(中国)有限公司 | 中断控制方法、设备、分布式系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161608A1 (en) * | 2009-12-30 | 2011-06-30 | Ibm Corporation | Method to customize function behavior based on cache and scheduling parameters of a memory argument |
US20110296406A1 (en) * | 2010-06-01 | 2011-12-01 | Microsoft Corporation | Hypervisor scheduler |
CN103678003A (zh) * | 2013-12-18 | 2014-03-26 | 华中科技大学 | 一种实时性增强的虚拟cpu调度方法 |
CN103946825A (zh) * | 2011-11-22 | 2014-07-23 | 英特尔公司 | 网络设备选择 |
CN103995733A (zh) * | 2014-05-27 | 2014-08-20 | 西安交通大学 | 一种基于物理资源穿透机制的轻量级嵌套虚拟化实现方法 |
CN104199718A (zh) * | 2014-08-22 | 2014-12-10 | 上海交通大学 | 一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法 |
-
2015
- 2015-02-04 CN CN201510058388.5A patent/CN104615480A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161608A1 (en) * | 2009-12-30 | 2011-06-30 | Ibm Corporation | Method to customize function behavior based on cache and scheduling parameters of a memory argument |
US20110296406A1 (en) * | 2010-06-01 | 2011-12-01 | Microsoft Corporation | Hypervisor scheduler |
CN103946825A (zh) * | 2011-11-22 | 2014-07-23 | 英特尔公司 | 网络设备选择 |
CN103678003A (zh) * | 2013-12-18 | 2014-03-26 | 华中科技大学 | 一种实时性增强的虚拟cpu调度方法 |
CN103995733A (zh) * | 2014-05-27 | 2014-08-20 | 西安交通大学 | 一种基于物理资源穿透机制的轻量级嵌套虚拟化实现方法 |
CN104199718A (zh) * | 2014-08-22 | 2014-12-10 | 上海交通大学 | 一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106911741A (zh) * | 2015-12-23 | 2017-06-30 | 中兴通讯股份有限公司 | 一种虚拟化网管文件下载负载均衡的方法及网管服务器 |
CN106911741B (zh) * | 2015-12-23 | 2020-10-16 | 中兴通讯股份有限公司 | 一种虚拟化网管文件下载负载均衡的方法及网管服务器 |
CN108701046A (zh) * | 2015-12-23 | 2018-10-23 | 英特尔Ip公司 | 用于避免虚拟机之间的物理cpu争用的虚拟cpu合并 |
CN106201650A (zh) * | 2016-06-29 | 2016-12-07 | 联想(北京)有限公司 | 一种虚拟机控制方法和系统 |
CN106354543A (zh) * | 2016-08-11 | 2017-01-25 | 上海交通大学 | 一种基于虚拟机和宿主机内存地址转换的numa内存迁页方法 |
CN106354543B (zh) * | 2016-08-11 | 2019-11-26 | 上海交通大学 | 一种基于虚拟机和宿主机内存地址转换的numa内存迁页方法 |
CN107948071B (zh) * | 2016-10-12 | 2020-12-11 | 北京金山云网络技术有限公司 | 报文转发方法及装置 |
CN107948071A (zh) * | 2016-10-12 | 2018-04-20 | 北京金山云网络技术有限公司 | 报文转发方法及装置 |
CN107070709A (zh) * | 2017-03-31 | 2017-08-18 | 上海交通大学 | 一种基于底层numa感知的nfv实现方法 |
CN111316237A (zh) * | 2017-10-31 | 2020-06-19 | 上海诺基亚贝尔股份有限公司 | 用于实时虚拟网络功能编排的方法、装置和系统 |
US11625258B2 (en) | 2017-10-31 | 2023-04-11 | Nokia Solutions And Networks Oy | Method, apparatus and system for real-time virtual network function orchestration |
CN111316237B (zh) * | 2017-10-31 | 2024-03-15 | 上海诺基亚贝尔股份有限公司 | 用于实时虚拟网络功能编排的方法、装置和系统 |
CN107885579A (zh) * | 2017-11-13 | 2018-04-06 | 郑州云海信息技术有限公司 | 虚拟机的负载均衡方法和计算机可读存储介质 |
CN108062269A (zh) * | 2017-12-05 | 2018-05-22 | 上海交通大学 | 一种基于dpdk的计算资源弹性伸缩方法及系统 |
CN108062269B (zh) * | 2017-12-05 | 2020-12-11 | 上海交通大学 | 一种基于dpdk的计算资源弹性伸缩方法及系统 |
CN111427673A (zh) * | 2020-03-16 | 2020-07-17 | 杭州迪普科技股份有限公司 | 一种负载均衡方法、装置及设备 |
CN111427673B (zh) * | 2020-03-16 | 2023-04-07 | 杭州迪普科技股份有限公司 | 一种负载均衡方法、装置及设备 |
CN111884945B (zh) * | 2020-06-10 | 2022-09-02 | 中国电信股份有限公司重庆分公司 | 一种网络报文的处理方法和网络接入设备 |
CN111884945A (zh) * | 2020-06-10 | 2020-11-03 | 中国电信股份有限公司重庆分公司 | 一种网络报文的处理方法和网络接入设备 |
CN114780463A (zh) * | 2022-03-01 | 2022-07-22 | 阿里巴巴(中国)有限公司 | 中断控制方法、设备、分布式系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104615480A (zh) | 基于numa高性能网络处理器负载的虚拟处理器调度方法 | |
CN104199718A (zh) | 一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法 | |
Zhang et al. | {G-NET}: Effective {GPU} Sharing in {NFV} Systems | |
US20230127141A1 (en) | Microservice scheduling | |
US9009707B2 (en) | Sharing reconfigurable computing devices between workloads | |
CN105843683B (zh) | 用于动态优化平台资源分配的方法、系统和设备 | |
US9697031B2 (en) | Method for implementing inter-virtual processor interrupt by writing register data in a single write operation to a virtual register | |
CN101751284A (zh) | 一种分布式虚拟机监控器的i/o资源调度方法 | |
US8880764B2 (en) | Pessimistic interrupt affinity for devices | |
US10860353B1 (en) | Migrating virtual machines between oversubscribed and undersubscribed compute devices | |
US9003094B2 (en) | Optimistic interrupt affinity for devices | |
EP2881860A1 (en) | Method for implementing an interrupt between virtual processors, related device, and system | |
RU2573733C1 (ru) | Способ и устройство для регулировки канала i/о на виртуальной платформе | |
WO2018040845A1 (zh) | 一种计算资源调度方法及装置 | |
Zhou et al. | Optimizations for high performance network virtualization | |
US20140237017A1 (en) | Extending distributed computing systems to legacy programs | |
CN103034526A (zh) | 一种虚拟化服务的实现方法和装置 | |
Yang et al. | Implementation of GPU virtualization using PCI pass-through mechanism | |
US9575788B2 (en) | Hypervisor handling of processor hotplug requests | |
US9378057B2 (en) | Paravirtualized migration counter | |
Huanle et al. | An openstack-based resource optimization scheduling framework | |
Younge et al. | Advanced virtualization techniques for high performance cloud cyberinfrastructure | |
Wan | A network virtualization approach in many-core processor based cloud computing environment | |
Gerangelos et al. | vphi: Enabling xeon phi capabilities in virtual machines | |
US10241821B2 (en) | Interrupt generated random number generator states |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150513 |
|
RJ01 | Rejection of invention patent application after publication |