CN112671832A - 虚拟交换机中保障层次化时延的转发任务调度方法及系统 - Google Patents
虚拟交换机中保障层次化时延的转发任务调度方法及系统 Download PDFInfo
- Publication number
- CN112671832A CN112671832A CN202011405138.1A CN202011405138A CN112671832A CN 112671832 A CN112671832 A CN 112671832A CN 202011405138 A CN202011405138 A CN 202011405138A CN 112671832 A CN112671832 A CN 112671832A
- Authority
- CN
- China
- Prior art keywords
- priority
- data set
- queue
- tokens
- virtual switch
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出一种虚拟交换机中保障层次化时延的转发任务调度方法及系统,包括:步骤1、为同一台服务器中各虚拟机分配转发任务调度的优先级,并根据该服务器中虚拟交换机的批处理能力,为各虚拟机的限速令牌桶设置一个阈值,构建各优先级对应的优先级队列;步骤2、根据优先级从优先级队列取出以虚拟机为单位的数据集合交由该虚拟交换机进行一批数据包的转发,判断该数据集合中的令牌数是否大于该阈值,若是则将数据集合写回于其对应的优先级队列,否则将数据集合放入等待队列中;步骤3、监测该等待队列中各数据集合中的令牌数,将该等待队列中令牌数大于该阈值的数据集合迁移至其对应的优先级队列。
Description
技术领域
本发明涉及任务调度方法,提出了一种虚拟交换机中用于保障层次化时延的调度方法和系统。
背景技术
云计算由于其高性价比和灵活性,已经成为计算机产业中一种不可或缺的组成部分。得益于虚拟化技术,越来越多的企业采用在云平台上以虚拟机(VM)的方式来部署自己的应用和业务。这些同一个服务器上的众多VM通过一个虚拟交换机(vSwitch进程)来实现对网络的虚拟化。一个vSwitch进程同时为这么多VM提供流量转发和外部网络连接功能,这让vSwitch进程成为一个高度集中、资源竞争严重的虚拟化组件,对改善VM的网络延迟和提供差异化的服务提出了更高的要求。
在典型的云平台服务器上,vSwitch为VM进行流量转发的过程如图1所示。为了保证高效性,vSwitch会启动多个轮询线程(PMD线程)来集中处理网络I/O任务。这些PMD线程会一直顺序轮询每个VM的端口,检查是否有数据包发送,如果有则开启转发流程。整个转发流程分为三步,首先在“入端口”阶段,PMD线程为该VM拷贝一批数据包(从VM内存到vSwitch管理的I/O内存);第二步是查表,PMD线程继续对这一批数据包进行查表操作,根据五元组寻找目的端口;最后一步是“出端口”,将这些数据包在目的端口上发送出去。转发流程内的步骤都是连续的且遵循批处理的原则,转发流程全部结束后PMD线程继续检查下一个VM的端口。
在现在的vSwitch中缺乏能够保障VM差异化时延的方法,现有的时延保障的方法都是沿袭自物理交换机的流量或数据包排队算法,在“出端口”阶段,让数据包根据一定规则排序,赋予每个数据包不同级别的等待时间。这种方法在物理交换机上非常有效,因为物理交换机强大的处理能力使得资源竞争和等待只会发生在“出端口”阶段,尤其是来自多个端口的流量在一个端口汇聚发送出去。但是在软件实现的vSwitch上,“出端口”阶段并非是时延的主要来源。由图1所示,“入端口”阶段多个VM都想要竞争一个PMD线程进入批处理流程,而同时vSwitch流程由于包含了数据包拷贝开销也很大。因此在软件的vSwitch中VM的主要时延来源是等待PMD线程完成其他VM的批处理流程,如果单纯地在网卡端口上使用传统的数据包排队方法并不能保证该时延,且更糟糕的是,随着VM部署的数量增多,所有VM都会无差别地面临着时延的剧增,这就需要一种适合vSwitch运行模式的调度方法来保证为VM提供差异化时延。
发明内容
本设计为了解决vSwitch中VM遭受的无差别高时延问题,提出了一种基于优先级的转发任务调度方法,来保障不同优先级的VM享有不同等级的最差时延。
针对现有技术的不足,本发明提出一种虚拟交换机中保障层次化时延的转发任务调度方法,其中包括:
步骤1、为同一台服务器中各虚拟机分配转发任务调度的优先级,并根据该服务器中虚拟交换机的批处理能力,为各虚拟机的限速令牌桶设置一个阈值,构建各优先级对应的优先级队列;
步骤2、根据优先级从高往低的顺序依次从各优先级队列中取出以虚拟机为单位的数据集合交由该虚拟交换机进行一批数据包的转发,判断该数据集合中的令牌数是否大于该阈值,若是则将数据集合写回于其对应的优先级队列,否则将数据集合放入等待队列中;其中在队列中的以虚拟机为单位的数据集合是虚拟机的结构体,包含了虚拟机的令牌桶、数据缓存区指针等信息,而真正的虚拟机和待转发数据包在虚拟机本地缓存。所以当虚拟交换机去转发时,会根据数据缓存区的指针找到对应的待转发数据包,进行转发。
步骤3、监测该等待队列中各数据集合中的令牌数,将该等待队列中令牌数大于该阈值的数据集合迁移至其对应的优先级队列。
所述的虚拟交换机中保障层次化时延的转发任务调度方法,其中包括:获取数据集合中令牌数目,判断该令牌数是否大于该阈值,若是则根据其优先级将该数据集合放入对应的优先级队列中,否则将该数据集合放入等待队列中。
所述的虚拟交换机中保障层次化时延的转发任务调度方法,其中该阈值为平均一次批处理能转发的数据包或字节数量。
所述的虚拟交换机中保障层次化时延的转发任务调度方法,其中每个该虚拟机的优先级由服务提供商确定。
所述的虚拟交换机中保障层次化时延的转发任务调度方法,其中每个优先级队列和等待队列中,数据集合按照先进先出的原则排序。
本发明还提出了一种虚拟交换机中保障层次化时延的转发任务调度系统,其中包括:
模块1,用于为同一台服务器中各虚拟机分配转发任务调度的优先级,并根据该服务器中虚拟交换机的批处理能力,为各虚拟机的限速令牌桶设置一个阈值,构建各优先级对应的优先级队列;
模块2,用于根据优先级从高往低的顺序依次从各优先级队列中取出以虚拟机为单位的数据集合交由该虚拟交换机进行一批数据包的转发,判断该数据集合中的令牌数是否大于该阈值,若是则将数据集合写回于其对应的优先级队列,否则将数据集合放入等待队列中;
模块3,用于监测该等待队列中各数据集合中的令牌数,将该等待队列中令牌数大于该阈值的数据集合迁移至其对应的优先级队列。
所述的虚拟交换机中保障层次化时延的转发任务调度系统,其中包括:获取数据集合中令牌数目,判断该令牌数是否大于该阈值,若是则根据其优先级将该数据集合放入对应的优先级队列中,否则将该数据集合放入等待队列中。
所述的虚拟交换机中保障层次化时延的转发任务调度系统,其中该阈值为平均一次批处理能转发的数据包或字节数量。
所述的虚拟交换机中保障层次化时延的转发任务调度系统,其中每个该虚拟机的优先级由服务提供商确定。
所述的虚拟交换机中保障层次化时延的转发任务调度系统,其中每个优先级队列和等待队列中,数据集合按照先进先出的原则排序。
由以上方案可知,本发明的优点在于:
层次化时延。该方法由于是对整个批处理任务做调度,包含了完整的三个步骤,因此相比传统的基于数据包或者流的调度只在一个步骤上发挥作用,我们的方法能够完整地保证VM的时延,而基于优先级的设计,能够保证不同优先级的VM层次化的时延。
通用性。我们的方法面向的是通用的vSwitch,跟CPU型号和软件平台都是无关的,能够很容易应用在不同调度平台上。
高效易实现。我们的方法没有引入过多的资源开销,而仅仅是改变了PMD线程为VM批处理转发任务执行的顺序,理论上没有性能的损失,相比于很多数据包拍队方法要求很短的时间间隔内做出某些反馈会消耗大量的CPU资源,我们的方法更加高效简单。
综上,本发明从vSwitch中PMD线程完整的批处理转发任务出发,设计了一种基于优先级的转发任务调度方法,来实现VM的层次化时延,相比于传统的流量调度方法,我们的方法能够更能够贴合vSwitch处理逻辑来保障VM的时延要求。
附图说明
图1为为典型的vSwitch数据包转发流程图;
图2为本发明的方法逻辑示意图。
具体实施方式
由于传统的基于端口的流量调度策略只在某一个端口对数据包进行排队,只能降低数据包在端口上等待的时延而不能保证数据包在vSwitch的整个软转发过程中的等待时延。另一方面,vSwitch中的转发模式相对来说比较简单,PMD线程对每个VM一批数据包的操作是连续的,因此我们提出的方法基于整个转发任务,而非某一个端口或阶段。这就需要一种任务的调度方法保证任务执行的顺序,并进一步保障时延差异化。
保障层次化时延,首先需要对VM划分优先级,每个VM的优先级可以由服务提供商确定,例如可以将对延迟敏感的服务(例如Web、视频等)设置为更高的优先级。然后让这些优先级影响它们能够被PMD线程执行批处理转发任务的顺序。
划分完优先级以后,下一步是确保高优先级的VM会比低优先级VM享有更高的批处理任务执行特权,而同一优先级的VM则遵循先到先服务的原则。比如说,对于一个优先级为N的VM,只有在更高的N-1个优先级下的所有VM都已进入无批处理操作条件后(例如,限速机制下转发数据包达到上限)才可以轮到它执行。这需要通过修改一些限速机制的门限,拿常用的令牌桶的机制来说,需要修改每个VM的令牌桶内令牌数在低于一个阈值情况下,不被允许执行批处理转发操作,这样既能保证转发的高效性,又可以避免让高优先级的VM一直霸占CPU核。
我们使用这种分优先级的执行特权来保证和计算每个队列中VM的最差延迟。由于不确定的CPU硬件处理能力,不可能在软件转发中保证每个VM的确定的时延值,但是我们的方法仍然可以相对保证每个优先级下VM的最差时延。我们假设8个优先级的VM数量分别为N1,N2,N3,…,N8,一次批处理所用的时间为c。因此,这些队列中VM的最坏情况下延迟分别是N1*c,(N1+N2)*c,(N1+N2+N3)*c,…,(N1+N2+…+N8)*c。与每个VM均遭受最坏的时延的原始轮询顺序处理模式相比,我们的方法可以为具有不同要求的VM提供分层的最坏延迟保证。这将有助于服务提供商根据租户的延迟敏感性制定更灵活的服务协议和策略。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
如图2所示,我们根据优先级将VM分为8类。在数据路径上,所有VM的数据结构都放置在新建的虚拟队列中,这些队列仅作为调度的依据,而不是真正参与数据通路。我们总共划分了两种队列:等待队列和就绪队列。为了保障高优先级的VM转发任务不会无限制地执行,从而阻塞低优先级VM,我们为所有VM的限速令牌桶设置了同一个阈值,该阈值为平均一次批处理能转发的数据包或字节数量,低于该阈值的VM将被放置在等待队列中;只有高于阈值的VM才会根据其优先级置于就绪队列中。这样做的好处是能够保证转发的高效性和避免高优先级VM一直占用PMD线程执行批处理任务。因此,在设置了阈值以后,vSwitch的PMD线程仅需要按优先级轮询在就绪队列中VM即可,而不需要去管等待队列中的VM。
在就绪队列中,为保证高优先级队列具有绝对执行特权,对于优先级为N的队列中的VM,只有在所有优先级更高的N-1个队列中都没有VM时才会被执行批处理操作。在这种情况下,PMD线程轮询每个队列并严格按照优先级执行批处理。例如,在图2中所示的情况下,VM2将首先出队并被转发一批数据包(一批为若干个数据包,默认是32个,具体的数目由使用时确定。以上内容中的“批处理”就是指一次性处理一批数据包),因为它具有最高优先级。而批处理结束后,VM2可能会因为剩余令牌没有达到阈值,因此将其放入等待队列。为了确保同一队列中VM转发任务执行顺序的公平性,我们的方法在每个虚拟队列中均遵循先进先出(FIFO)策略。
在实现过程中,PMD线程之外还需要一个额外的管理线程,定期去计算每个VM的令牌桶中令牌数是否达到阈值,如果达到则将其调回对应的就绪队列中排队等待。该令牌的阈值我们在实验中的经验得到设置1-2个批处理能转发的数据包数目或字节数最合适。
因此,在vSwitch中采用了该方法来替代轮询模式下的无差别执行,可以显著为VM带来不同的最差时延保障。
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提出了一种虚拟交换机中保障层次化时延的转发任务调度系统,其中包括:
模块1,用于为同一台服务器中各虚拟机分配转发任务调度的优先级,并根据该服务器中虚拟交换机的批处理能力,为各虚拟机的限速令牌桶设置一个阈值,构建各优先级对应的优先级队列;
模块2,用于根据优先级从高往低的顺序依次从各优先级队列中取出以虚拟机为单位的数据集合交由该虚拟交换机进行一批数据包的转发,判断该数据集合中的令牌数是否大于该阈值,若是则将数据集合写回于其对应的优先级队列,否则将数据集合放入等待队列中;
模块3,用于监测该等待队列中各数据集合中的令牌数,将该等待队列中令牌数大于该阈值的数据集合迁移至其对应的优先级队列。
所述的虚拟交换机中保障层次化时延的转发任务调度系统,其中包括:获取数据集合中令牌数目,判断该令牌数是否大于该阈值,若是则根据其优先级将该数据集合放入对应的优先级队列中,否则将该数据集合放入等待队列中。
所述的虚拟交换机中保障层次化时延的转发任务调度系统,其中该阈值为平均一次批处理能转发的数据包或字节数量。
所述的虚拟交换机中保障层次化时延的转发任务调度系统,其中每个该虚拟机的优先级由服务提供商确定。
所述的虚拟交换机中保障层次化时延的转发任务调度系统,其中每个优先级队列和等待队列中,数据集合按照先进先出的原则排序。
Claims (10)
1.一种虚拟交换机中保障层次化时延的转发任务调度方法,其特征在于,包括:
步骤1、为同一台服务器中各虚拟机分配转发任务调度的优先级,并根据该服务器中虚拟交换机的批处理能力,为各虚拟机的限速令牌桶设置一个阈值,构建各优先级对应的优先级队列;
步骤2、根据优先级从高往低的顺序依次从各优先级队列中取出以虚拟机为单位的数据集合交由该虚拟交换机进行一批数据包的转发,判断该数据集合中的令牌数是否大于该阈值,若是则将数据集合写回于其对应的优先级队列,否则将数据集合放入等待队列中;
步骤3、监测该等待队列中各数据集合中的令牌数,将该等待队列中令牌数大于该阈值的数据集合迁移至其对应的优先级队列。
2.如权利要求1虚拟交换机中保障层次化时延的转发任务调度方法,其特征在于,包括:获取数据集合中令牌数目,判断该令牌数是否大于该阈值,若是则根据其优先级将该数据集合放入对应的优先级队列中,否则将该数据集合放入等待队列中。
3.如权利要求1虚拟交换机中保障层次化时延的转发任务调度方法,其特征在于,该阈值为平均一次批处理能转发的数据包或字节数量。
4.如权利要求1虚拟交换机中保障层次化时延的转发任务调度方法,其特征在于,每个该虚拟机的优先级由服务提供商确定。
5.如权利要求1虚拟交换机中保障层次化时延的转发任务调度方法,其特征在于,每个优先级队列和等待队列中,数据集合按照先进先出的原则排序。
6.一种虚拟交换机中保障层次化时延的转发任务调度系统,其特征在于,包括:
模块1,用于为同一台服务器中各虚拟机分配转发任务调度的优先级,并根据该服务器中虚拟交换机的批处理能力,为各虚拟机的限速令牌桶设置一个阈值,构建各优先级对应的优先级队列;
模块2,用于根据优先级从高往低的顺序依次从各优先级队列中取出以虚拟机为单位的数据集合交由该虚拟交换机进行一批数据包的转发,判断该数据集合中的令牌数是否大于该阈值,若是则将数据集合写回于其对应的优先级队列,否则将数据集合放入等待队列中;
模块3,用于监测该等待队列中各数据集合中的令牌数,将该等待队列中令牌数大于该阈值的数据集合迁移至其对应的优先级队列。
7.如权利要求1所述的虚拟交换机中保障层次化时延的转发任务调度系统,其特征在于,包括:获取数据集合中令牌数目,判断该令牌数是否大于该阈值,若是则根据其优先级将该数据集合放入对应的优先级队列中,否则将该数据集合放入等待队列中。
8.如权利要求1所述的虚拟交换机中保障层次化时延的转发任务调度系统,其特征在于,该阈值为平均一次批处理能转发的数据包或字节数量。
9.如权利要求1所述的虚拟交换机中保障层次化时延的转发任务调度系统,其特征在于,每个该虚拟机的优先级由服务提供商确定。
10.如权利要求1所述的虚拟交换机中保障层次化时延的转发任务调度系统,其特征在于,每个优先级队列和等待队列中,数据集合按照先进先出的原则排序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011405138.1A CN112671832A (zh) | 2020-12-03 | 2020-12-03 | 虚拟交换机中保障层次化时延的转发任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011405138.1A CN112671832A (zh) | 2020-12-03 | 2020-12-03 | 虚拟交换机中保障层次化时延的转发任务调度方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112671832A true CN112671832A (zh) | 2021-04-16 |
Family
ID=75401012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011405138.1A Pending CN112671832A (zh) | 2020-12-03 | 2020-12-03 | 虚拟交换机中保障层次化时延的转发任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112671832A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113067778A (zh) * | 2021-06-04 | 2021-07-02 | 新华三半导体技术有限公司 | 一种流量管理方法及流量管理芯片 |
CN116483544A (zh) * | 2023-06-15 | 2023-07-25 | 阿里健康科技(杭州)有限公司 | 任务处理方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035732A (zh) * | 2010-11-25 | 2011-04-27 | 华为技术有限公司 | 业务调度方法及装置 |
CN106789721A (zh) * | 2017-03-24 | 2017-05-31 | 深圳市吉祥腾达科技有限公司 | 一种基于令牌桶的智能qos方法及系统 |
CN109246031A (zh) * | 2018-11-01 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种交换机端口流量排队方法和装置 |
CN111512602A (zh) * | 2017-12-31 | 2020-08-07 | 华为技术有限公司 | 一种发送报文的方法、设备和系统 |
-
2020
- 2020-12-03 CN CN202011405138.1A patent/CN112671832A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035732A (zh) * | 2010-11-25 | 2011-04-27 | 华为技术有限公司 | 业务调度方法及装置 |
CN106789721A (zh) * | 2017-03-24 | 2017-05-31 | 深圳市吉祥腾达科技有限公司 | 一种基于令牌桶的智能qos方法及系统 |
CN111512602A (zh) * | 2017-12-31 | 2020-08-07 | 华为技术有限公司 | 一种发送报文的方法、设备和系统 |
CN109246031A (zh) * | 2018-11-01 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种交换机端口流量排队方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113067778A (zh) * | 2021-06-04 | 2021-07-02 | 新华三半导体技术有限公司 | 一种流量管理方法及流量管理芯片 |
CN116483544A (zh) * | 2023-06-15 | 2023-07-25 | 阿里健康科技(杭州)有限公司 | 任务处理方法、装置、计算机设备和存储介质 |
CN116483544B (zh) * | 2023-06-15 | 2023-09-19 | 阿里健康科技(杭州)有限公司 | 任务处理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sharma et al. | Programmable calendar queues for high-speed packet scheduling | |
US11805065B2 (en) | Scalable traffic management using one or more processor cores for multiple levels of quality of service | |
US7986706B2 (en) | Hierarchical pipelined distributed scheduling traffic manager | |
EP1774714B1 (en) | Hierarchal scheduler with multiple scheduling lanes | |
US9019826B2 (en) | Hierarchical allocation of network bandwidth for quality of service | |
US7836195B2 (en) | Preserving packet order when migrating network flows between cores | |
WO2022068697A1 (zh) | 任务调度方法及装置 | |
CN110214436B (zh) | 一种多核无锁速率限制装置和方法 | |
CN112671832A (zh) | 虚拟交换机中保障层次化时延的转发任务调度方法及系统 | |
US20160028643A1 (en) | Arbitration of multiple-thousands of flows for convergence enhanced ethernet | |
Li et al. | Prioritizing soft real-time network traffic in virtualized hosts based on xen | |
Lin et al. | {RingLeader}: efficiently Offloading {Intra-Server} Orchestration to {NICs} | |
WO2017151236A1 (en) | Traffic shaper with policer(s) and adaptive timers | |
Behnke et al. | Towards a real-time IoT: Approaches for incoming packet processing in cyber–physical systems | |
CN111756586B (zh) | 一种数据中心网络中基于优先级队列的公平带宽分配方法、交换机及可读存储介质 | |
JP2023502796A (ja) | マルチコアシステムオンチップ処理アーキテクチャーにおいてデータを処理する方法、マルチコアシステムオンチップデバイス及び記憶媒体 | |
Zhang et al. | Performance management challenges for virtual network functions | |
JP7331374B2 (ja) | リソース管理装置およびリソース管理方法 | |
Yang et al. | C2QoS: CPU-Cycle based network QoS strategy in vswitch of public cloud | |
Runge et al. | Low latency network traffic processing with commodity hardware | |
CN114884823A (zh) | 流量拥塞控制方法、装置、计算机可读介质及电子设备 | |
EP1774721B1 (en) | Propagation of minimum guaranteed scheduling rates | |
US20230401109A1 (en) | Load balancer | |
US11971830B2 (en) | Efficient queue access for user-space packet processing | |
Munikar et al. | Prism: Streamlined packet processing for containers with flow prioritization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210416 |
|
WD01 | Invention patent application deemed withdrawn after publication |