CN111488210B - 基于云计算的任务调度方法、装置和计算机设备 - Google Patents

基于云计算的任务调度方法、装置和计算机设备 Download PDF

Info

Publication number
CN111488210B
CN111488210B CN202010255407.4A CN202010255407A CN111488210B CN 111488210 B CN111488210 B CN 111488210B CN 202010255407 A CN202010255407 A CN 202010255407A CN 111488210 B CN111488210 B CN 111488210B
Authority
CN
China
Prior art keywords
task
cpu
virtual machine
running
type
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.)
Active
Application number
CN202010255407.4A
Other languages
English (en)
Other versions
CN111488210A (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.)
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010255407.4A priority Critical patent/CN111488210B/zh
Publication of CN111488210A publication Critical patent/CN111488210A/zh
Application granted granted Critical
Publication of CN111488210B publication Critical patent/CN111488210B/zh
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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请涉及一种基于云计算的任务调度方法、装置、计算机设备和存储介质。所述方法包括:获取处于运行状态的任务;所述任务包括任务类型,所述任务类型包括虚拟机任务和批量型任务;所述虚拟机任务对应的优先级高于所述批量型任务对应的优先级;选择处于第一空闲状态的CPU为目标CPU,所述目标CPU中尚未运行虚拟机任务;将所述虚拟机任务调度至目标CPU,对所述虚拟机任务与所述目标CPU进行绑定;当绑定后的CPU中当前运行的任务为批量型任务时,根据所述虚拟机任务的优先级与所述批量型任务对应的优先级抢占所述绑定后CPU,使得所述绑定后的CPU中当前运行的任务切换为所述虚拟机任务。采用本方法能够有效提升云服务器中虚拟机的调度性能指标。

Description

