CN115048206A - 资源调度方法及服务器 - Google Patents

资源调度方法及服务器 Download PDF

Info

Publication number
CN115048206A
CN115048206A CN202210972195.0A CN202210972195A CN115048206A CN 115048206 A CN115048206 A CN 115048206A CN 202210972195 A CN202210972195 A CN 202210972195A CN 115048206 A CN115048206 A CN 115048206A
Authority
CN
China
Prior art keywords
virtual network
scheduling
target
network element
network elements
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.)
Granted
Application number
CN202210972195.0A
Other languages
English (en)
Other versions
CN115048206B (zh
Inventor
王盟
张鹏宇
贾云杉
李陛毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210972195.0A priority Critical patent/CN115048206B/zh
Publication of CN115048206A publication Critical patent/CN115048206A/zh
Application granted granted Critical
Publication of CN115048206B publication Critical patent/CN115048206B/zh
Priority to US18/171,250 priority patent/US20240054021A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种资源调度方法及服务器,该方法应用于处于用户态的调度组件,包括:在目标调度时间获取多个虚拟网元各自对应的空闲时间点,空闲时间点对应于虚拟网元中的工作线程轮询不到负载任务的时间点;根据目标调度时间与多个虚拟网元各自对应的空闲时间点的时间差,确定多个虚拟网元的负载状态;根据多个虚拟网元的负载状态,确定多个虚拟网元的计算资源调度信息;将计算资源调度信息发送至服务器的内核,以通过处于内核态的调度类函数完成计算资源调度信息对应的资源调度处理。本方案的资源调度方法可以兼容多个实现方式不同的虚拟网元,对多个虚拟网元对应的计算资源进行即时调度,以提高计算资源的利用率。

Description

资源调度方法及服务器
技术领域
本发明涉及通信技术领域,尤其涉及一种资源调度方法及服务器。
背景技术
随着网络功能虚拟化(Network Function Virtualization,简称NFV)的发展,越来越多的通信网元可通过部署在服务器中的软件程序来实现其对应的功能,比如:基于部署在服务器中的虚拟基站程序,可以以软件的形式运行基带功能。
在服务器中部署虚拟基站等虚拟网元,可以降低硬件成本,实现灵活部署。但是,在实际应用中,以虚拟基站为例,虚拟基站往往与其他应用程序隔离部署,独占使用基于负载峰值确定出的CPU等计算资源数量,从而导致服务器中的虚拟基站部署面临着CPU资源利用率低的问题。
而且,现有的优化虚拟基站的CPU资源利用率的方案中,通常需要修改虚拟基站的程序代码,难度大且对于多种不同厂商的虚拟基站程序不具有普适性,因为一个服务器中可能部署不同厂商提供的虚拟基站,其实现方式各有不同。
发明内容
本发明实施例提供一种资源调度方法及服务器,用以兼容多个实现方式不同的虚拟网元,对多个虚拟网元对应的计算资源进行即时调度,以提高计算资源的利用率。
第一方面,本发明实施例提供一种资源调度方法,应用于处于用户态的调度组件,所述调度组件设于包含多个虚拟网元的服务器中,所述方法包括:
在目标调度时间获取所述多个虚拟网元各自对应的空闲时间点,所述空闲时间点对应于虚拟网元中的工作线程轮询不到负载任务的时间点;
根据所述目标调度时间与所述多个虚拟网元各自对应的空闲时间点的时间差,确定所述多个虚拟网元的负载状态;
根据所述多个虚拟网元的负载状态,确定所述多个虚拟网元的计算资源调度信息;
将所述计算资源调度信息发送至所述服务器的内核,以通过处于内核态的调度类函数完成所述计算资源调度信息对应的资源调度处理。
第二方面,本发明实施例提供一种资源调度装置,应用于处于用户态的调度组件,所述调度组件设于包含多个虚拟网元的服务器中,所述装置包括:
获取模块,用于在目标调度时间获取所述多个虚拟网元各自对应的空闲时间点,所述空闲时间点对应于虚拟网元中的工作线程轮询不到负载任务的时间点;
处理模块,用于根据所述目标调度时间与所述多个虚拟网元各自对应的空闲时间点的时间差,确定所述多个虚拟网元的负载状态;根据所述多个虚拟网元的负载状态,确定所述多个虚拟网元的计算资源调度信息;
发送模块,用于将所述计算资源调度信息发送至所述服务器的内核,以通过处于内核态的调度类函数完成所述计算资源调度信息对应的资源调度处理。
第三方面,本发明实施例提供一种服务器,包括:处于用户态的调度组件、处于内核态的调度类函数、多个虚拟网元以及多个计算资源;
所述调度组件用于:在目标调度时间获取所述多个虚拟网元各自对应的空闲时间点,所述空闲时间点对应于虚拟网元中的工作线程轮询不到负载任务的时间点;根据所述目标调度时间与所述多个虚拟网元各自对应的空闲时间点的时间差,确定所述多个虚拟网元的负载状态;根据所述多个虚拟网元的负载状态,确定所述多个虚拟网元的计算资源调度信息;将所述计算资源调度信息发送至所述服务器的内核,以通过处于内核态的所述调度类函数完成所述计算资源调度信息对应的资源调度处理。
第四方面,本发明实施例提供一种资源调度方法,应用于处于用户态的调度组件,所述调度组件设于包含多个虚拟基站的服务器中,所述多个虚拟基站中包括多个分布式单元,所述方法包括:
在目标调度时间获取所述多个分布式单元各自对应的空闲时间点,所述空闲时间点对应于分布式单元中的工作线程轮询不到负载任务的时间点;
根据所述目标调度时间与所述多个分布式单元各自对应的空闲时间点的时间差,确定所述多个分布式单元的负载状态;
根据所述多个分布式单元的负载状态,确定所述多个分布式单元的计算资源调度信息;
将所述计算资源调度信息发送至所述服务器的内核,以通过处于内核态的调度类函数完成所述计算资源调度信息对应的资源调度处理。
第五方面,本发明实施例提供一种资源调度方法,应用于处于用户态的调度组件,所述调度组件设于包含多个虚拟基站的服务器中,所述多个虚拟基站中包括多个分布式单元,所述方法包括:
根据车载终端与虚拟基站的对应关系,将所述车载终端触发的行驶数据处理任务存入相应虚拟基站的分布式单元所对应的任务队列中;
在目标调度时间获取所述多个分布式单元各自对应的空闲时间点,所述空闲时间点对应于分布式单元中的工作线程在相应任务队列中轮询不到行驶数据处理任务的时间点;
根据所述目标调度时间与所述多个分布式单元各自对应的空闲时间点的时间差,确定所述多个分布式单元的负载状态;
根据所述多个分布式单元的负载状态,确定所述多个分布式单元的计算资源调度信息;
将所述计算资源调度信息发送至所述服务器的内核,以通过处于内核态的调度类函数完成所述计算资源调度信息对应的资源调度处理,以使所述多个分布式单元基于资源调度处理后的计算资源对接收到的行驶数据处理任务进行处理。
本发明实施例提供的资源调度方案,可以用于对服务器中部署的多个虚拟网元进行所使用计算资源的分配调度。为实现该调度方案,在服务器中需要设置两个主要功能模块:位于用户态的调度组件,以及位于内核态的调度类函数。其中,调度组件相当于是决策者,用于确定资源调度结果,而调度类函数相当于是执行者,用于按照资源调度结果执行相应的资源分配处理。
具体地,在本发明实施例中,处于用户态的调度组件可以周期性地对多个虚拟网元对应的计算资源进行调度,首先,在目标调度时间获取进行资源调度的调度指标,即多个虚拟网元各自对应的空闲时间点。其中,空闲时间点对应于虚拟网元中的工作线程轮询不到负载任务的时间点,多个虚拟网元可以包括实现方式不同的同一种对时延敏感的虚拟网元,比如:不同厂商提供的虚拟基站。实现方式不同的虚拟网元是会具有一些共性的,比如这些虚拟网元都是通过多工作线程轮询任务队列(如一个虚拟网元对应有一个任务队列)的方式在工作,并且在轮询不到负载任务的时候都会执行相似的处理。基于这些共性,本发明实施例中,在调度组件中实现了能够在任一虚拟网元中的工作线程在轮询不到负载任务时记录相应的时间点为空闲时间点的功能,基于该功能,不需要对各虚拟网元的程序代码进行修改,调度组件便可以感知各虚拟网元的负载状态,实现简单、普适性程度高。另外,由于调度组件可以周期性轮询各虚拟网元的负载状态,而且调度组件和多个虚拟网元作为应用程序都处于用户态,交互速度快,且进行交互时交互信息为多个虚拟网元各自对应的空闲时间点,信息量少,因此,调度组件在调度过程中的通信开销、计算开销都比较小,可以实现高效地调度处理,以便实现计算资源在更小的时间粒度上被调度,从而有助于提高服务器中计算资源的利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种资源调度方法的流程图;
图2为本发明实施例提供的一种服务器的结构示意图;
图3为本发明实施例提供的另一种资源调度方法的流程图;
图4为本发明实施例提供的另一种资源调度方法的流程图;
图5为本发明实施例提供的多个虚拟网元与调度组件的示意图;
图6为本发明实施例提供的另一种资源调度方法的流程图;
图7为本发明实施例提供的虚拟基站的结构示意图;
图8为本发明实施例提供的另一种资源调度方法的流程图;
图9为本发明实施例提供的资源调度方法的场景示意图;
图10为本发明实施例提供的一种资源调度装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
随着网络功能虚拟化(Network Function Virtualization,简称NFV)的发展,越来越多的通信网元以软件程序的形式部署在服务器中,这样不仅可以降低硬件成本,还可以实现灵活部署,为用户提供符合其需求的服务。服务器内部署的虚拟网元中,存在一些对时延敏感的虚拟网元,比如:虚拟基站等,为满足其对时延的要求,在部署时,这些虚拟网元通常独占使用较多数量的计算资源(比如CPU等),以确保其具有足够的算力能够及时处理对时延敏感的负载任务,但这会导致其对应的计算资源的利用率较低。因此,对多个对时延敏感的虚拟网元对应的计算资源进行调度是必要的。
为了便于理解,本实施例以计算资源为CPU为例进行说明,实际应用中,计算资源也可以是GPU、FPGA、各种计算芯片等计算资源,本实施例对此不做限制。
需要说明的是,本实施例中的多个对时延敏感的虚拟网元(以下简称为多个虚拟网元)是指服务器中运行的实现方式相同或不同的同一种功能的虚拟网元,比如,由不同厂商提供的多个虚拟基站,不同的实现方式主要体现为不同厂商提供的虚拟基站的程序代码不同。
实际应用中,多个虚拟网元实现方式上差异,会使得难以对多个虚拟网元对应的CPU进行统一调度。具体体现在,在进行资源调度时,若基于粗时间粒度的调度指标(比如:CPU利用率等),对实现方式不同的虚拟网元进行统一调度,会由于这些调度指标对应的时间粒度较大即这些指标难以反映出虚拟网元实时的负载情况,从而使得虚拟网元的资源调度实时性较差,不利于提高计算资源的利用率。而细时间粒度调度指标,比如:队列长度、任务耗时、任务期限等,需要修改虚拟网元的应用程序才能获取到,但是对于实现方式不同的虚拟网元,对应需要修改的内容也是不同的,因此,某一资源调度方案通常是针对某种实现方式的虚拟网元的,难以迁移到其他实现方式的虚拟网元,不具有普适性(或者说兼容性差)。
但是,可以理解的是,同一种虚拟网元,虽然在实现方式上具有多样性,但在实际运行中仍存在一些共性,比如:每个虚拟网元在运行时都对应有多个工作线程;每个工作线程循环的从该虚拟网元对应的任务队列中轮询负载任务;当某一工作线程没有从任务队列中轮询到负载任务时,该工作线程会调用某些系统调用函数以释放占用的计算资源,等等。
本发明实施例,基于多个虚拟网元在实现方式上存在的共性,确定了新的用于调度多个虚拟网元对应的CPU的方案,在该方案中引入了一种新的调度指标:多个虚拟网元各自对应的空闲时间点。其中,从概念含义角度来说,空闲时间点对应于虚拟网元中的工作线程轮询不到负载任务的时间点。
针对空闲时间点,基于虚拟网元的实际运行方式展开来说:假设厂商A的虚拟网元A对应有两个工作线程,分别为工作线程1和工作线程2,虚拟网元A对应的任务队列A中当前有两个负载任务,分别为负载任务1和负载任务2。假设在t1时刻,工作线程1轮询到了负载任务1,工作线程2轮询到了负载任务2,然后,工作线程1利用占用的CPU-1执行负载任务1,工作线程2利用占用的CPU-2执行负载任务2。
假设在t2时刻,工作线程1执行完了负载任务1,工作线程2仍在执行负载任务2,此时,工作线程1会再次轮询任务队列A,若在t1时刻至t2时刻之间,任务队列A中并没有增加新的负载任务,则工作线程1轮询不到负载任务。本实施例中,将工作线程轮询不到负载任务的时间点称为空闲时间点,则虚拟网元A对应有一个空闲时间点t2。
假设在t3时刻,工作线程2执行完了负载任务2,与工作线程1类似,工作线程2会再次轮询任务队列A,若在t2时刻至t3时刻之间,任务队列A中仍没有增加新的负载任务,则工作线程2也轮询不到负载任务,虚拟网元A对应有一个新的空闲时间点t3。本实施例中,将某一虚拟网元的各个工作线程对应的轮询不到负载任务的时间点,统称为该虚拟网元对应的空闲时间点。
由于虚拟网元的多个工作线程会循环的从虚拟网元的任务队列中轮询负载任务,因此,虚拟网元在工作的过程中,会根据任务队列中的负载任务情况不断的产生空闲时间点。空闲时间点对应于工作线程轮询不到任务的时间点,在空闲时间点,该工作线程对应的CPU并未执行任务,可以被安全调度而不会导致程序崩溃。
提出该空闲时间点的目的是:能够基于该调度指标更细粒度地来度量虚拟网元的负载情况,并且,屏蔽不同虚拟网元的代码实现层面的差异,实现对多个虚拟网元的统一、安全调度。
为便于理解,首先介绍不同实现方式的虚拟网元在代码实现层面上呈现出的一种差异性:虚拟网元在其某个工作线程轮询不到负载任务时,通过执行程序代码中写明的某种系统调用函数(比如sleep函数、sem-wait函数等)而释放该工作线程所占用的CPU。但是,不同实现方式的虚拟网元对上述执行逻辑的代码实现方式是不同的,比如调用的系统调用函数是不同的。另外,时延敏感的虚拟网元在执行任务时,是不允许任务被中断的,若任务被强行中断则可能会导致虚拟网元的程序无法运行,因此,在对虚拟网元进行CPU调度时,需要确保进行调度的时间点是“安全”的,即在其没有新的任务需要执行的时候进行调度。而在不修改源代码的前提下,很难检测虚拟网元中某个工作线程是否在某个时间执行负载任务,因此如何在不修改代码的前提下找到安全的调度点是一项很必要但又很困难的工作。
基于此,为了实现对多个虚拟网元进行CPU的即时统一的调度,需要保证选取的调度指标(即空闲时间点)能够从外部获取,即不修改各虚拟网元的程序代码便可以感知到空闲时间点的产生。而该外部,在本发明实施例中,是指位于用户态的调度组件。
综上,空闲时间点可以作为调度组件调度多个虚拟网元所占用CPU的调度指标。
基于空闲时间点这一调度指标,本实施例提供了一种能够兼容多种实现方式的虚拟网元的资源调度方法,利用该资源调度方法,能够实现对多个虚拟网元对应的计算资源的即时调度,有效提高服务器中计算资源的利用率。需要说明的是,本资源调度方案同样适用于多个虚拟网元是同一实现方式的情形,也适用于对时延要求较低的虚拟网元。
以下结合具体实施例对本方案的资源调度方法进行详细说明。
图1为本发明实施例提供的一种资源调度方法的流程图,如图1所示,该方法包括如下步骤:
101、在目标调度时间获取多个虚拟网元各自对应的空闲时间点,空闲时间点对应于虚拟网元中的工作线程轮询不到负载任务的时间点。
102、根据目标调度时间与多个虚拟网元各自对应的空闲时间点的时间差,确定多个虚拟网元的负载状态。
103、根据多个虚拟网元的负载状态,确定多个虚拟网元的计算资源调度信息。
104、将计算资源调度信息发送至服务器的内核,以通过处于内核态的调度类函数完成计算资源调度信息对应的资源调度处理。
本实施例提供的资源调度方法,应用于处于用户态的调度组件,该调度组件设于包含多个虚拟网元的服务器中,该服务器可以为中心云或边缘云中的云服务器。实际应用中,该服务器中除了可以部署有多个虚拟网元这种应用程序外,还可以部署第三方应用程序,其中可以包括对虚拟网元收发的数据进行其他计算处理的应用程序,比如,若虚拟网元接收到的是车载终端感知的环境或行驶数据,则第三方应用程序中可以包括用于对该环境数据进行特征识别的AI应用程序。
图2为本发明实施例提供的一种服务器的结构示意图。如图2所示,该服务器包括:调度组件、对时延敏感的多个虚拟网元(虚拟网元1,虚拟网元2,…,虚拟网元K)、调度类函数和多个计算资源(CPU-1,CPU-2,…,CPU-m)。
实际应用中,服务器的操作系统作为硬件之上直接运行的基础软件,直接控制和管理服务器中的计算资源。通常服务器操作系统的体系架构可分为用户态和内核态(也可称为用户空间和内核),其中,内核用于控制服务器的计算资源,并为应用程序提供运行环境;用户态中运行有各种应用程序,依托于内核提供的计算资源,应用程序得以运行并实现对应的功能。
如图2所示,本实施例中,调度组件和多个虚拟网元作为应用程序处于用户态,调度类函数包含于内核中处于内核态。其中,调度组件相当于是决策者,用于确定资源调度结果,而调度类函数相当于是执行者,用于按照资源调度结果执行相应的资源分配处理。
在通过调度组件对多个虚拟网元对应的计算资源进行调度时,概括来说,首先,要获取调度指标,即多个虚拟网元各自对应的空闲时间点;然后,基于空闲时间点,确定多个虚拟网元的负载状态;之后,确定与多个虚拟网元的负载状态匹配的计算资源调度方案,并由内核执行该调度方案。
可选地,可按照预先设定的调度周期,在目标调度时间获取多个虚拟网元各自对应的空闲时间点。其中,调度周期可根据服务器中实际部署的虚拟网元情况进行设置,目标调度时间可以理解为当前调度周期的开始时间。在每个调度周期,调度组件可以轮询获得每个虚拟网元当前对应的空闲时间点。
可选地,根据服务器中运行的虚拟网元的数量,或者虚拟网元对时延的敏感程度,确定调度周期。比如:若服务器中运行的虚拟网元数量较多,则设置较小的调度周期,或者,若虚拟网元对时延的敏感程度较高,则设置较小的调度周期,以及时的为各虚拟网元调度计算资源,避免负载任务由于资源不足而产生较大的延迟。
本实施例中,在目标调度时间获取的某一虚拟网元X的空闲时间点,实际上是从虚拟网元X对应的空闲时间点中确定出的靠近目标调度时间的空闲时间点,也可理解为虚拟网元X产生的最新的空闲时间点。
在目标调度时间,调度组件通过轮询、遍历等方式获取多个虚拟网元各自对应的最新的空闲时间点后,进一步地,根据目标调度时间与多个虚拟网元各自对应的最新的空闲时间点的时间差,确定多个虚拟网元的负载状态。若虚拟网元处于高负载状态,则为其增加计算资源;若虚拟网元处于低负载状态,则减少其占用的计算资源,从而,确定多个虚拟网元的计算资源调度信息。
之后,将计算资源调度信息发送给服务器内核。服务器的内核中包含有调度类函数,通过该调度类函数能够将计算资源调度信息转化为内核可执行的信息,进而内核根据该可执行信息为多个虚拟网元进行计算资源调度。
综上,本实施例中,在调度组件中实现了能够在任一虚拟网元中的工作线程在轮询不到负载任务时记录相应的时间点为空闲时间点的功能,基于该功能,不需要对各虚拟网元的程序代码进行修改,调度组件便可以感知各虚拟网元的负载状态,实现简单、普适性程度高。另外,由于调度组件可以周期性轮询各虚拟网元的负载状态,而且调度组件和多个虚拟网元作为应用程序都处于用户态,交互速度快,且进行交互时交互信息为多个虚拟网元各自对应的空闲时间点,信息量少,因此,调度组件在调度过程中的通信开销、计算开销都比较小,可以实现高效地调度处理,以便实现计算资源在更小的时间粒度上被调度,从而有助于提高服务器中计算资源的利用率。
图3为本发明实施例提供的另一种资源调度方法的流程图,应用于如图2所示的服务器中的调度组件,如图3所示,该方法包括如下步骤:
301、针对多个虚拟网元中的目标虚拟网元,根据目标虚拟网元中的第一系统调用函数,通过设定指令将第一系统调用函数映射为在调度组件中实现的第二系统调用函数,以使目标虚拟网元中工作线程轮询不到负载任务时调用第二系统调用函数;其中,目标虚拟网元为多个虚拟网元中任一个。
302、响应于第二系统调用函数被调用,通过第二系统调用函数记录空闲时间点;在目标调度时间,从记录的目标虚拟网元对应的空闲时间点中确定靠近目标调度时间的空闲时间点。
303、根据目标调度时间与多个虚拟网元各自对应的靠近目标调度时间的空闲时间点的时间差,确定多个虚拟网元的负载状态。
304、根据多个虚拟网元的负载状态,确定多个虚拟网元的计算资源调度信息。
305、将计算资源调度信息发送至服务器的内核,以通过处于内核态的调度类函数完成计算资源调度信息对应的资源调度处理。
本实施例中,基于步骤301和步骤302,对调度组件在目标调度时间,获取多个虚拟网元各自对应的靠近目标调度时间的空闲时间点的过程进行详细说明。步骤303至步骤305中的具体过程可参考前述实施例,本实施例中,不再进行赘述。
实际应用中,获取多个虚拟网元中任一个虚拟网元对应的靠近目标调度时间的空闲时间点的过程是类似的,本实施例中,以多个虚拟网元中的一个虚拟网元(即目标虚拟网元)为例,进行说明。
步骤301中,第一系统调用函数可以理解为目标虚拟网元中原本设置的系统调用函数,也就是上文中所说的虚拟网元的程序代码中写明的在工作线程轮询不到负载任务时所调度的系统调用函数(内部系统调用函数),目标虚拟网元中的任一工作线程在轮询不到负载任务时调用该第一系统调用函数。
可选地,将第一系统调用函数映射为调度组件中实现的第二系统调用函数(外部系统调用函数)的设定指令,可基于环境变量LD_PRELOAD实现,不以此为限。具体地,基于LD_PRELOAD将工作线程轮询不到负载任务时调用的第一系统调用函数的链接重定向(即映射)为第二系统调用函数,以使得目标虚拟网元中的工作线程在轮询不到负载任务时,基于该链接调用调度组件中实现的第二系统调用函数,而不是目标虚拟网元中原本设置的第一系统调用函数。
为了便于理解,举例来说,假设在t1时刻,多个虚拟网元中的虚拟网元X对应的工作线程i没有从虚拟网元X的任务队列X中轮询到负载任务。基于虚拟网元X的原本设置,t1时刻,工作线程i会调用虚拟网元X中的系统调用函数(即第一系统调用函数)。但是,由于本实施例中,通过设定指令将第一系统调用函数映射为了在调度组件中实现的第二系统调用函数,因此,在t1时刻,工作线程i实际上调用的是第二系统调用函数。由于第二调用函数在调度组件中实现,调度组件可以通过第二调用函数记录虚拟网元X的空闲时间点(在该举例中,该空闲时间点由工作线程i产生)。
另外,针对第二系统调用函数,可选地,假设第一系统调用函数为sleep函数,即名称为sleep,则第二系统调用函数的函数名仍旧可以为sleep,只是函数体与第一系统调用函数不同。在第二系统调用函数的函数体中,可以写有一种自定义设定的系统调用函数,该函数可以实现挂起产生空闲时间点的工作线程,释放其占用的CPU的功能。其中,工作线程的挂起,相当于暂停该工作线程的使用,不让该工作线程继续空轮询任务队列。
可以理解的是,每当虚拟网元X中存在工作线程轮询不到负载任务时,调度组件都会记录虚拟网元X的空闲时间点。在虚拟网元X运行的过程中,调度组件可能记录了虚拟网元X的多个空闲时间点,比如:工作线程i轮询不到负载任务时对应的空闲时间点t1,工作线程j轮询不到负载任务时对应的空闲时间点t3,工作线程k轮询不到负载任务时对应的空闲时间点t5等。
本实施例中,若目标调度时间为t6,而t5为距离t6最近的空闲时间点,则在目标调度时间t6获取虚拟网元X对应的空闲时间点t5。
在实际应用中,不同实现方式的虚拟网元中的系统调用函数可能存在差别,针对服务器中的多个虚拟网元,可通过设定指令确定各虚拟网元的内部系统调用函数与调度组件中实现的第二系统调用函数之间的映射关系,以使调度组件兼容多个虚拟网元,能够获取到多个虚拟网元的空闲时间点。
另外,由于调度组件处于用户态,因此即使服务器中的虚拟网元发生变化,也可通过修改调度组件中的设定指令来兼容新的虚拟网元,这种修改并不会对服务器的内核产生影响,容易实现且调试方便。
可以理解的是,虚拟网元在工作过程中,各个线程分别占用相应的计算资源,比如:虚拟网元A的工作线程1占用CPU-1,虚拟网元A的工作线程2占用CPU-2等。如前文所述,若想要对多个虚拟网元对应的计算资源进行调度,则计算资源需要处于能被调度的状态,即不被占用的状态。
可选地,调度组件通过第二系统调用函数记录目标虚拟网元的空闲时间点之后,还包括:挂起目标虚拟网元中产生空闲时间点的工作线程,并释放工作线程占用的计算资源。从而,使得产生空闲时间点的工作线程所占用的计算资源处于能被调度的状态。
本实施例中,通过调度组件中实现的第二系统调用函数,能够在不修改各虚拟网元的程序代码的情况下,获取到调度指标,即各个虚拟网元在轮询不到负载任务时产生的空闲时间点,进而确定多个虚拟网元的负载状态以及计算资源调度信息,其实现方式简单、且普适性程度高,能够兼容多种实现方式相同或不同的同一种虚拟网元。
图4为本发明实施例提供的另一种资源调度方法的流程图,应用于如图2所示的服务器中的调度组件,如图4所示,该方法包括如下步骤:
401、在目标调度时间获取多个虚拟网元各自对应的空闲时间点,空闲时间点对应于虚拟网元中的工作线程轮询不到负载任务的时间点。
402、针对多个虚拟网元中的目标虚拟网元,若目标调度时间与目标虚拟网元对应的空闲时间点的时间差小于设定阈值,则确定目标虚拟网元处于低负载状态;若目标调度时间与目标虚拟网元对应的空闲时间点的时间差大于或等于设定阈值,则确定目标虚拟网元处于高负载状态;其中,目标虚拟网元为多个虚拟网元中任一个。
403、若目标虚拟网元处于低负载状态,则从目标虚拟网元当前释放的计算资源中确定减少设定数量的第一计算资源,将减少的第一计算资源写入服务器的空闲计算资源中;若目标虚拟网元处于高负载状态,则从服务器的空闲计算资源以及至少一个第三方应用程序占用的计算资源中确定为目标虚拟网元增加设定数量的第二计算资源。
404、确定多个虚拟网元的计算资源调度信息,计算资源调度信息中描述了多个虚拟网元各自对应的计算资源增减信息。
405、将计算资源调度信息发送至服务器的内核,以通过处于内核态的调度类函数完成计算资源调度信息对应的资源调度处理。
本实施例中,基于步骤402至步骤404,对调度组件在目标调度时间获取多个虚拟网元各自对应的空闲时间点后,确定多个虚拟网元的计算资源调度信息的过程进行详细说明。步骤401和步骤405中的具体过程可参考前述实施例,本实施例中,不再进行赘述。
可以理解的是,针对多个虚拟网元中的任一个虚拟网元(称为目标虚拟网元),若目标虚拟网元最新的空闲时间点与目标调度时间差值较小,则表明目标虚拟网元在目标调度时间附近,存在至少一个工作线程轮询不到负载任务,任务对列中的负载任务较少,该目标虚拟网元的负载较小。若目标虚拟网元的最新的空闲时间点与目标调度时间差值较大,则表明目标虚拟网元在目标调度时间附近,目标虚拟网元中的多个工作线程都轮询到了负载任务,任务对列中的负载任务较多,该目标虚拟网元的负载较大。
在具体实施过程中,可自定义一设定阈值,比如:30微秒,在确定目标调度时间与目标虚拟网元对应的最新的空闲时间点的时间差之后,根据时间差与设定阈值的大小关系,确定目标虚拟网元的负载状态。
可选地,用户在自定义上述设定阈值时,可根据服务器中包含的多个虚拟网元的数量(即虚拟网元总数),或者,服务器中多个虚拟网元对应的工作线程数量(即工作线程总数)来确定上述设定阈值,其中,根据每个虚拟网元中允许启动的工作线程数量以及虚拟网元数量可以得到多个虚拟网元对应的工作线程数量。可以配置调度组件将上述数量输出给用户以供用户参考进行上述阈值的设定。比如:若虚拟网元总数较多,或者工作线程总数较多,则设置一较小的设定阈值,比如:10微秒、20微秒;若虚拟网元总数较少,或者工作线程总数较少,则设置一较大的设定阈值,比如:40微秒。 实际上,上述工作线程总数、虚拟网元总数在一种较粗的粒度层面反映出虚拟网元整体的负载情况,越高的负载设置越小的阈值,可以保证计算资源被更频繁地调度,以适应时延敏感的高负载任务情形;反之,越低的负载设置越大的阈值,可以在保证计算资源及时调度与调度成本开销之间进行合理折中。
之后,若某一虚拟网元处于低负载状态,则对应的需要减少其占用的计算资源;若某一虚拟网元处于高负载状态,则对应的需要为其增加计算资源。
可以理解的是,服务器中除多个虚拟网元外,还包含有至少一个第三方应用程序,这些第三方应用程序对时延的敏感度较低,在执行任务的过程中,可以中断任务,将所占用的计算资源提供给虚拟网元使用。
因此,实际应用中,在确定多个虚拟网元的计算资源调度信息时,针对多个虚拟网元中的任一个虚拟网元(称为目标虚拟网元),具体地,若目标虚拟网元处于低负载状态,则从目标虚拟网元当前释放的计算资源中确定减少设定数量的第一计算资源,将减少的第一计算资源写入服务器的空闲计算资源中;若目标虚拟网元处于高负载状态,则从服务器的空闲计算资源以及至少一个第三方应用程序占用的计算资源中确定为目标虚拟网元增加设定数量的第二计算资源。由于目标虚拟网元中的任一个工作线程j在轮询不到负载任务时,会通过调度组件中实现的第二系统调用函数记录工作线程j产生的空闲时间点、挂起工作线程j、释放工作线程j占用的计算资源。因此,调度组件能够知晓目标虚拟网元当前释放的计算资源信息,进而当目标虚拟网元处于低负载状态时,可以从目标虚拟网元当前释放的计算资源中确定减少设定数量的第一计算资源。
上述服务器的空闲计算资源包括:多个虚拟网元在历史调度时间对应释放的且当前未再被使用的计算资源(即低负载状态时减少的计算资源,比如:虚拟网元1在低负载时减少的CPU-x,虚拟网元2在低负载时减少的CPU-y等),以及从未被任何虚拟网元使用过的计算资源。
为了便于表述,下文将多个虚拟网元在历史调度时间对应释放的且当前未再被使用的计算资源,称为多个虚拟网元在历史调度时间对应释放的第三计算资源。
由于虚拟网元在历史调度时间对应释放的计算资源中,通常会包含有对应的虚拟网元的缓存信息,比如:虚拟网元1在历史调度时间对应释放CPU-x中包含有虚拟网元1的缓存信息。可以理解的是,当CPU-x作为空闲计算资源被增加给虚拟网元1时,由于CPU-x中存在虚拟网元1的缓存信息,能够减少虚拟网元1使用CPU-x所带来的时间开销;但是,当CPU-x作为空闲计算资源被增加给虚拟网元2时,由于CPU-x中存在虚拟网元1的缓存信息,虚拟网元2需要先清除这些缓存信息再与进行相关配置,对应的时间开销大。
因此,在一可选实施例中,为目标虚拟网元增加设定数量的第二计算资源时,按照以下顺序进行增加:目标虚拟网元在历史调度时间所释放的第三计算资源、从未被任何虚拟网元使用过的计算资源、第三方应用程序占用的计算资源。可选地,该设定数量比如为1、2等设定值。
具体地,若服务器的空闲计算资源中存在目标虚拟网元在历史调度时间所释放的第三计算资源,则确定为目标虚拟网元增加的第二计算资源中包括第三计算资源。若服务器的空闲计算资源不足以提供第二计算资源,则从至少一个第三方应用程序占用的计算资源中确定第二计算资源。
展开来说,若服务器的空闲计算资源中的第三计算资源的数量大于或等于上述设定数量,则从第三计算资源中确定出设定数量的计算资源作为第二计算资源,增加给目标虚拟网元。若服务器的空闲计算资源中的第三计算资源的数量小于上述设定数量,则将第三计算资源和i个未被任何虚拟网元使用过的计算资源增加给目标虚拟网元,其中,第三计算资源的数量和i的总和等于上述设定数量。若服务器的空闲计算资源数量(包括第三计算资源和未被任何虚拟网元使用过的计算资源)小于上述设定数量,即不足以提供第二计算资源,则将服务器的空闲计算资源和j个第三方应用程序占用的计算资源增加给目标虚拟网元,其中,服务器的空闲计算资源和j的总和等于上述设定数量。
可以理解的是,服务器中包含有较多数量的计算资源,而服务器所包含的多个虚拟网元的数量以及每个虚拟网元中的工作线程的数量都是有限。因此,在实际应用中,一般地,针对某一虚拟网元Y,服务器的空闲计算资源中所包含的虚拟网元Y在历史调度时间所释放的第三计算资源以及从未被任何虚拟网元使用过的计算资源,便能够为高负载状态的虚拟网元Y提供设定数量的第二计算资源,并不需要去调用第三方应用程序所占用的计算资源,或者调用虚拟网元Y之外的其他虚拟网元在历史调度时间所释放的计算资源。
以下以虚拟网元Z为例,对虚拟网元Z减少或增加计算资源的过程进行说明。
假设在目标调度时间T之前,调度组件中维护的Z个虚拟网元对应的可用计算资源信息如表1所示。
表1 Z个虚拟网元对应的可用的计算资源信息
Figure DEST_PATH_IMAGE001
如表1所示,虚拟网元Z占用3个CPU,分别为CPU-a、CPU-b和CPU-c。假设CPU-a被虚拟网元Z的工作线程1占用,CPU-b被虚拟网元Z的工作线程2占用,CPU-c被虚拟网元Z的工作线程3占用。
假设判断虚拟网元负载状态的设定阈值为30微秒,为虚拟网元减少第一计算资源或增加第二计算资源的设定数量为1(实际应用中,减少或增加计算资源对应的设定数量可以不同),在目标调度时间T,获取到虚拟网元Z对应的空闲时间点t1,其中,空闲时间点t1为虚拟网元Z的工作线程3在轮询不到负载任务时产生。
首先,对虚拟网元Z减少设定数量的第一计算资源的过程进行说明。
若目标调度时间T与空闲时间点t1之间的时间差小于30微秒,则说明虚拟网元Z处于低负载状态,需要从虚拟网元Z当前释放的CPU中减少1个CPU,并将减少的1个CPU写入服务器的空闲计算资源中。
本实施例中,在目标调度时间T获取的虚拟网元Z的空闲时间点为虚拟网元Z对应的最新的空闲时间点,实际上,在某一时间段内,可能有不止一个工作线程未轮询到负载任务,释放了CPU。比如:虚拟网元Z的工作线程2在t0时刻也没有轮询到负载任务,产生了空闲时间点t0,释放了CPU-b,只不过由于空闲时间点t0早于空闲时间点t1,调度组件在目标调度时间T获取到的空闲时间点为空闲时间点t1,但是,实际上CPU-b和CPU-c都被释放了。
因此,基于上述假设,若虚拟网元Z当前释放的CPU只有CPU-c,则调度组件减少CPU-c,并将CPU-c写入服务器的空闲计算资源中。若虚拟网元Z当前释放的CPU有2个分别为CPU-b和CPU-c,则调度组件从CPU-b和CPU-c中减少一个CPU,比如:减少CPU-c,并将CPU-c写入服务器的空闲计算资源中。在下一个目标调度时间T1,若目标调度时间T1与T1时刻获取的虚拟网元Z的空闲时间点之间的时间差仍小于30微秒,则再减掉一个CPU,即CPU-b,并将CPU-b写入服务器的空闲计算资源中。
在目标调度时间T之后的一个目标调度时间Tm,若目标调度时间Tm与Tm时刻获取的虚拟网元Z的空闲时间点之间的时间差小于30微秒,但虚拟网元Z当前没有释放的CPU,则在目标调度时间Tm,不再执行减少虚拟网元Z的CPU的操作。
可以理解的是,若在目标调度时间T和目标调度时间Tn之间,虚拟网元Z没有产生新的空闲时间点,则在目标调度时间T,目标调度时间T1,…,以及目标调度时间Tn,获取到的虚拟网元Z的空闲时间点均为空闲时间点t1。可以理解的是,随着目标调度时间的改变,目标调度时间与空闲时间点t1之间的差值逐渐增大,当目标调度时间与空闲时间点之间的差值大于30微秒时,表明虚拟网元Z处于高负载状态,需要增加设定数量的第二计算资源。
以下对虚拟网元Z增加设定数量的第二计算资源的过程进行说明。
若目标调度时间T与空闲时间点t1之间的时间差大于或等于30微秒,则说明虚拟网元Z处于高负载状态,需要从服务器的空闲计算资源以及至少一个第三方应用程序占用的CPU中确定为虚拟网元Z增加1个CPU。
假设CPU-1是虚拟网元1在目标调度时间T释放的计算资源,CPU-10是虚拟网元2在历史调度时间释放的计算资源,CPU-d是虚拟网元Z在历史调度时间释放的计算资源,CPU-0是从未被任何虚拟网元使用过的计算资源,CPU’是第三方应用程序占用的计算资源。
基于上述设定数量为1的假设,若服务器的空闲资源中过包括:CPU-1、CPU-10、CPU-d、CPU-0,则将CPU-d增加给虚拟网元Z。若服务器的空闲资源中包括:CPU-1、CPU-10和CPU-0,则将CPU-0增加给虚拟网元Z。若服务器的空闲资源中包括:CPU-1和CPU-10,第三方应用程序占用CPU’,则将CPU’增加给虚拟网元Z。
实际应用中,可选地,可以基于目标调度时间与虚拟网元的空闲时间点之间的时间差与设定阈值之间的差异程度,设置为虚拟网元增加的第二计算资源的设定数量。比如:若目标调度时间T与虚拟网元Z的空闲时间点t1之间的时间差远大于30微秒,例如是30微秒的3倍,则可设置设定数量为3,即一次为虚拟网元Z增加3个CPU。若服务器的空闲资源中过包括:CPU-1、CPU-10、CPU-d、CPU-0,第三方应用程序占用的CPU为CPU’,则将CPU-d、CPU-0和CPU’增加给虚拟网元Z。
需要说明的是,由于虚拟网元中包含的工作线程的数量实际上有限的,每个工作线程占用一个CPU,因此,在为虚拟网元增加设定数量的CPU时,并不会因为目标调度时间与空闲时间点之间的差值大于设定阈值,而无限制的为某一虚拟网元增加CPU。当虚拟网元占用的CPU与其包含的工作线程的数量匹配时,即使目标调度时间与空闲时间点之间的差值大于设定阈值,也不会再为其增加CPU。
之后,基于多个虚拟网元各自对应的计算资源增减信息,确定多个虚拟网元的计算资源调度信息。
在一可选实施例中,前述实施例中的调度组件还用于为服务器中包含的至少一个第三方应用程序进行资源调度。
可选地,在确定多个虚拟网元的计算资源调度信息后,若服务器中存在空闲计算资源,则从服务器的空闲计算资源中确定为至少一个第三方应用程序新增的计算资源。
具体地,根据至少一个第三方应用程序的负载,在服务器的空闲计算资源中确定为至少一个第三方应用程序新增的计算资源。
可选地,若第三方应用程序对应的等待处理的任务数量和/或等待处理的数据量大于或等于设定负载阈值,则在服务器的空闲计算资源中确定为至少一个第三方应用程序新增的计算资源。
可选地,根据第三方应用程序对应的等待处理的任务数量和/或等待处理的数据量超过设定负载阈值的程度,确定从服务器的空闲计算资源中为至少一个第三方应用程序新增的计算资源目标数量;从服务器的空闲计算资源中确定目标数量的计算资源增加给对应的第三方应用程序。
之后,将多个虚拟网元的计算资源增减信息以及至少一个第三方应用程序的计算资源增加信息共同作为计算资源调度信息,发送给服务器的内核,以通过处于内核态的调度类函数完成计算资源调度信息对应的资源调度处理。
本实施例中,在当前调度时间,服务器中空闲的计算资源能够被调度给第三方应用程序使用,其中,服务器中空闲的计算资源包括处于低负载状态虚拟网元减少(即释放)的计算资源。也就是说,本实施例提供的资源调度方法,打破了原本虚拟网元需要独占使用计算资源的限制,虚拟网元对应的计算资源可以与第三方应用程序共享。虚拟网元与第三方应用程序之间的计算资源共享,能够在较大程度上提高服务器中计算资源的利用率。
在又一可选实施例中,还提供了另一种资源调度方法,该方法应用于处于用户态的调度组件,该调度组件设于包含多个虚拟网元的服务器中,该调度组件包括:多个虚拟网元各自对应的检测程序以及多个虚拟网元共享的调度程序。
图5为本发明实施例提供的多个虚拟网元与调度组件的示意图。如图5所示,每个虚拟网元各自对应有检测程序,比如:虚拟网元1对应检测程序1,虚拟网元2对应检测程序2,…,虚拟网元k对应检测程序k,k个检测程序共享一个调度程序。
其中,k个检测程序中均实现有第二系统调用函数。第二系统调用函数用于记录虚拟网元中的工作线程轮询不到负载任务的时间点,即空闲时间点,其具体实施过程可参考前述实施例,在此不再赘述。需要说明的是,k个检测程序中各自包含的第二系统调用函数并不一定相同,因为对应的不同虚拟网元中实现的第一系统调用函数不同,从而使得作为不同的第一系统调用函数的重定向结果的第二系统调用函数也不尽相同。
调度程序用于基于k个检测程序记录的虚拟网元的空闲时间点确定多个虚拟网元对应的计算资源(CPU-1,CPU-2,…,CPU-m)的调度方案。
图6为本发明实施例提供的另一种资源调度方法的流程图,应用于图6所示的调度组件,如图6所示,该方法包括如下步骤:
601、响应于第二系统调用函数被调用,目标检测程序通过第二系统调用函数记录目标虚拟网元的空闲时间点,并将空闲时间点发送至调度程序,挂起目标虚拟网元中产生空闲时间点的工作线程,并释放工作线程占用的计算资源。
其中,目标虚拟网元是多个虚拟网元中的任一个,目标检测程序为目标虚拟网元对应的检测程序。
602、在目标调度时间,调度程序从接收的目标虚拟网元对应的空闲时间点中确定靠近目标调度时间的空闲时间点。
603、调度程序根据目标调度时间与多个虚拟网元各自对应的靠近目标调度时间的空闲时间点的时间差,确定多个虚拟网元的负载状态。
604、调度程序根据多个虚拟网元的负载状态,确定多个虚拟网元的计算资源调度信息。
605、调度程序将计算资源调度信息发送至服务器的内核,以通过处于内核态的调度类函数完成计算资源调度信息对应的资源调度处理。
为了便于理解,结合图5和图6,举例来说。
假设在t1时刻,虚拟网元1中的工作线程1没有轮询到负载任务,调用了检测程序1中的第二系统调用函数,则响应于第二系统调用函数被调用,检测程序1通过其中实现的第二系统调用函数记录虚拟网元1的空闲时间点t1,并将空闲时间点t1发送至调度程序。
之后,假设在t2时刻,虚拟网元1中的工作线程a也没有轮询到负载任务,调用了检测程序1中的第二系统调用函数,则响应于第二系统调用函数被调用,检测程序1通过其中实现的第二系统调用函数记录虚拟网元1的空闲时间点t2,并将空闲时间点t2发送至调度程序。
假设目标调度时间为T,且t1和t2在目标调度时间T之前,t2更靠近目标调度时间T,则在目标调度时间T,调度程序从接收的虚拟网元1对应的空闲时间点(空闲时间点t1和空闲时间点t2)中确定靠近目标调度时间T的空闲时间点t2。
与上述过程类似地,检测程序2记录虚拟网元2的空闲时间点,并将其发送给调度程序,由调度程序在目标调度时间T,从接收的虚拟网元2对应的空闲时间点中确定靠近目标调度时间T的空闲时间点。检测程序k记录虚拟网元k的空闲时间点,并将其发送给调度程序,由调度程序在目标调度时间T,从接收的虚拟网元k对应的空闲时间点中确定靠近目标调度时间T的空闲时间点。
可选地,步骤601中,目标检测程序在记录目标虚拟网元的空闲时间点后,将目标虚拟网元的空闲时间点进行存储。之后,在目标调度时间,响应于调度组件发送的空闲时间点获取请求,将存储的目标虚拟网元对应的至少一个空闲时间点发送给调度程序,以使调度程序从接收的目标虚拟网元对应的空闲时间点中确定靠近目标调度时间的空闲时间点;或者,将存储的目标虚拟网元对应的至少一个空闲时间点中靠近目标调度时间的空闲时间点发送给调度程序。
之后,调度程序基于目标调度时间与确定出的k个虚拟网元各自对应的靠近目标调度时间的空闲时间点,确定资源调度方案。图6所示实施例中的步骤603至步骤605的具体实施过程,可参考前述实施例,本实施例中不再赘述。
需要说明的是,步骤604在具体实施过程中,涉及到当目标虚拟网元处于低负载状态时,调度程序从目标虚拟网元当前释放的计算资源中确定减少设定数量的第一计算资源。
由于本实施例中,第二系统调用函数在检测程序中实现,由检测程序挂起虚拟网元中产生空闲时间点的工作线程,并释放工作线程占用的计算资源,从而检测程序能够知晓目标虚拟网元当前释放的计算资源信息,但调度程序并不知晓目标虚拟网元当前释放的计算资源信息。因此,调度程序在从目标虚拟网元当前释放的计算资源中确定减少设定数量的第一计算资源之前,需要先获取目标虚拟网元当前释放的计算资源信息。可以理解的是,监控程序在记录某一工作线程轮询不到负载任务产生的空闲时间点之后,挂起该工作线程以及释放该工作线程占用的计算资源的执行,需要借助于内核来实现,因此,实际上,内核知道每一个计算资源的工作状态,即计算资源是否被虚拟网元的工作线程所占用。可选地,调度程序可通过与内核交互,获取目标虚拟网元当前释放的计算资源信息,进而从目标虚拟网元当前释放的计算资源中确定减少设定数量的第一计算资源。
以下以虚拟网元为虚拟基站中的分布式单元为例,对本发明实施例提供的资源调度方法进行说明。
图7为本发明实施例提供的虚拟基站的结构示意图。如图7所示,虚拟基站中包括基带处理单元(Baseband Unit,简称BBU),BBU可划分为一个集中式单元(CentralizedUnit,简称CU)和至少一个分布式单元(Distributed Unit,简称DU)。CU和DU中分别包含有多个工作线程,用于执行不同的负载任务。其中,CU对应执行的负载任务为对实时性要求低的负载任务,比如:传输娱乐影音数据等;DU对应执行的负载任务为对实时性要求高的负载任务,比如:传输车辆导航数据等。由于CU对实时性传输要求不高,所以可以将CU视为一种特殊的第三方应用程序。
图8为本发明实施例提供的另一种资源调度方法的流程图,应用于处于用户态的调度组件,调度组件设于包含多个虚拟基站的服务器中,其中,多个虚拟基站中包括多个分布式单元。如图8所示,该方法包括如下步骤:
801、在目标调度时间获取多个分布式单元各自对应的空闲时间点,空闲时间点对应于分布式单元中的工作线程轮询不到负载任务的时间点。
802、根据目标调度时间与多个分布式单元各自对应的空闲时间点的时间差,确定多个分布式单元的负载状态。
803、根据多个分布式单元的负载状态,确定多个分布式单元的计算资源调度信息。
804、将计算资源调度信息发送至服务器的内核,以通过处于内核态的调度类函数完成计算资源调度信息对应的资源调度处理。
其中,步骤801至步骤804中的分布式单元为对时延敏感的虚拟网元,其具体实施过程可参考前述实施例,本实施例不再进行赘述。
本发明实施例提供的资源调度方法,能够兼容多个实现方式不同的虚拟基站,能够即时的为虚拟基站中对时延敏感的分布式单元调度计算资源,提高服务器中计算资源的利用率。
可选地,本实施例中的资源调度方法还可用于为虚拟基站中的CU进行资源调度。
可选地,在确定多个DU的计算资源调度信息后,若服务器中存在空闲计算资源,则从服务器的空闲计算资源中确定为CU新增的计算资源。
具体地,根据CU的负载,在服务器的空闲计算资源中确定为CU新增的计算资源。
可选地,若CU对应的等待处理的任务数量和/或等待处理的数据量大于或等于设定负载阈值,则在服务器的空闲计算资源中确定为CU新增的计算资源。
可选地,根据CU对应的等待处理的任务数量和/或等待处理的数据量超过设定负载阈值的程度,确定从服务器的空闲计算资源中为CU新增的计算资源目标数量;从服务器的空闲计算资源中确定目标数量的计算资源增加给对应的CU。
之后,将多个DU的计算资源增减信息以及CU的计算资源增加信息共同作为计算资源调度信息,发送给服务器的内核,以通过处于内核态的调度类函数完成计算资源调度信息对应的资源调度处理。
为了便于理解,以车载终端与虚拟基站进行行驶数据传输的场景为例,对图8实施例的资源调度方法进行示例性说明。
图9为本发明实施例提供的资源调度方法的场景示意图。在车联网的场景下,车载终端通常需要虚拟基站执行一些车辆行驶数据传输任务,比如:将车辆行驶数据转发给车载终端对应的应用服务器。其中,车辆行驶数据包括:车辆行驶速度、车辆行驶方向等。
在服务器接收到车载终端发送的行驶数据处理任务q后,首先,根据车载终端的位置,确定与之对应的虚拟基站,将车载终端触发的行驶数据处理任务q存入相应虚拟基站的分布式单元所对应的任务队列中。不同虚拟基站被配置为覆盖不同的地理范围。
结合图7,假设服务器中包括K个虚拟基站,每个虚拟基站中包含有M个分布式单元(实际应用中,不同虚拟基站中的分布式单元数量可能不同)。
之后,在目标调度时间T,获取(K*M)个分布式单元各自对应的空闲时间点,并根据目标调度时间T与(K*M)个分布式单元各自对应的空闲时间点的时间差,确定(K*M)个分布式单元的负载状态。然后,根据(K*M)个分布式单元的负载状态,确定(K*M)个分布式单元的计算资源调度信息,并将计算资源调度信息发送至包含有K的虚拟基站的服务器的内核,通过处于内核态的调度类函数完成计算资源调度信息对应的资源调度处理,其具体实施过程,可参考前述实施例。
最后,(K*M)个分布式单元基于资源调度处理后的计算资源对接收到的行驶数据处理任务q进行处理。
具体地,假设行驶数据处理任务q被存入虚拟基站1的分布式单元1所对应的任务队列中,且资源调度处理后,虚拟网元1的分布式单元1中,工作线程1分配到了CPU-1,工作线程2分配到了CPU-2,…,工作线程n分配到了CPU-n。分布式单元1中的n个工作线程在从分布式单元1的任务队列中轮询工作任务时,假设工作线程2轮询到了行驶数据处理任务q,则工作线程2利用CPU-2对行驶数据处理任务q进行处理,比如:将行驶数据处理任务q中的行驶数据转发给应用服务器,完成行驶数据传输。
图10为本发明实施例提供的一种资源调度装置的结构示意图,如图10所示,该装置设置于处于用户态的调度组件,该调度组件设于包含多个虚拟网元的服务器中。该装置包括:获取模块11,处理模块12和发送模块13。
获取模块11,用于在目标调度时间获取所述多个虚拟网元各自对应的空闲时间点,所述空闲时间点对应于虚拟网元中的工作线程轮询不到负载任务的时间点。
处理模块12,用于根据所述目标调度时间与所述多个虚拟网元各自对应的空闲时间点的时间差,确定所述多个虚拟网元的负载状态;根据所述多个虚拟网元的负载状态,确定所述多个虚拟网元的计算资源调度信息。
发送模块13,用于将所述计算资源调度信息发送至所述服务器的内核,以通过处于内核态的调度类函数完成所述计算资源调度信息对应的资源调度处理。
可选地,获取模块11,具体用于针对所述多个虚拟网元中的目标虚拟网元,根据所述目标虚拟网元中的第一系统调用函数,通过设定指令将所述第一系统调用函数映射为在所述调度组件中实现的第二系统调用函数,以使所述目标虚拟网元中工作线程轮询不到负载任务时调用所述第二系统调用函数;其中,所述目标虚拟网元为所述多个虚拟网元中任一个;响应于所述第二系统调用函数被调用,通过所述第二系统调用函数记录所述空闲时间点;在所述目标调度时间,从记录的所述目标虚拟网元对应的空闲时间点中确定靠近所述目标调度时间的空闲时间点。
可选地,获取模块11,具体还用于挂起所述目标虚拟网元中产生所述空闲时间点的工作线程,并释放所述工作线程占用的计算资源。
可选地,所述调度组件包括所述多个虚拟网元各自对应的检测程序以及所述多个虚拟网元共享的调度程序;其中,与所述目标虚拟网元对应的所述第二系统调用函数在所述目标虚拟网元对应的目标检测程序中实现。获取模块11,具体还用于响应于所述第二系统调用函数被调用,通过所述目标检测程序中的所述第二系统调用函数记录所述空闲时间点,并将所述空闲时间点发送至所述调度程序;在所述目标调度时间,通过所述调度程序从接收的所述目标虚拟网元对应的空闲时间点中确定靠近所述目标调度时间的空闲时间点。
可选地,处理模块12,具体用于针对所述多个虚拟网元中的目标虚拟网元,若所述目标调度时间与所述目标虚拟网元对应的空闲时间点的时间差小于设定阈值,则确定所述目标虚拟网元处于低负载状态;若所述目标调度时间与所述目标虚拟网元对应的空闲时间点的时间差大于或等于所述设定阈值,则确定所述目标虚拟网元处于高负载状态。
可选地,处理模块12,还用于输出所述多个虚拟网元的数量,或者,根据每个虚拟网元中允许启动的工作线程数量输出所述多个虚拟网元对应的工作线程数量;接收用户根据所述数量设置的所述设定阈值。
可选地,所述服务器中包含至少一个第三方应用程序。处理模块12,具体还用于若所述目标虚拟网元处于低负载状态,则从所述目标虚拟网元当前释放的计算资源中确定减少设定数量的第一计算资源,将减少的第一计算资源写入所述服务器的空闲计算资源中;若所述目标虚拟网元处于高负载状态,则从所述服务器的空闲计算资源以及所述至少一个第三方应用程序占用的计算资源中确定为所述目标虚拟网元增加设定数量的第二计算资源;所述计算资源调度信息中描述了所述多个虚拟网元各自对应的计算资源增减信息。
可选地,处理模块12,具体还用于根据所述至少一个第三方应用程序的负载,在所述服务器的空闲计算资源中确定为所述至少一个第三方应用程序新增的计算资源;所述计算资源调度信息中还描述了对所述至少一个第三方应用程序的计算资源增加信息。
可选地,处理模块12,具体还用于若所述服务器的空闲计算资源中存在所述目标虚拟网元在历史调度时间所释放的第三计算资源,则确定为所述目标虚拟网元增加的所述第二计算资源中包括所述第三计算资源;若所述服务器的空闲计算资源不足以提供所述第二计算资源,则从所述至少一个第三方应用程序占用的计算资源中确定所述第二计算资源。
图10所示的通信装置可以执行前述实施例中通信系统所执行的各个步骤,本实施例未详细描述的部分,可参考前述实施例的相关说明,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的网元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机空闲程序代码的计算机空闲存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (13)

1.一种资源调度方法,其特征在于,应用于处于用户态的调度组件,所述调度组件设于包含多个虚拟网元的服务器中,所述方法包括:
在目标调度时间获取所述多个虚拟网元各自对应的空闲时间点,所述空闲时间点对应于虚拟网元中的工作线程轮询不到负载任务的时间点;
根据所述目标调度时间与所述多个虚拟网元各自对应的空闲时间点的时间差,确定所述多个虚拟网元的负载状态;
根据所述多个虚拟网元的负载状态,确定所述多个虚拟网元的计算资源调度信息;
将所述计算资源调度信息发送至所述服务器的内核,以通过处于内核态的调度类函数完成所述计算资源调度信息对应的资源调度处理。
2.根据权利要求1所述的方法,其特征在于,所述在目标调度时间获取所述多个虚拟网元各自对应的空闲时间点,包括:
针对所述多个虚拟网元中的目标虚拟网元,根据所述目标虚拟网元中的第一系统调用函数,通过设定指令将所述第一系统调用函数映射为在所述调度组件中实现的第二系统调用函数,以使所述目标虚拟网元中工作线程轮询不到负载任务时调用所述第二系统调用函数;其中,所述目标虚拟网元为所述多个虚拟网元中任一个;
响应于所述第二系统调用函数被调用,通过所述第二系统调用函数记录所述空闲时间点;
在所述目标调度时间,从记录的所述目标虚拟网元对应的空闲时间点中确定靠近所述目标调度时间的空闲时间点。
3.根据权利要求2所述的方法,其特征在于,所述通过所述第二系统调用函数记录所述空闲时间点之后,还包括:
挂起所述目标虚拟网元中产生所述空闲时间点的工作线程,并释放所述工作线程占用的计算资源。
4.根据权利要求2所述的方法,其特征在于,所述调度组件包括所述多个虚拟网元各自对应的检测程序以及所述多个虚拟网元共享的调度程序;其中,与所述目标虚拟网元对应的所述第二系统调用函数在所述目标虚拟网元对应的目标检测程序中实现;
所述响应于所述第二系统调用函数被调用,通过所述第二系统调用函数记录所述空闲时间点,包括:
响应于所述第二系统调用函数被调用,通过所述目标检测程序中的所述第二系统调用函数记录所述空闲时间点,并将所述空闲时间点发送至所述调度程序;
所述在所述目标调度时间,从记录的所述目标虚拟网元对应的空闲时间点中确定靠近所述目标调度时间的空闲时间点,包括:
在所述目标调度时间,通过所述调度程序从接收的所述目标虚拟网元对应的空闲时间点中确定靠近所述目标调度时间的空闲时间点。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述根据所述目标调度时间与所述多个虚拟网元各自对应的空闲时间点的时间差,确定所述多个虚拟网元的负载状态,包括:
针对所述多个虚拟网元中的目标虚拟网元,若所述目标调度时间与所述目标虚拟网元对应的空闲时间点的时间差小于设定阈值,则确定所述目标虚拟网元处于低负载状态;
若所述目标调度时间与所述目标虚拟网元对应的空闲时间点的时间差大于或等于所述设定阈值,则确定所述目标虚拟网元处于高负载状态。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
输出所述多个虚拟网元的数量,或者,根据每个虚拟网元中允许启动的工作线程数量输出所述多个虚拟网元对应的工作线程数量;
接收用户根据所述数量设置的所述设定阈值。
7.根据权利要求5所述的方法,其特征在于,所述服务器中包含至少一个第三方应用程序;所述根据所述多个虚拟网元的负载状态,确定所述多个虚拟网元的计算资源调度信息,包括:
若所述目标虚拟网元处于低负载状态,则从所述目标虚拟网元当前释放的计算资源中确定减少设定数量的第一计算资源,将减少的第一计算资源写入所述服务器的空闲计算资源中;
若所述目标虚拟网元处于高负载状态,则从所述服务器的空闲计算资源以及所述至少一个第三方应用程序占用的计算资源中确定为所述目标虚拟网元增加设定数量的第二计算资源;
所述计算资源调度信息中描述了所述多个虚拟网元各自对应的计算资源增减信息。
8.根据权利要求7所述的方法,其特征在于,所述服务器中包含至少一个第三方应用程序,所述方法还包括:
根据所述至少一个第三方应用程序的负载,在所述服务器的空闲计算资源中确定为所述至少一个第三方应用程序新增的计算资源;所述计算资源调度信息中还描述了对所述至少一个第三方应用程序的计算资源增加信息。
9.根据权利要求7所述的方法,其特征在于,所述服务器中包含至少一个第三方应用程序,所述从所述服务器的空闲计算资源以及所述至少一个第三方应用程序占用的计算资源中确定为所述目标虚拟网元增加设定数量的第二计算资源,包括:
若所述服务器的空闲计算资源中存在所述目标虚拟网元在历史调度时间所释放的第三计算资源,则确定为所述目标虚拟网元增加的所述第二计算资源中包括所述第三计算资源;
若所述服务器的空闲计算资源不足以提供所述第二计算资源,则从所述至少一个第三方应用程序占用的计算资源中确定所述第二计算资源。
10.根据权利要求1所述的方法,其特征在于,所述多个虚拟网元是对时延敏感的虚拟网元。
11.一种服务器,其特征在于,包括:处于用户态的调度组件、处于内核态的调度类函数、多个虚拟网元以及多个计算资源;
所述调度组件用于:在目标调度时间获取所述多个虚拟网元各自对应的空闲时间点,所述空闲时间点对应于虚拟网元中的工作线程轮询不到负载任务的时间点;根据所述目标调度时间与所述多个虚拟网元各自对应的空闲时间点的时间差,确定所述多个虚拟网元的负载状态;根据所述多个虚拟网元的负载状态,确定所述多个虚拟网元的计算资源调度信息;将所述计算资源调度信息发送至所述服务器的内核,以通过处于内核态的所述调度类函数完成所述计算资源调度信息对应的资源调度处理。
12.一种资源调度方法,其特征在于,应用于处于用户态的调度组件,所述调度组件设于包含多个虚拟基站的服务器中,所述多个虚拟基站中包括多个分布式单元,所述方法包括:
在目标调度时间获取所述多个分布式单元各自对应的空闲时间点,所述空闲时间点对应于分布式单元中的工作线程轮询不到负载任务的时间点;
根据所述目标调度时间与所述多个分布式单元各自对应的空闲时间点的时间差,确定所述多个分布式单元的负载状态;
根据所述多个分布式单元的负载状态,确定所述多个分布式单元的计算资源调度信息;
将所述计算资源调度信息发送至所述服务器的内核,以通过处于内核态的调度类函数完成所述计算资源调度信息对应的资源调度处理。
13.一种资源调度方法,其特征在于,应用于处于用户态的调度组件,所述调度组件设于包含多个虚拟基站的服务器中,所述多个虚拟基站中包括多个分布式单元,所述方法包括:
根据车载终端与虚拟基站的对应关系,将所述车载终端触发的行驶数据处理任务存入相应虚拟基站的分布式单元所对应的任务队列中;
在目标调度时间获取所述多个分布式单元各自对应的空闲时间点,所述空闲时间点对应于分布式单元中的工作线程在相应任务队列中轮询不到行驶数据处理任务的时间点;
根据所述目标调度时间与所述多个分布式单元各自对应的空闲时间点的时间差,确定所述多个分布式单元的负载状态;
根据所述多个分布式单元的负载状态,确定所述多个分布式单元的计算资源调度信息;
将所述计算资源调度信息发送至所述服务器的内核,以通过处于内核态的调度类函数完成所述计算资源调度信息对应的资源调度处理,以使所述多个分布式单元基于资源调度处理后的计算资源对接收到的行驶数据处理任务进行处理。
CN202210972195.0A 2022-08-15 2022-08-15 资源调度方法及服务器 Active CN115048206B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210972195.0A CN115048206B (zh) 2022-08-15 2022-08-15 资源调度方法及服务器
US18/171,250 US20240054021A1 (en) 2022-08-15 2023-02-17 Resource scheduling method and server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210972195.0A CN115048206B (zh) 2022-08-15 2022-08-15 资源调度方法及服务器

Publications (2)

Publication Number Publication Date
CN115048206A true CN115048206A (zh) 2022-09-13
CN115048206B CN115048206B (zh) 2022-12-27

Family

ID=83167641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210972195.0A Active CN115048206B (zh) 2022-08-15 2022-08-15 资源调度方法及服务器

Country Status (2)

Country Link
US (1) US20240054021A1 (zh)
CN (1) CN115048206B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115617497A (zh) * 2022-12-14 2023-01-17 阿里巴巴达摩院(杭州)科技有限公司 线程处理方法、调度组件、监测组件、服务器和存储介质
CN116149867A (zh) * 2023-04-12 2023-05-23 阿里巴巴(中国)有限公司 资源调度方法及设备

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020165754A1 (en) * 2001-02-27 2002-11-07 Ming-Chung Tang Method for quality of service controllable real-time scheduling
US20060156306A1 (en) * 2004-12-13 2006-07-13 Infineon Technologies Ag Thread scheduling method, and device to be used with a thread scheduling method
CN1955931A (zh) * 2005-09-30 2007-05-02 科威尔公司 在多核架构中进行调度
CN101415023A (zh) * 2008-08-08 2009-04-22 西安瑞友信息技术资讯有限公司 服务器智能动态负载均衡技术
CN101488098A (zh) * 2009-02-13 2009-07-22 华中科技大学 基于虚拟计算技术的多核计算资源管理系统
CN101923487A (zh) * 2010-08-06 2010-12-22 西华师范大学 一种综合嵌入式实时周期任务调度方法
CN104834980A (zh) * 2015-05-26 2015-08-12 杭州天宽科技有限公司 一种用于优化绿色数据中心电费的负载调度方法
US20150282166A1 (en) * 2012-11-14 2015-10-01 China Academy Of Telecommunications Technology Method and device for scheduling slot resources
CN106998340A (zh) * 2016-01-22 2017-08-01 大唐移动通信设备有限公司 一种板卡资源的负载均衡方法及装置
CN108958157A (zh) * 2018-07-09 2018-12-07 北京东土科技股份有限公司 控制程序控制调度方法、装置、计算机设备以及存储介质
CN109976917A (zh) * 2019-04-08 2019-07-05 科大讯飞股份有限公司 一种负载调度方法、装置、负载调度器、存储介质及系统
US20210014011A1 (en) * 2019-07-12 2021-01-14 Samsung Electronics Co., Ltd. Method and apparatus for transmitting and receiving signal in a communication system
CN113703906A (zh) * 2020-05-20 2021-11-26 阿里巴巴集团控股有限公司 一种数据处理方法、装置及系统
CN114072737A (zh) * 2019-07-03 2022-02-18 欧姆龙株式会社 控制系统、设定装置以及计算机程序
CN114706663A (zh) * 2022-04-19 2022-07-05 阿里巴巴(中国)有限公司 一种计算资源调度方法、介质及计算设备

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020165754A1 (en) * 2001-02-27 2002-11-07 Ming-Chung Tang Method for quality of service controllable real-time scheduling
US20060156306A1 (en) * 2004-12-13 2006-07-13 Infineon Technologies Ag Thread scheduling method, and device to be used with a thread scheduling method
CN1955931A (zh) * 2005-09-30 2007-05-02 科威尔公司 在多核架构中进行调度
CN101415023A (zh) * 2008-08-08 2009-04-22 西安瑞友信息技术资讯有限公司 服务器智能动态负载均衡技术
CN101488098A (zh) * 2009-02-13 2009-07-22 华中科技大学 基于虚拟计算技术的多核计算资源管理系统
CN101923487A (zh) * 2010-08-06 2010-12-22 西华师范大学 一种综合嵌入式实时周期任务调度方法
US20150282166A1 (en) * 2012-11-14 2015-10-01 China Academy Of Telecommunications Technology Method and device for scheduling slot resources
CN104834980A (zh) * 2015-05-26 2015-08-12 杭州天宽科技有限公司 一种用于优化绿色数据中心电费的负载调度方法
CN106998340A (zh) * 2016-01-22 2017-08-01 大唐移动通信设备有限公司 一种板卡资源的负载均衡方法及装置
CN108958157A (zh) * 2018-07-09 2018-12-07 北京东土科技股份有限公司 控制程序控制调度方法、装置、计算机设备以及存储介质
CN109976917A (zh) * 2019-04-08 2019-07-05 科大讯飞股份有限公司 一种负载调度方法、装置、负载调度器、存储介质及系统
CN114072737A (zh) * 2019-07-03 2022-02-18 欧姆龙株式会社 控制系统、设定装置以及计算机程序
US20210014011A1 (en) * 2019-07-12 2021-01-14 Samsung Electronics Co., Ltd. Method and apparatus for transmitting and receiving signal in a communication system
CN113703906A (zh) * 2020-05-20 2021-11-26 阿里巴巴集团控股有限公司 一种数据处理方法、装置及系统
CN114706663A (zh) * 2022-04-19 2022-07-05 阿里巴巴(中国)有限公司 一种计算资源调度方法、介质及计算设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨波等: ""异构云平台中基于多层架构的动态循环调度方案"", 《计算机应用研究》 *
白钊铭等: "基于调度效益最大化的多功能组网认知雷达资源优化调度算法", 《科学技术与工程》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115617497A (zh) * 2022-12-14 2023-01-17 阿里巴巴达摩院(杭州)科技有限公司 线程处理方法、调度组件、监测组件、服务器和存储介质
CN115617497B (zh) * 2022-12-14 2023-03-31 阿里巴巴达摩院(杭州)科技有限公司 线程处理方法、调度组件、监测组件、服务器和存储介质
CN116149867A (zh) * 2023-04-12 2023-05-23 阿里巴巴(中国)有限公司 资源调度方法及设备

Also Published As

Publication number Publication date
CN115048206B (zh) 2022-12-27
US20240054021A1 (en) 2024-02-15

Similar Documents

Publication Publication Date Title
CN115048206B (zh) 资源调度方法及服务器
Ramos-Thuel et al. On-line scheduling of hard deadline aperiodic tasks in fixed-priority systems
KR102450528B1 (ko) 애플리케이션을 인식하는 효율적인 io 스케줄러 시스템 및 방법
CA2722670C (en) Scheduler instances in a process
CN110489213B (zh) 一种任务处理方法及处理装置、计算机系统
KR100958303B1 (ko) 멀티코어 시스템 환경에서 내부 코어 간 통신채널을 이용한 모듈 디바이스의 동적 적재 및 실행을 통한 부하 균등화 시스템 및 방법
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
US20120072624A1 (en) Numa i/o framework
KR20070083460A (ko) 다중 커널을 동시에 실행하는 방법 및 시스템
EP4209903A1 (en) Task scheduling method and apparatus
JP2006515690A (ja) 複数のプロセッサを有するデータ処理システムと、複数のプロセッサを有するデータ処理システムのためのタスクスケジューラと、タスクスケジューリングの対応する方法
KR20040068600A (ko) 운영 시스템 기능 실행 방법 및 시스템, 전자 기기
US20160127382A1 (en) Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time
WO2018005500A1 (en) Asynchronous task management in an on-demand network code execution environment
CN113448743A (zh) 用于任务处理的方法、电子设备以及计算机程序产品
CN115237556A (zh) 调度方法及装置、芯片、电子设备及存储介质
JP3938343B2 (ja) タスク管理システム、プログラム、及び制御方法
CN115167996A (zh) 调度方法及装置、芯片、电子设备及存储介质
Li et al. Multi-mode virtualization for soft real-time systems
Golchin et al. Tuned pipes: end-to-end throughput and delay guarantees for USB devices
CN115766582A (zh) 流量控制方法、装置和系统、介质和计算机设备
CN114911538A (zh) 一种运行系统的启动方法及计算设备
Vanga et al. Supporting low-latency, low-criticality tasks in a certified mixed-criticality OS
CN113515356A (zh) 一种轻量级分布式资源管理与任务调度器及方法
JP3349547B2 (ja) スケジューリングシステム

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
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40080909

Country of ref document: HK