基于云计算的任务调度方法、装置和计算机设备
技术领域
本申请涉及云计算技术领域,特别是涉及一种基于云计算的任务调度方法、装置、计算机设备和存储介质。
背景技术
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
以虚拟化为例,云服务器上可以通过相关进程运行虚拟机为用户提供相应的服务。除了运行虚拟机的线程之外,云服务器上还会运行其他进程(下文简称主机进程)。主机进程和虚拟机相关进程共享云服务器的CPU资源,典型的应用场景如图1所示。由此不可避免会出现资源争抢,干扰虚拟机运行。
随着云计算的发展,推出了采用软硬件结合的虚拟化技术的智能网卡。智能网卡可以将大部分的主机进程卸载到智能网卡上运行。云服务器上仅保留少量必要的进程,操作系统对这些进程的调度相应的减少。在传统的操作系统中针对通用场景的很多功能不再需要,调度器变得过于复杂和臃肿,由此导致虚拟机的调度性能指标并不理想。因此,如何对云服务器中虚拟机的调度性能指标进行优化成为目前需要解决的一个技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效提升云服务器中虚拟机的调度性能指标的基于云计算的任务调度方法、装置、计算机设备和存储介质。
一种基于云计算的任务调度方法,所述方法包括:
获取处于运行状态的任务;所述任务包括任务类型,所述任务类型包括虚拟机任务和批量型任务;所述虚拟机任务对应的优先级高于所述批量型任务对应的优先级;
选择处于第一空闲状态的CPU为目标CPU,所述目标CPU中尚未运行虚拟机任务;
将所述虚拟机任务调度至目标CPU,对所述虚拟机任务与所述目标CPU进行绑定;
当绑定后的CPU中当前运行的任务为批量型任务时,根据所述虚拟机任务的优先级与所述批量型任务对应的优先级抢占所述绑定后CPU,使得所述绑定后的CPU中当前运行的任务切换为所述虚拟机任务。
一种基于云计算的任务调度装置,所述装置包括:
获取模块,用于获取处于运行状态的任务;所述任务包括任务类型,所述任务类型包括虚拟机任务和批量型任务;所述虚拟机任务对应的优先级高于所述批量型任务对应的优先级;
调度模块,用于选择处于第一空闲状态的CPU为目标CPU,所述目标CPU中尚未运行虚拟机任务;将所述虚拟机任务调度至目标CPU,对所述虚拟机任务与所述目标CPU进行绑定;
抢占模块,用于当绑定后的CPU中当前运行的任务为批量型任务时,根据所述虚拟机任务的优先级与所述批量型任务对应的优先级抢占所述绑定后CPU,使得所述绑定后的CPU中当前运行的任务切换为所述虚拟机任务。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取处于运行状态的任务;所述任务包括任务类型,所述任务类型包括虚拟机任务和批量型任务;所述虚拟机任务对应的优先级高于所述批量型任务对应的优先级;
选择处于第一空闲状态的CPU为目标CPU,所述目标CPU中尚未运行虚拟机任务;
将所述虚拟机任务调度至目标CPU,对所述虚拟机任务与所述目标CPU进行绑定;
当绑定后的CPU中当前运行的任务为批量型任务时,根据所述虚拟机任务的优先级与所述批量型任务对应的优先级抢占所述绑定后CPU,使得所述绑定后的CPU中当前运行的任务切换为所述虚拟机任务。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取处于运行状态的任务;所述任务包括任务类型,所述任务类型包括虚拟机任务和批量型任务;所述虚拟机任务对应的优先级高于所述批量型任务对应的优先级;
选择处于第一空闲状态的CPU为目标CPU,所述目标CPU中尚未运行虚拟机任务;
将所述虚拟机任务调度至目标CPU,对所述虚拟机任务与所述目标CPU进行绑定;
当绑定后的CPU中当前运行的任务为批量型任务时,根据所述虚拟机任务的优先级与所述批量型任务对应的优先级抢占所述绑定后CPU,使得所述绑定后的CPU中当前运行的任务切换为所述虚拟机任务。
上述基于云计算的任务调度方法、装置、计算机设备和存储介质,
在对云服务器中的虚拟机任务进行调度时,选择处于第一空闲状态的CPU作为目标CPU,将虚拟机任务调度至目标CPU后,目标CPU中只运行一个虚拟机任务,对所述虚拟机任务与所述目标CPU进行绑定后,虚拟机任务只在绑定后的CPU上运行。由此避免了具有相同优先级的虚拟机任务之间可能发生相互干扰与抢占CPU的情形,也有效避免了迁移开销,简化了调度器。由于虚拟机任务对应的优先级高于所述批量型任务对应的优先级,当绑定后的CPU中当前运行的任务为批量型任务时,根据所述虚拟机任务的优先级可以抢占所述绑定后CPU,使得所述绑定后的CPU中当前运行的任务切换为所述虚拟机任务。由此保证了虚拟机任务的调度优先性和及时性,有效提升了云服务器中虚拟机任务运行的调度性能指标。
附图说明
图1为一个实施例中主机进程和虚拟机相关进程共享云服务器CPU的应用场景图;
图2为一个实施例中基于云计算的任务调度方法的应用环境图;
图3为一个实施例中基于云计算的任务调度方法的流程示意图;
图4为一个实施例中针对不同任务类型实施调度的示意图;
图5为另一个实施例中基于云计算的任务调度方法的流程示意图;
图6为又一个实施例中基于云计算的任务调度方法的流程示意图;
图7为一个实施例中负载均衡步骤的流程示意图;
图8为另一个实施例中负载均衡步骤的流程示意图;
图9为一个实施例中基于云计算的任务调度装置的结构框图;
图10为另一个实施例中基于云计算的任务调度装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于云计算的任务调度方法,可以应用于如图2所示的应用环境中。其中,终端202通过网络与服务器204通过网络进行通信。其中,终端202可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器204可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端202可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端202以及服务器204可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。终端202向服务器204上传配置信息,服务器204根据配置信息对任务进行分类,并且设置任务类型对应的优先级。任务类型包括虚拟机任务和批量型任务,虚拟机任务对应的优先级高于批量型任务对应的优先级。服务器204根据配置信息对不同的任务类型设置不同的调度策略。服务器204选择处于第一空闲状态的CPU为目标CPU,目标CPU中尚未运行虚拟机任务。服务器204将虚拟机任务调度至目标CPU,对虚拟机任务与目标CPU进行绑定。当绑定后的CPU中当前运行的任务为批量型任务时,根据虚拟机任务的优先级与批量型任务对应的优先级抢占绑定后CPU,使得绑定后的CPU中当前运行的任务切换为虚拟机任务。由此保证了虚拟机任务的调度优先性和及时性,实现了虚拟机任务调度性能指标的提升和优化。
在一个实施例中,如图3所示,提供了一种基于云计算的任务调度方法,以该方法云服务器为例进行说明,包括以下步骤:
步骤302,获取处于运行状态的任务;任务包括任务类型,任务类型包括虚拟机任务和批量型任务;虚拟机任务对应的优先级高于批量型任务对应的优先级。
云服务器也可以称为云主机。云服务器中运行了虚拟机和主机进程。其中,虚拟机包含VCPU(虚拟CPU)进程和虚拟机辅助进程。例如,在Linux系统中可以是libvirtd进程和qemu进程。主机进程包含维持云服务器正常运行的所有进程和云服务器中为实现特定功能需要运行的进程。其中,维持云服务器正常运行的进程包括内核线程,实现特定功能的进程包括用于系统维护的代理进程。当云服务器执行相应任务时,通过调度器将运行的虚拟机或者主机进程调度至对应的CPU中。
云服务器针对不同的任务类型,设定不同的调度策略。在其中一个实施例中,终端向与服务器上传配置信息。配置信息中包括任务类型、任务运行时长、任务等待时长、任务权重比例等。其中,任务类型包括虚拟机任务、突发型任务和批量型任务。虚拟机任务和突发型任务可以统称为延迟敏感型任务。任务运行时长包括延迟敏感型任务的最小运行时长与批量型任务的最小运行时长。任务等等时长包括批量型任务的最大等待时长。任务权值比例是指突发型任务与批量型任务之间的权重比例,用于控制负载均衡效果。终端可以通过云服务器的操作系统提供的用户动态接口,比如Linux操作系统提供的/proc和/sys虚拟文件系统接口,将配置信息设置到操作系统调度器中,保存在与调度器的与进程(任务)相关的结构体或者全局变量中,用于后续调度器实时调度。
调度器根据配置信息将所有的任务(进程)进行分类,得到虚拟机任务、突发型任务和批量型任务。以Linux系统为例,调度器根据配置信息可以将虚拟机的VCPU线程设置为虚拟机任务,将Qemu、libvirtd、iothread和一些内核线程(如rcu相关线程)设置为突发型任务,将代理等用户态进程设置为批量型任务。其中,虚拟机任务和突发型任务可以具有相同的逻辑优先级(简称优先级)。延迟敏感型任务对应的优先级高于批量型任务对应的优先级。调度器为每种任务类型分别定义不同的标记。调度器针对不同的任务类型实施不同的调度策略。调度示意图可以如图4所示。
步骤304,选择处于第一空闲状态的CPU为目标CPU,目标CPU中尚未运行虚拟机任务。
步骤306,将虚拟机任务调度至目标CPU,对虚拟机任务与目标CPU进行绑定。
调度器将虚拟机任务进行分散调度,使得虚拟机任务分散于不同的CPU上,每个CPU上只有一个虚拟机任务运行。调度器进行任务调度时,创建相应的进程,例如,可以利用Linux内核中的fork()函数创建进程,判断该进程是否为虚拟机任务,如果是,则选择处于第一空闲状态的CPU为目标CPU,即目标CPU上没有运行虚拟机任务。具体的,调度器对云服务器中的CPU进行遍历,识别当前遍历到的CPU是否为第一空闲状态,若是,则将其作为目标CPU。否则,继续遍历其他CPU,直至找到合适的目标CPU,将虚拟机任务绑定到该目标CPU上。在绑定之后,该虚拟机任务只在该目标CPU上运行,不会迁移,由此能够有效减少迁移开销。
步骤308,当绑定后的CPU中当前运行的任务为批量型任务时,根据虚拟机任务的优先级与批量型任务对应的优先级抢占绑定后CPU,使得绑定后的CPU中当前运行的任务切换为虚拟机任务。
处于第一空闲状态的CPU中在绑定虚拟机任务之后,可以称为绑定后的CPU。绑定后的CPU中还可以运行批量型任务。批量型任务可以是在绑定虚拟机任务之前,被调度至该CPU的,也可以是在绑定虚拟机任务之后,被调度到该CPU的。
每个CPU都可以拥有独立的运行队列,运行队列可以是基于链表或其他类似功能的数据结构所建立的。运行队列中记录了CPU中每个任务的状态和统计等。统计可以是指对任务运行时长进行统计。其中,当任务从睡眠状态切换为运行状态时,调度器可以通过入队接口,将相应的任务加入运行队列,并将该任务的状态、运行时长等进行相同的更新。当任务从运行状态切换回睡眠状态时,调度器可以通过出队接口,将应用的任务移除运行队列,并将该任务的状态、运行时长等进行相同的更新。虚拟机任务被创建之后,可以有不同的状态,包括睡眠状态和运行状态。调度器可以调用接口触发虚拟机任务的状态切换,例如,可以调用唤醒接口触发虚拟机任务从睡眠状态切换为运行状态,加入运行队列。运行队列中可以包括当前正在运行的批量型任务等。
由于批量型任务的优先级低于虚拟机任务的优先级,因此处于运行状态的虚拟机任务可以在任何时刻同批量型任务抢占该CPU。其中包括虚拟机任务从睡眠状态切换为运行状态时可以抢占CPU(又可以简称为唤醒时抢占),以及在调度器的调度周期,由时钟中断触发虚拟机任务发生CPU抢占(又可以简称为周期性抢占)。在虚拟机任务抢占CPU成功后,该绑定后的CPU将当前运行的任务切换为虚拟机任务。
本实施例中,在对云服务器中的虚拟机任务进行调度时,选择处于第一空闲状态的CPU作为目标CPU,将虚拟机任务调度至目标CPU后,目标CPU中只运行一个虚拟机任务,对虚拟机任务与目标CPU进行绑定后,虚拟机任务只在绑定后的CPU上运行。由此避免了具有相同优先级的虚拟机任务之间可能发生相互干扰与抢占CPU的情形,也有效避免了迁移开销,简化了调度器。由于虚拟机任务对应的优先级高于批量型任务对应的优先级,当绑定后的CPU中当前运行的任务为批量型任务时,根据虚拟机任务的优先级可以抢占绑定后CPU,使得绑定后的CPU中当前运行的任务切换为虚拟机任务。由此保证了虚拟机任务的调度优先性和及时性。有效提升了云服务器中虚拟机任务运行的调度性能指标。
在一个实施例中,任务类型还包括突发型任务;突发型任务对应的优先级与虚拟机任务对应的优先级相同;突发型任务与虚拟机任务运行在同一CPU时,按照预设策略相互抢占CPU。
突发型任务是根据关键的内核进程设置的,通常情况下单次运行的时长较短,单次运行时间不超过最小运行时长。为了保证云服务器的稳定运行,突发型任务也需要优先调度执行。突发型任务对应的优先级与虚拟机任务对应的优先级相同,当突发型任务与虚拟机任务运行在同一CPU时,调度器可以按照预设策略相互抢占CPU。其中,在突发型任务与虚拟机任务之间,在唤醒时,即从睡眠状态切换为运行状态时,可以直接互相抢占CPU。在周期性调度时,需要保证突发型任务或虚拟机任务的最小运行时长,以便防止过于频繁抢占CPU影响调度吞吐性能。
在其中一个实施例中,基于云计算的任务调度方法的流程图可以如图5所示,包括:
步骤502,获取处于运行状态的任务;任务包括任务类型,任务类型包括虚拟机任务、突发型任务和批量型任务;虚拟机任务对应的优先级高于批量型任务对应的优先级;突发型任务对应的优先级与虚拟机任务对应的优先级相同。
步骤504,选择处于第一空闲状态的CPU为目标CPU,目标CPU中尚未运行虚拟机任务。
步骤506,将虚拟机任务调度至目标CPU,对虚拟机任务与目标CPU进行绑定。
步骤508,当绑定后的CPU中当前运行的任务为批量型任务时,根据虚拟机任务的优先级与批量型任务对应的优先级抢占绑定后CPU,使得绑定后的CPU中当前运行的任务切换为虚拟机任务。
步骤510,获取突发型任务对应的最小运行时长。
步骤512,当绑定后的CPU中当前运行的任务为突发型任务时,记录突发型任务的运行时长。
步骤514,当运行时长超过最小运行时长时,虚拟机任务抢占绑定后的CPU,使得绑定后的CPU中当前运行的任务切换为虚拟机任务。
调度器记录每个任务的单次运行时长。其中,可以是在任务得到调度时记录开始运行的时间戳,在发生周期性调度时更新运行时间,由此得到每个任务的单次运行时长。突发型任务与虚拟机任务运行在同一CPU,该CPU当前运行的任务为突发型任务时,调度器可以记录突发型任务的单次运行时长(简称为运行时长)。当运行时长超过最小运行时长时,时钟中断触发虚拟机任务抢占绑定后的CPU,使得绑定后的CPU中当前运行的任务切换为虚拟机任务。同样地,突发型任务与虚拟机任务运行在同一CPU,该CPU当前运行的任务为虚拟机任务时,调度器可以记录虚拟机任务的单次运行时长。当运行时长超过最小运行时长时,时钟中断触发突发型任务抢占绑定后的CPU,使得绑定后的CPU中当前运行的任务切换为突发型任务。
在同一个CPU上同时存在两个运行状态的延迟敏感型任务时,由于两个延迟敏感型任务之间以最小运行时长互相抢占CPU交替运行,由此能够最大程度保障虚拟机任务的调度及时性,同时能够防止过于频繁抢占CPU而影响调度吞吐性能。
在一个实施例中,基于云计算的任务调度方法的流程图可以如图6所示,包括:
步骤602,获取处于运行状态的任务;任务包括任务类型,任务类型包括虚拟机任务和批量型任务;虚拟机任务对应的优先级高于批量型任务对应的优先级。
步骤604,选择处于第一空闲状态的CPU为目标CPU,目标CPU中尚未运行虚拟机任务。
步骤606,将虚拟机任务调度至目标CPU,对虚拟机任务与目标CPU进行绑定。
步骤608,当绑定后的CPU中当前运行的任务为批量型任务时,根据虚拟机任务的优先级与批量型任务对应的优先级抢占绑定后CPU,使得绑定后的CPU中当前运行的任务切换为虚拟机任务。
步骤610,获取批量型任务对应的最大等待时长。
步骤612,在绑定后的CPU中当前运行的任务切换为虚拟机任务时,记录批量型任务对应的等待时长。
步骤614,当等待时长达到最大等待时长时,批量型任务抢占绑定后的CPU,使得绑定后的CPU将当前运行的任务切换为批量型任务。
为了避免批量型任务被过度饥饿,可以为每个批量性任务设置等待时长。即批量型任务在运行队列中最长等待时长。在虚拟机任务被调度至目标CPU后,与目标CPU进行绑定,抢占该绑定后的CPU,使得绑定后的CPU当前的任务从批量型任务切换为虚拟机任务。通过调度器开始统计批量型任务的等待时长,当等待时长达到最大等待时长时,批量型任务抢占绑定后的CPU,使得绑定后的CPU将当前运行的任务切换为批量型任务。
在一个实施例中,该方法还包括:当绑定后的CPU中当前运行的任务为批量型任务时,根据突发型任务的优先级抢占绑定后的CPU,使得绑定后的CPU中当前运行的任务切换为突发型任务。
由于突发型任务对应的优先级高于批量型任务对应的优先级。因此,当绑定后的CPU中当前运行的任务为批量型任务时,处于运行状态的突发型任务可以在任何时刻同批量型任务抢占该CPU。其中包括突发型任务从睡眠状态切换为运行状态时可以抢占CPU(又可以简称为唤醒时抢占),以及在调度器的调度周期,由时钟中断触发突发型任务发生CPU抢占(又可以简称为周期性抢占)。在突发型任务抢占CPU成功后,该绑定后的CPU将当前运行的任务切换为突发型任务。可以理解,在绑定后的CPU中当前运行的任务切换为突发型任务时,记录批量型任务对应的等待时长;当等待时长达到最大等待时长时,批量型任务抢占绑定后的CPU,使得绑定后的CPU将当前运行的任务切换回批量型任务。
在下一个调度时间点,即进入下一个调度周期时,如果虚拟机任务或突发型任务进入运行状态会再次抢占CPU,因此批量型任务的该次运行时长最长为一个时钟周期。假设,等待时长设置为200ms,一个时钟周期为1ms,那么在1s时间内,该批量型任务最长运行时长为5ms,粗略折算CPU占用率为0.5%。
通过为批量型任务设置最大等待时长,可以在调度时机点与其他任务(包括虚拟机任务、突发型任务以及其他批量任务)抢占CPU,由此能够在保证虚拟机任务调度优先性和调度及时性的同时,还可以保证批量型任务的顺利执行。
在目前主流的操作系统的通用内核调度器的实现中,为了保证虚拟机任务运行的优先性和及时性,通常是提升虚拟机任务的优先级在调度时获得更多的运行时间,或者是将虚拟机任务设置为实时进程。但是在提升虚拟机任务优先级的方式中,不能保证调度的及时性,调度延迟指标较差。而且在通用的调度器实现中,为了保证调度公平性,会固定分配给低优先级任务(非虚拟机任务)一定的时间片,由此会导致虚拟机任务收到比较严重的干扰,调度效果较差。在通过将虚拟机任务设置为实时进程的方式中,也存在诸多缺陷,可能会导致内核关键进程饥饿,致使操作系统挂死。如果同时设置这些关键进程为实时进程,又会导致实时进程之间相互抢占CPU,无法控制调度延时。还可能会导致其他任务饥饿,出现优先级反转的问题,即其他任务获取了虚拟机任务所需的资源,导致虚拟机任务无法调度。还有可能会存在两个虚拟机任务之间的相互干扰,无法控制调度延时和调度效果。
上述实施例中所提供的任务调度方法,能够减少其他任务对虚拟机任务的干扰,保障虚拟机任务调度的优先性,从而提升虚拟机性能。而且能够保证虚拟机任务调度的及时性,具有更低的调度延迟。通过为突发型任务与虚拟机任务设置相同的优先级,能够使得突发型任务与虚拟机任务运行在同一CPU时,按照预设策略相互抢占CPU,保证突发型任务调度的优先性和及时性。通过为批量型任务设置最大等待时长,能够有效避免批量型任务的进程绝对饥饿,从而避免优先级反转的问题。
在一个实施例中,该方法还包括:在第一调度时机下,选中批量型任务运行;记录批量型任务的运行时长;在达到第二调度时机时,若批量型任务的运行长达到预设的时间长,则运行其他批量型任务;否则继续运行批量型任务。
在批量型任务之间,可以按照时间片轮转的方式进行调度。具体的,在批量型任务经过等待时长,从虚拟机任务或者突发型任务处抢占CPU,达到批量型任务对应的第一调度时机。此时,调度器可以选中其中一个批量型任务运行,并且记录相应的运行时长。在该批量型任务运行的过程中,如果出现上述实施例中的抢占情形,则CPU被虚拟机任务或者突发型任务抢占。在该批量型任务再次经过等待时长时,达到第二调度时机,此时调度器会将该批量型任务的运行时长与预设时长进行比较,预设时长是预先为每个批量型任务设置的运行时间片。运行时间片可以根据批量型任务的单次运行时间的最大值进行设定,例如12ms。若运行时长达到预设时长,则在达到第二调度时间时,调度器选中另一个批量型任务抢占CPU,开始运行另一个批量型任务。若运行时长未达到预设时长,则在达到第二调度时间时,调度器继续执行该批量型任务,对其运行时长进行更新。
本实施例中,通过按照时间片轮转的方式,均分时间片,轮流运行每个批量型任务,由此能够保证每个批量型任务顺利运行,同时能够有效提高调度吞吐性能。
在一个实施例中,如图7所示,该方法还包括负载均衡步骤,具体包括:
步骤702,在进行负载均衡时,选择处于第二空闲状态的CPU。
步骤704,获取每个CPU的运行队列中批量型任务的等待时长。
步骤706,将等待时长超过阈值的批量型任务迁移至处于第二空闲状态的CPU。
云服务器包括多个CPU,多个是指两个或两个以上。不同的CPU可以运行不同的任务。不同的CPU可以处于不同的状态,对于没有运行延迟敏感型任务的CPU,即没有运行虚拟机任务也没有运行突发型任务的CPU,可以称为处于第二空闲状态。每个CPU中都可以设立对应的运行队列,运行队列可以记录处于运行状态的任务。在进行负载均衡时,调度器可以检查每个CPU的运行队列中批量型任务的等待时长。一个运行队列中可以记录一个或多个批量型任务的等待时长。当批量型任务的等待时长超过阈值时,调度器将该批量型任务迁移至处于第二空闲状态的CPU。由此能够将批量型任务迁移至空闲CPU,不仅能够使得每个CPU上运行的任务数量均衡,而且能够通过负载均衡解决低优先级任务批量型任务的饥饿问题。
在一个实施例中,该方法的负载均衡步骤还可以是如图8所示:
步骤802,在进行负载均衡时,遍历寻找负载最重的CPU。
步骤804,在负载最重的CPU中查找是否存在突发型任务;若存在,则执行步骤806,否则执行步骤808。
步骤806,将突发型任务迁移至处于第三空闲状态的CPU。
步骤808,在负载最重的CPU中选择等待时长最长的批量型任务,将等待时长最长的批量型任务迁移至处于第三空闲状态的CPU。
当CPU中没有运行任何任务时,可以将该CPU称为处于第三空闲状态的CPU。在进行负载均衡时,调度器通过对所有的CPU进行遍历,寻找负载最重的CPU。调度器可以根据每个CPU中当前处于运行状态的任务计算CPU的负载。其中,由于每个CPU上只运行一个虚拟机任务,且虚拟机任务与CPU绑定后,虚拟机不发生迁移,因此在负载均衡时,不需要考虑虚拟机任务。配置信息中记录了突发型任务和批量性任务之间的权重比例。突发型任务的权重比批量型任务的权重高。体现到负载上,即运行一个突发型任务的负载比运行一个批量型任务的负载要高。
在其中一个实施例中,调度器获取配置信息,配置信息包括任务类型对应的权重比例,获取每个CPU中处于运行状态的任务类型和任务数量。调度器根据任务类型、任务数量和权重比例计算每个CPU对应的负载。通过遍历,得到负载最重的CPU。
由于突发型任务的权重比批量型任务的权重高,因此在进行负载均衡时,优先考虑对突发型任务进行迁移。调度器通过负载最重的CPU的运行队列,查找是否存在突发型任务,如果存在,将突发型任务从负载最重的CPU迁移至处于第三空闲状态的CPU。如果不存在突发型任务,在根据运行队列的记录,将等待时长最长的批量任务从负载最重的CPU迁移至处于第三空闲状态的CPU。由此不仅能够使得每个CPU上运行的任务数量均衡,而且能够通过负载均衡解决低优先级任务批量型任务的饥饿问题。
在其中一个实施例中,在进行负载均衡时,调度器还可以在每个CPU的运行队列中查找是否存在等待时长超过阈值的批量型任务,如果存在,表示批量型任务等待时长过长。调度器在云服务器的所有CPU中进行遍历,寻找处于第三空闲状态的CPU。将等待时长超过阈值的批量型任务迁移至处于第三空闲状态的CPU。由此通过负载均衡解决低优先级任务批量型任务的饥饿问题。
应该理解的是,虽然图3-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种基于云计算的任务调度装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:获取模块902、调度模块904和抢占模块906,其中:
获取模块902,用于获取处于运行状态的任务;任务包括任务类型,任务类型包括虚拟机任务和批量型任务;虚拟机任务对应的优先级高于批量型任务对应的优先级。
调度模块904,用于选择处于第一空闲状态的CPU为目标CPU,目标CPU中尚未运行虚拟机任务;将虚拟机任务调度至目标CPU,对虚拟机任务与目标CPU进行绑定。
抢占模块906,用于当绑定后的CPU中当前运行的任务为批量型任务时,根据虚拟机任务的优先级与批量型任务对应的优先级抢占绑定后CPU,使得绑定后的CPU中当前运行的任务切换为虚拟机任务。
在一个实施例中,任务类型还包括突发型任务;突发型任务对应的优先级与虚拟机任务对应的优先级相同;突发型任务与虚拟机任务运行在同一CPU时,按照预设策略相互抢占CPU。
在一个实施例中,在突发型任务与虚拟机任务之间,从睡眠状态切换为运行状态时相互抢占CPU。
在一个实施例中,抢占模块906还用于获取突发型任务对应的最小运行时长;当绑定后的CPU中当前运行的任务为突发型任务时,记录突发型任务的运行时长;当运行时长超过最小运行时长时,虚拟机任务抢占绑定后的CPU,使得绑定后的CPU中当前运行的任务切换为虚拟机任务。
在一个实施例中,获取模块902还用于获取批量型任务对应的最大等待时长;在绑定后的CPU中当前运行的任务切换为虚拟机任务时,记录批量型任务对应的等待时长;抢占模块906还用于当等待时长达到最大等待时长时,批量型任务抢占绑定后的CPU,使得绑定后的CPU将当前运行的任务切换为批量型任务。
在一个实施例中,抢占模块906还用于当绑定后的CPU中当前运行的任务为批量型任务时,根据突发型任务的优先级抢占绑定后的CPU,使得绑定后的CPU中当前运行的任务切换为突发型任务。
在一个实施例中,抢占模块906还用于在达到第一调度时机时,选中批量型任务运行;记录批量型任务的运行时长;在达到第二调度时机时,若批量型任务的运行长达到预设的时间长,则运行其他批量型任务;否则继续运行批量型任务。
在一个实施例中,如图10所示,还包括负载均衡模块908,用于在进行负载均衡时,选择处于第二空闲状态的CPU;获取每个CPU的运行队列中批量型任务的等待时长;将等待时长超过阈值的批量型任务迁移至处于第二空闲状态的CPU。
在一个实施例中,负载均衡模块908还用于在进行负载均衡时,遍历寻找负载最重的CPU;若负载最重的CPU中存在突发型任务,将突发型任务迁移至处于第三空闲状态的CPU;否则,在负载最重的CPU中选择等待时长最长的批量型任务,将等待时长最长的批量型任务迁移至处于第三空闲状态的CPU。
在一个实施例中,负载均衡模块908还用于获取配置信息,配置信息包括任务类型对应的权重比例;获取每个CPU中处于运行状态的任务类型和任务数量;根据任务类型、任务数量和权重比例计算每个CPU对应的负载。
关于基于云计算的任务调度装置的具体限定可以参见上文中对于基于云计算的任务调度方法的限定,在此不再赘述。上述基于云计算的任务调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储配置信息等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于云计算的任务调度方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于云计算的任务调度方法,所述方法包括:
获取云服务器中处于运行状态的任务;所述任务包括任务类型,所述任务类型包括延迟敏感型任务和批量型任务;所述延迟敏感型任务包括虚拟机任务和突发型任务,所述延迟敏感型任务对应的优先级高于所述批量型任务对应的优先级;所述突发型任务为单次运行时长不超过最小运行时长的任务;
针对每一个虚拟机任务,对所述云服务器中的CPU进行遍历以选择处于第一空闲状态的目标CPU,所述目标CPU中未运行虚拟机任务;在进行任务调度时,将所述虚拟机任务调度至目标CPU,对所述虚拟机任务与所述目标CPU进行绑定,以使得所述目标CPU上不运行所述虚拟机任务之外的其他虚拟机任务;
当绑定后的CPU中当前运行的任务为批量型任务时,所述虚拟机任务抢占所述绑定后CPU,使得所述绑定后的CPU中当前运行的任务切换为所述虚拟机任务;当所述绑定后的CPU中当前运行的任务为批量型任务时,所述突发型任务抢占所述绑定后的CPU,使得所述绑定后的CPU中当前运行的任务切换为所述突发型任务;
在周期性调度时,在所述突发型任务与所述虚拟机任务运行在同一CPU的情况下,所述突发型任务与所述虚拟机任务按照所述最小运行时长相互之间抢占CPU;在所述突发型任务与所述虚拟机任务从睡眠状态切换为运行状态时,处于运行状态的突发型任务与处于运行状态的所述虚拟机任务之间相互抢占CPU;
获取批量型任务对应的最大等待时长;在所述绑定后的CPU中当前运行的任务切换为所述虚拟机任务时,记录批量型任务对应的等待时长;当所述等待时长达到所述最大等待时长时,所述批量型任务抢占所述绑定后的CPU,使得所述绑定后的CPU将当前运行的任务切换为所述批量型任务;
在进行负载均衡时,选择处于第二空闲状态的CPU;获取每个CPU的运行队列中批量型任务的等待时长;将等待时长超过阈值的批量型任务迁移至所述处于第二空闲状态的CPU;在进行负载均衡时,遍历寻找负载最重的CPU;若所述负载最重的CPU中存在突发型任务,将所述突发型任务迁移至所述处于第三空闲状态的CPU;否则,在所述负载最重的CPU中选择等待时长最长的批量型任务,将所述等待时长最长的批量型任务迁移至所述处于第三空闲状态的CPU。
2.根据权利要求1所述的方法,其特征在于,所述在所述突发型任务与所述虚拟机任务运行在同一CPU的情况下,所述突发型任务与所述虚拟机任务按照所述最小运行时长相互之间抢占CPU,包括:
当所述绑定后的CPU中当前运行的任务为突发型任务时,记录所述突发型任务的运行时长;
当所述运行时长超过所述突发型任务对应的最小运行时长时,所述虚拟机任务抢占所述绑定后的CPU,使得所述绑定后的CPU中当前运行的任务切换为所述虚拟机任务。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在达到第一调度时机时,选中所述批量型任务运行;
记录所述批量型任务的运行时长;
在达到第二调度时机时,若所述批量型任务的运行长达到预设的时间长,则运行其他批量型任务;否则继续运行所述批量型任务。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取配置信息,所述配置信息包括任务类型对应的权重比例;
获取每个CPU中处于运行状态的任务类型和任务数量;
根据所述任务类型、所述任务数量和所述权重比例计算每个CPU对应的负载。
5.一种基于云计算的任务调度装置,其特征在于,所述装置包括:
获取模块,用于获取云服务器中处于运行状态的任务;所述任务包括任务类型,所述任务类型包括延迟敏感型任务和批量型任务;所述延迟敏感型任务包括虚拟机任务和突发型任务,所述延迟敏感型任务对应的优先级高于所述批量型任务对应的优先级;所述突发型任务为单次运行时长不超过最小运行时长的任务;
调度模块,用于针对每一个虚拟机任务,对所述云服务器中的CPU进行遍历以选择处于第一空闲状态的目标CPU,所述目标CPU中未运行虚拟机任务;将所述虚拟机任务调度至目标CPU,对所述虚拟机任务与所述目标CPU进行绑定,以使得所述目标CPU上不运行所述虚拟机任务之外的其他虚拟机任务;抢占模块,用于当绑定后的CPU中当前运行的任务为批量型任务时,所述虚拟机任务抢占所述绑定后CPU,使得所述绑定后的CPU中当前运行的任务切换为所述虚拟机任务;当所述绑定后的CPU中当前运行的任务为批量型任务时,所述突发型任务抢占所述绑定后的CPU,使得所述绑定后的CPU中当前运行的任务切换为所述突发型任务;在周期性调度时,在所述突发型任务与所述虚拟机任务运行在同一CPU的情况下,所述突发型任务与所述虚拟机任务按照所述最小运行时长相互之间抢占CPU;在所述突发型任务与所述虚拟机任务从睡眠状态切换为运行状态时,处于运行状态的突发型任务与处于运行状态的所述虚拟机任务之间相互抢占CPU;
所述获取模块还用于获取批量型任务对应的最大等待时长,在所述绑定后的CPU中当前运行的任务切换为所述虚拟机任务时,记录批量型任务对应的等待时长;所述抢占模块还用于当所述等待时长达到所述最大等待时长时,所述批量型任务抢占所述绑定后的CPU,使得所述绑定后的CPU将当前运行的任务切换为所述批量型任务;
所述装置还包括:负载均衡模块,所述负载均衡模块用于:在进行负载均衡时,选择处于第二空闲状态的CPU;获取每个CPU的运行队列中批量型任务的等待时长;将等待时长超过阈值的批量型任务迁移至所述处于第二空闲状态的CPU;以及在进行负载均衡时,遍历寻找负载最重的CPU;若所述负载最重的CPU中存在突发型任务,将所述突发型任务迁移至所述处于第三空闲状态的CPU;否则,在所述负载最重的CPU中选择等待时长最长的批量型任务,将所述等待时长最长的批量型任务迁移至所述处于第三空闲状态的CPU。
6.根据权利要求5所述的装置,其特征在于,所述抢占模块还用于当所述绑定后的CPU中当前运行的任务为突发型任务时,记录所述突发型任务的运行时长;当所述运行时长超过所述突发型任务对应的最小运行时长时,所述虚拟机任务抢占所述绑定后的CPU,使得所述绑定后的CPU中当前运行的任务切换为所述虚拟机任务。
7.根据权利要求5所述的装置,其特征在于,所述抢占模块还用于:
在达到第一调度时机时,选中所述批量型任务运行;
记录所述批量型任务的运行时长;
在达到第二调度时机时,若所述批量型任务的运行长达到预设的时间长,则运行其他批量型任务;否则继续运行所述批量型任务。
8.根据权利要求5所述的装置,其特征在于,所述负载均衡模块还用于:
获取配置信息,所述配置信息包括任务类型对应的权重比例;
获取每个CPU中处于运行状态的任务类型和任务数量;
根据所述任务类型、所述任务数量和所述权重比例计算每个CPU对应的负载。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN202010255407.4A 2020-04-02 2020-04-02 基于云计算的任务调度方法、装置和计算机设备 Active CN111488210B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010255407.4A CN111488210B (zh) 2020-04-02 2020-04-02 基于云计算的任务调度方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010255407.4A CN111488210B (zh) 2020-04-02 2020-04-02 基于云计算的任务调度方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN111488210A CN111488210A (zh) 2020-08-04
CN111488210B true CN111488210B (zh) 2023-04-07

Family

ID=71791498

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010255407.4A Active CN111488210B (zh) 2020-04-02 2020-04-02 基于云计算的任务调度方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN111488210B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764904A (zh) * 2021-01-22 2021-05-07 珠海亿智电子科技有限公司 基于多任务系统中防止低优先级任务饿死的方法
CN115129458B (zh) * 2022-09-02 2022-11-25 腾讯科技(深圳)有限公司 基于容器的进程调度方法、装置、设备及存储介质
CN116450306B (zh) * 2022-09-26 2023-12-26 宁德时代新能源科技股份有限公司 任务调度方法、装置、设备、存储介质及产品
CN116302451B (zh) * 2023-05-18 2023-08-08 广州豪特节能环保科技股份有限公司 一种云计算数据中心离线节能调度的方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019850B (zh) * 2011-09-28 2019-02-12 中兴通讯股份有限公司 一种任务绑定的方法和装置
CN103324525B (zh) * 2013-07-03 2016-01-13 东南大学 一种云计算环境下的任务调度方法
CN106020980A (zh) * 2015-05-21 2016-10-12 中国科学院计算技术研究所 一种面向虚拟桌面的vcpu调度方法
CN109491788B (zh) * 2018-11-01 2022-12-09 郑州云海信息技术有限公司 一种虚拟化平台负载均衡实现方法及装置
CN109684060B (zh) * 2018-12-21 2023-05-23 中国航空工业集团公司西安航空计算技术研究所 一种多类型时间关键任务的混合调度方法
CN110554921B (zh) * 2019-08-30 2024-02-09 腾讯科技(深圳)有限公司 时间片分配方法、装置、存储介质和计算机设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
唐友 郭鑫.《Java语言程序设计》.《Java语言程序设计》.哈尔滨工业大学出版社,2016, *
青岛英谷教育科技股份有限公司.《云计算与虚拟机化技术》.《云计算与虚拟化技术》.西安电子科技大学出版社,2018, *

Also Published As

Publication number Publication date
CN111488210A (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
CN111488210B (zh) 基于云计算的任务调度方法、装置和计算机设备
US10430226B2 (en) Dynamic virtual machine sizing
WO2016078178A1 (zh) 一种虚拟cpu调度方法
US20160378545A1 (en) Methods and architecture for enhanced computer performance
US8959515B2 (en) Task scheduling policy for limited memory systems
Delgado et al. Kairos: Preemptive data center scheduling without runtime estimates
US20140282507A1 (en) Systems and methods of using a hypervisor with guest operating systems and virtual processors
US20140334301A1 (en) Hierarchical allocation of network bandwidth for quality of service
JP2006515690A (ja) 複数のプロセッサを有するデータ処理システムと、複数のプロセッサを有するデータ処理システムのためのタスクスケジューラと、タスクスケジューリングの対応する方法
US20230229495A1 (en) Task scheduling method and apparatus
Garefalakis et al. Neptune: Scheduling suspendable tasks for unified stream/batch applications
CN107203428B (zh) 一种基于Xen的VCPU多核实时调度算法
CN111897637B (zh) 作业调度方法、装置、主机及存储介质
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
CN112925616A (zh) 任务分配方法、装置、存储介质及电子设备
CN114461365A (zh) 一种进程调度处理方法、装置、设备和存储介质
US9229716B2 (en) Time-based task priority boost management using boost register values
Shih et al. Fairness scheduler for virtual machines on heterogonous multi-core platforms
CN115964150A (zh) 一种基于双实时内核的业务处理方法、系统、设备及介质
CN114661415A (zh) 调度方法及计算机系统
CN115437755A (zh) 中断调度方法、电子设备及存储介质
CN114968500A (zh) 一种任务调度方法、装置、设备及存储介质
CN116841751B (zh) 一种多任务线程池的策略配置方法、装置和存储介质
Rahman et al. OPTiC: Opportunistic graph processing in multi-tenant clusters
Lee et al. Fine-Grained I/O Traffic Control Middleware for I/O Fairness in Virtualized System

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

Ref country code: HK

Ref legal event code: DE

Ref document number: 40028357

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20231029

Address after: 100089 Beijing Haidian District Zhichun Road 49 No. 3 West 309

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

TR01 Transfer of patent right