CN111930516B - 一种负载均衡方法及相关装置 - Google Patents
一种负载均衡方法及相关装置 Download PDFInfo
- Publication number
- CN111930516B CN111930516B CN202010981917.XA CN202010981917A CN111930516B CN 111930516 B CN111930516 B CN 111930516B CN 202010981917 A CN202010981917 A CN 202010981917A CN 111930516 B CN111930516 B CN 111930516B
- Authority
- CN
- China
- Prior art keywords
- processing unit
- processed
- objects
- load balancing
- time delay
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开一种负载均衡方法及相关装置,在监控到满足负载均衡的触发条件时启动负载均衡。在负载均衡过程,获取多个处理单元中每个处理单元中所有待处理对象对应的静态权重和阻塞时长,根据阻塞时长按照预设规则调整静态权重,得到每个处理单元中所有待处理对象对应的时延权重。以时延权重作为负载均衡的指标,根据每个处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。依据时延权重进行负载均衡,使得低优先级的待处理对象也可以分配到处理单元上进行处理,最大程度的缓解了待处理对象无法被处理单元处理的现象。同时使得依赖该单个待处理对象的其它待处理对象也可以正常运行,进而提升了整体运行效率。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种负载均衡方法及相关装置。
背景技术
负载均衡(Load Balance)是将工作任务分摊到多个处理单元,从而提高并发处理能力。例如在多个计算机(计算机集群)、网络连接、中央处理器(Central ProcessingUnit,CPU)、磁盘驱动器或其他处理单元中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。
目前,负载均衡操作基于优先级进行,例如在多个CPU之间分配进程时,进程有自己的优先级,严格按照进程优先级在系统的各CPU上运行优先级topN的进程,同优先级的进程采用先进先出或轮转的方式。
然而这种方式优先级严格,高优先级进程存在时,低优先级的进程无法获取CPU,就会存在低优先级进程的饥饿现象。由于进程之间往往存在依赖关系,单个进程的饥饿会导致其它依赖它的进程也无法运行,进而造成整个系统的运行效率低下。
发明内容
为了解决上述技术问题,本申请提供了一种负载均衡方法及相关装置,最大程度的缓解了待处理对象无法被处理单元处理的现象。同时,使得依赖该单个待处理对象的其它待处理对象也可以正常运行,进而提升了整体运行效率。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供一种负载均衡方法,所述方法包括:
对待处理对象和多个处理单元进行监控,根据监控结果确定是否满足负载均衡的触发条件;
若确定满足负载均衡的触发条件,则启动负载均衡;
在所述负载均衡的过程中,获取所述多个处理单元中每个所述处理单元对应的阻塞时长和每个所述处理单元中所有待处理对象对应的静态权重;
根据所述阻塞时长按照预设规则调整所述静态权重,得到每个所述处理单元中所有待处理对象对应的时延权重;
根据每个所述处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。
第二方面,本申请实施例提供一种负载均衡装置,所述装置包括监控单元、启动单元、获取单元、确定单元和均衡单元:
所述监控单元,用于对待处理对象和多个处理单元进行监控,根据监控结果确定是否满足负载均衡的触发条件;
所述启动单元,用于若确定满足负载均衡的触发条件,则启动负载均衡;
所述获取单元,用于在所述负载均衡的过程中,获取所述多个处理单元中每个所述处理单元对应的阻塞时长和每个所述处理单元中所有待处理对象对应的静态权重;
所述确定单元,用于根据所述阻塞时长按照预设规则调整所述静态权重,得到每个所述处理单元中所有待处理对象对应的时延权重;
所述均衡单元,用于根据每个所述处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。
第三方面,本申请实施例提供一种用于负载均衡的电子设备,所述电子设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行第一方面所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面所述的方法。
由上述技术方案可以看出,对待处理对象和多个处理单元进行监控,若根据监控结果确定满足负载均衡的触发条件,则启动负载均衡。在负载均衡过程中,为了均衡地将待处理对象分配给多个处理单元,可以获取多个处理单元中每个处理单元对应的阻塞时长和每个处理单元中所有待处理对象对应的静态权重,根据阻塞时长按照预设规则调整静态权重,得到每个处理单元中所有待处理对象对应的时延权重。阻塞时长越长,得到的时延权重通常越大,表征处理单元上的负载越大,故该处理单元不适合再分配待处理对象,甚至需要将该处理单元上的待处理对象拉取至其他负载较小的处理单元上。基于时延权重的以上特性,可以以时延权重作为负载均衡的指标,根据每个处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。这样,即使高优先级对低优先级的待处理对象造成了阻塞等影响,也可以依据时延权重进行负载均衡,例如将阻塞的处理单元上的低优先级待处理对象迁移到其他负载较小的处理单元上,或者避免将待处理对象分配至阻塞的处理单元上,使得低优先级的待处理对象也可以分配到处理单元上进行处理,最大程度的缓解了待处理对象无法被处理单元处理的现象。同时,使得依赖该单个待处理对象的其它待处理对象也可以正常运行,进而提升了整体运行效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术成员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种负载均衡方法的系统架构示意图;
图2为本申请实施例提供的一种负载均衡方法的流程图;
图3为本申请实施例提供的一种实现负载均衡的单个机器的整体架构示意图;
图4为本申请实施例提供的一种CPU的拓扑结构示意图;
图5为本申请实施例提供的另一种负载均衡方法的流程图;
图6为本申请实施例提供的一种负载均衡装置的结构图;
图7为本申请实施例提供的一种终端设备的结构图;
图8为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
首先对本申请实施例可能涉及的名词进行解释:
进程的权重:进程的权重通常指进程的静态权重,影响进程可获取CPU运行时间大小的度量值,也代表着进程负载。进程的权重越大,运行该进程的CPU的负载越大。
进程调度:在待运行进程中按照某种规则选择其中的一个进程运行。
系统负载均衡:多CPU的操作系统在各CPU之间平衡进程的数量,希望进程能公平的获取CPU时间。
运行队列(run queue,rq):所有可以运行的归属同一个调度算法的进程组成的队列,是每个CPU的每调度类对应一个运行队列。
调度组:属于同一级别的CPU归为一个调度组。
调度域:同一级别的所有调度组组成一个调度域。
相关技术中,基于优先级进行负载均衡,以操作系统的负载均衡为例,一种基于优先级进行负载均衡的方式是:在多个CPU之间分配进程时,进程有自己的优先级,严格按照进程优先级在系统的各CPU上运行优先级topN的进程,优先级严格,高优先级进程存在时,低优先级的进程无法获取CPU,就会存在低优先级进程无法被CPU处理的现象,也可以称为饥饿现象。
另一种基于优先级进行负载均衡的方式是:现代操作系统同时存在多种调度类,进程的调度会根据需求不同使用不同的调度类,调度类之间存在严格的优先级关系,高优先级调度类存在进程时,低优先级调度类的进程无法获取CPU运行。对于同一调度类中的进程,基于进程的静态权重进行负载均衡,未考虑调度类之间的影响的,进而导致同调度类之间保证了进程不会饥饿,但如果某个CPU上有使用高优先级调度类的进程存在时,无法及时的将低优先级调度类的进程迁移到其它CPU上,进而导致该CPU上存在进程饥饿现象,即低优先级调度类无法被CPU运行。
为了解决上述技术问题,本申请实施例提供一种负载均衡方法,该方法基于阻塞时长动态调整的权重即时延权重作为负载均衡的指标,然后根据时延权重再均衡的分配到各个CPU上,最大程度的缓解了待处理对象无法被处理单元处理的现象。同时,使得依赖该单个待处理对象的其它待处理对象也可以正常运行,进而提升了整体运行效率。
需要说明的是,本申请实施例提供的方法可以应用到多种应用场景中,例如可以应用于单台机器的操作系统内部(例如linux)的负载均衡,即多CPU操作系统在各CPU(处理单元)之间平衡进程(待处理对象)的数量,将进程均衡的分配到各个CPU上,希望进程能公平的获取CPU运行时间;也可以应用于集群的负载均衡,即将任务(待处理对象)均衡的分配到各个机器(处理单元)上,等等。后续将以操作系统内部的负载均衡对本申请实施例提供的负载均衡方法进行详细介绍。
本申请实施例所提供的方法涉及到云技术领域,例如大数据(Big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
参见图1,图1为本申请实施例提供的负载均衡方法的系统架构示意图。该系统架构中包括终端设备101和服务器102,服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备101可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备101以及服务器102可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在图1所示的系统架构图中,终端设备101可以向服务器102发送任务请求以请求服务器102执行任务,服务器102可以将该任务通过进程进行执行,此时,需要服务器102将进程均衡的分配到服务器102包括的多个CPU上。服务器102对待处理对象和多个处理单元进行监控,若根据监控结果确定满足负载均衡的触发条件,则启动负载均衡。在负载均衡过程中,服务器102可以获取多个处理单元(例如处理单元1、处理单元2……处理单元N)中每个处理单元对应的阻塞时长和每个处理单元中所有待处理对象对应的静态权重,根据阻塞时长按照预设规则调整静态权重,得到每个处理单元中所有待处理对象对应的时延权重。
阻塞时长越长,得到的时延权重通常越大,表征其对应的处理单元上的负载越大,故该处理单元不适合再分配待处理对象,甚至需要将该处理单元上的处理对象拉取至其他负载较小的处理单元上。基于时延权重的以上特性,服务器102可以以时延权重作为负载均衡的指标,根据每个处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。
这样,即使高优先级对低优先级的待处理对象造成了阻塞等影响,也可以依据时延权重进行负载均衡,例如将阻塞的处理单元上的低优先级待处理对象迁移到其他负载较小的处理单元上,或者避免将待处理对象分配至阻塞的处理单元上,使得低优先级的待处理对象也可以分配到处理单元上进行处理,最大程度的缓解了待处理对象无法被处理单元处理的现象。同时,使得依赖该单个待处理对象的其它待处理对象也可以正常运行,进而提升了整体运行效率。
其中,在图1所示的系统架构中,以操作系统内部的负载均衡为例进行介绍,此时,待处理对象可以是进程,处理单元可以是CPU。
接下来,将主要以操作系统内部的负载均衡为例,结合附图对本申请实施例提供的负载均衡方法进行详细介绍。
参见图2,图2示出了一种负载均衡方法的流程图,所述方法包括:
S201、对待处理对象和多个处理单元进行监控,根据监控结果确定是否满足负载均衡的触发条件。
S202、若确定满足负载均衡的触发条件,则启动负载均衡。
在本实施例中,可以实时对待处理对象和处理单元进行监控,从而在满足负载均衡的触发条件的情况下,启动负载均衡。
触发条件决定了什么时机实施负载均衡,执行S203-S205的步骤。若满足触发条件,则启动负载均衡。在一种可能的实现方式中,触发条件可以包括以下一种或多种组合:待处理对象新创建或被唤醒、存在空闲的目标处理单元以及到达负载均衡周期即周期性进行负载均衡。
S203、在所述负载均衡的过程中,获取多个处理单元中每个所述处理单元对应的阻塞时长和每个所述处理单元中所有待处理对象对应的静态权重。
其中,阻塞时长是在处理单元发生阻塞时,对处理单元的调度延时进行计时得到的;每个进程拥有自己的静态权重,静态权重可以是用户自定义的,进而基于进程的静态权重可以确定处理单元中所有进程对应的静态权重,该处理单元中所有进程对应的静态权重为其运行队列的静态权重,即运行队列中所有进程的静态权重之和。这样,当启动负载均衡以对个处理单元的负载进行平衡时,便可以得到各个处理单元对应的阻塞时长,以用于计算负载平衡所依据的指标,即时延权重。
在本实施例中,发生阻塞的原因可以包括很多种,例如被高优先级调度类的进程抢占,或者CPU上分配给某调度类的时间片消耗完了等原因。
在本申请实施例中,根据负载均衡方法应用场景的不同,处理单元以及后续待处理对象所有不同,以操作系统内部的负载均衡为例,处理单元为CPU,待处理对象为进程。
需要说明的是,在本实施例中,以操作系统内部的负载均衡为例,单个机器例如服务器的整体架构可以参见图3所示,主要分为5个模块:静态权重计算模块301、时延计时模块302、时延权重计算模块303、进程迁移模块304以及负载均衡模块305,本申请实施例提供的负载均衡方法可以基于图3所示的整体架构实现。其中,静态权重计算模块301(又称为per-CPU进程权重计算模块)主要是基于per-CPU的运行队列来计算该运行队列中每个进程的静态权重。时延计时模块302(又称为per-CPU时延计时模块)主要负责运行队列因阻塞导致调度延迟的时长(即调度延时)进行计时,得到阻塞时长。具体功能简化如下:本调度类的运行队列中存在可以运行的进程时,本运行队列却阻塞了,则开始计时;当运行队列中没有可以运行的进程了或本运行队列的某个进程占有的CPU可以运行了,则计时清零。时延权重计算模块303主要负责基于一个CPU中所有进程对应的静态权重和阻塞时长,按照预设规则来重新获取一个CPU中所有进程对应的时延权重。进程迁移模块304负责将进程在各个CPU之间进行迁移。负载均衡模块305是整个操作系统的大脑,决定了什么时机进行负载均衡,以及什么时机需要在各个CPU之间迁移进程来实施负载均衡以求达到各CPU之间负载的相对平衡。
S204、根据所述阻塞时长按照预设规则调整所述静态权重,得到每个所述处理单元中所有待处理对象对应的时延权重。
S204的步骤可以是通过图3所示的时延权重计算模块303完成,时延权重计算模块303可以在处理单元中所有待处理对象对应的静态权重的基础上,基于阻塞时长按照预设规则调整得到的。预设规则可以是基于阻塞时长将静态权重进行翻倍,也可以是基于时间线性增加静态权重。比如阻塞时长以4毫秒作为一个单位,对静态权重进行倍增,即每4毫秒增加一倍。阻塞时长为0,时延权重就等于静态权重。
S205、根据每个所述处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。
阻塞时长越长,得到的时延权重通常越大,表征其对应的处理单元上的负载越大,故该处理单元不适合再分配待处理对象,甚至需要将该处理单元上的处理对象拉取至其他负载较小的处理单元上。基于时延权重的以上特性,可以以时延权重作为负载均衡的指标,根据每个处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。
可以理解的是, S201中介绍了触发条件多种可能,在不同触发条件下启动负载均衡,即启动负载均衡的时机不同,S205的实现方式有所不同。若触发条件为待处理对象新创建或被唤醒,此时需要从多个处理单元中选择负载较小的处理单元对待处理对象进行处理,从而保证多个处理单元之间负载均衡。在这种情况下,若多个处理单元划分成多个群组,S205的实现方式可以是根据每个处理单元中所有待处理对象对应的时延权重确定多个群组中每个群组中所有待处理对象对应的时延权重,从时延权重最小的群组中获取时延权重最小的第一处理单元。由于第一处理单元中所有待处理对象对应的时延权重最小,则第一处理单元的负载最小,故将待处理对象分配到第一处理单元上。
若处理单元是CPU,待处理对象是进程,操作系统内部的负载均衡是和CPU的拓扑结构紧密结合的,根据CPU的拓扑结构,操作系统分为不同的调度域和调度组(即群组),调度域是分层级的,CPU的拓扑结构可以参见图4所示。在图4中,从上向下,分别是集群(NUMA)调度域、节点调度域、CPU调度域、物理核(CORE)调度域、同步多线程技术(SimulateMultiThreading,SMT)调度域,其中,集群调度域最大,集群调度域包括所有CPU,SMT调度域最小。整个操作系统的所有调度域形成一个树形的结构,树节点上均掉接着若干个调度组(group)。例如,集群调度域包括两个调度组,分别是调度组1和调度组2,如图4中虚线1所示;节点调度域包括两个调度组,分别是调度组1和调度组2,如图4中虚线2所示;CPU调度域包括两个调度组,分别是调度组1和调度组2,如图4中虚线3所示;CORE调度域包括两个调度组,分别是调度组1和调度组2,如图4中虚线4所示;SMT调度域包括两个调度组,分别是调度组1和调度组2,如图4中虚线5所示。
基于图4所示的CPU的拓扑结构,触发条件为进程新创建或被唤醒,S205的具体实现方式可以是基于图4的调度域的层级,从上到下依次的调度域中负载(时延权重)最小的调度组中选择负载(时延权重)最小的CPU,将进程分配至该CPU对应的运行队列中。其中,查找负载最小的调度组时,是将调度组中所有的CPU中所有待处理对象对应的时延权重进行加和,作为调度组中所有待处理对象对应的时延权重,进而确定出负载最小的调度组。
若触发条件为存在空闲的目标处理单元和/或到达负载均衡周期,此时通常可以由目标处理单元从其他负载较大的处理单元上拉取待处理对象,从而保证多个处理单元之间负载均衡。在这种情况下,若多个处理单元划分成多个群组,S205的实现方式可以是根据每个处理单元中所有待处理对象对应的时延权重确定多个群组中每个群组中所有待处理对象对应的时延权重,从时延权重最大的群组中获取时延权重最大的第二处理单元,由于第二处理单元中所有待处理对象的时延权重最大,则第二处理单元的负载最大,而目标处理单元空闲,因此,可以利用目标处理单元分担一部分负载,以求达到各个处理单元之间负载的相对平衡。故可以从第二处理单元上获取待处理对象,并将待处理对象迁移到所述目标处理单元上。
若处理单元是CPU,待处理对象是进程,基于图4所示的CPU的拓扑结构,S205的具体实现方式可以是基于图4的调度域的层级,从上到下依次的调度域中负载(时延权重)最大的调度组中选择负载(时延权重)最大的CPU即第二CPU,通过目标CPU从第二CPU上拉取进程。将进程分配至该CPU对应的运行队列中。其中,查找负载最大的调度组时,是将调度组中所有的CPU中所有待处理对象对应的时延权重进行加和,作为调度组对应的时延权重,进而确定出负载最大的调度组。
需要说明的是,若触发条件包括存在空闲的目标处理单元,在确定第二处理单元后,并不是所有的第二处理单元都适合进行进程迁移,例如将第二处理单元的进程迁移到目标处理单元后,由于该进程可能是造成第二处理单元阻塞的高优先级进程,从而造成目标处理单元阻塞,没有意义。因此,为了避免这种情况的发生,在从第二处理单元上获取待处理对象,并将待处理对象迁移到目标处理单元上之前,可以先确定第二处理单元是否满足第一迁移条件,若满足,则执行从第二处理单元上获取待处理对象,并将待处理对象迁移到目标处理单元上的步骤。
其中,第一迁移条件为第二处理单元上包括多个待处理对象,或第一迁移条件为第二处理单元上包括一个待处理对象且待处理对象未处于运行状态。也就是说,若第二处理单元上只有一个待处理对象,且该待处理对象正在运行,则退出负载均衡过程。否则,将待处理对象迁移到目标处理单元上。
需要说明的是,本申请实施例对迁移的待处理对象的数量不做限定,可以是一个,也可以是多个。通常情况下,若触发条件同时包括存在空闲的目标处理单元和到达负载均衡周期,则迁移的待处理对象是一个,主要是通过周期性负载均衡实现各个处理单元的负载相对平衡。
需要说明的是,若触发条件为到达负载均衡周期,由于目标处理单元位于群组中,在进行负载均衡时,不仅要考虑处理单元之间负载的平衡,还需要考虑群组之间负载的平衡。在一些情况下,虽然目标处理单元和第二处理单元之间时延权重虽然差距略大,但是目标处理单元所在群组与第二处理单元所在群组中所有待处理对象对应的时延权重差距却很小,两个群组基本达到平衡,此时如果将第二处理单元的待处理对象迁移到目标处理单元上,反而会造成群组之间负载的不平衡。因此,为了避免这种情况的发生,在确定第二处理单元后,可以确定目标处理单元所在群组中所有待处理对象对应的时延权重与第二处理单元所在群组中所有待处理对象对应的时延权重是否满足第二迁移条件,从而确定目标处理单元所在群组与第二处理单元所在群组之间的负载是否平衡。若满足,则说明目标处理单元所在群组与第二处理单元所在群组之间的负载不平衡,执行从第二处理单元上获取待处理对象,并将待处理对象迁移到所述目标处理单元上。
其中,第二迁移条件可以是两个群组中所有待处理对象对应的时延权重的差值超出预设阈值例如20%,若目标处理单元所在群组中所有待处理对象对应的时延权重与第二处理单元所在群组中所有待处理对象对应的时延权重差别超出20%,则认为两个群组之间负载不平衡,可以从第二处理单元上获取待处理对象,并将待处理对象迁移到所述目标处理单元上。否则,两个群组之间负载平衡,退出负载均衡过程。
在一些可能的实施例中,负载均衡的目的不仅是保证各个处理单元之间负载的平衡,保证各个群组之间的负载平衡,还需要保证负载均衡的多个处理单元或多个群组的负载不至于过大,从而减轻处理压力。在这种情况下,在确定目标处理单元所在群组与第二处理单元所在群组之间的负载是否平衡之前,还可以确定目标处理单元所在群组中所有待处理对象对应的时延权重是否达到平均值,即确定目标处理单元所在群组的负载是否过大。若否,则说明目标处理单元所在群组的负载较小,执行确定目标处理单元所在群组中所有待处理对象对应的时延权重与第二处理单元所在群组中所有待处理对象对应的时延权重是否满足第二迁移条件的步骤。
需要说明的是,在到达负载均衡周期时,处理单元可能包括很多,但是并非每个处理单元都有资格进行负载均衡,通常情况下,每个群组中选取一个处理单元作为目标处理单元进行负载均衡。因此,一种可能的实现方式中还可以对群组中的处理单元进行资格确认,将群组中满足负载均衡资格的处理单元,确定为目标处理单元。
负载均衡资格包括以下一种或多种组合:处理单元未发生阻塞、处理单元位于群组中预设位置以及处理单元为空闲处理单元。
在一些情况下,若目标处理单元本身发生阻塞,即目标处理单元上存在高级别进程,若将待处理对象迁移到目标处理单元,仍然阻塞,没有意义。因此,为了避免这种情况的发生,目标处理单元需要满足的一种负载均衡资格为未发生阻塞。
当然,在一些情况下,也可以选取群组中预设位置的处理单元作为目标处理单元,例如将群组中第一顺位的处理单元作为目标处理单元。或者,选择群组中空闲的处理单元作为目标处理单元。
可以理解的是,从第二处理单元上获取待处理对象,并将待处理对象迁移到目标处理单元上所需实现的目的是负载平衡。因此,为了保证通过迁移的方式实现负载平衡,在一种实施例中,从第二处理单元上获取待处理对象,并将待处理对象迁移到目标处理单元上的实现方式可以是从第二处理单元上获取一个待处理对象,并将这一个待处理对象迁移到目标处理单元上,将第二处理单元中所有待处理对象对应的时延权重减去这一个待处理对象对应的静态权重,并将目标处理单元中所有待处理对象对应的时延权重加上这一个待处理对象对应的静态权重,重新执行确定目标处理单元所在群组中所有待处理对象对应的时延权重与第二处理单元所在群组中所有待处理对象对应的时延权重是否满足第二迁移条件的步骤。如果满足,则说明这两个群组之间的负载未达到平衡,继续执行从第二处理单元上获取一个待处理对象,并将这一个待处理对象迁移到目标处理单元上,直到目标处理单元所在群组与第二处理单元所在群组达到平衡。如果不满足,则说明这两个群组之间的负载达到平衡,退出负载均衡过程。
需要说明的是,在迁移待处理对象时,第二处理单元和目标处理单元中所有待处理对象对应的时延权重变化时,加减的是待处理对象的静态权重,而不是时延权重,从而保证更有可能将阻塞的待处理对象迁走,否则会存在阻塞的处理单元上会存在一个待处理对象无法迁走的情况。
由上述技术方案可以看出,对待处理对象和多个处理单元进行监控,若根据监控结果确定满足负载均衡的触发条件,则启动负载均衡。在负载均衡过程中,为了均衡地将待处理对象分配给多个处理单元,可以获取多个处理单元中每个处理单元对应的阻塞时长和每个处理单元中所有待处理对象对应的静态权重,根据阻塞时长按照预设规则调整静态权重,得到每个处理单元中所有待处理对象对应的时延权重。阻塞时长越长,得到的时延权重通常越大,表征处理单元上的负载越大,故该处理单元不适合再分配待处理对象,甚至需要将该处理单元上的待处理对象拉取至其他负载较小的处理单元上。基于时延权重的以上特性,可以以时延权重作为负载均衡的指标,根据每个处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。这样,即使高优先级对低优先级的待处理对象造成了阻塞等影响,也可以依据时延权重进行负载均衡,例如将阻塞的处理单元上的低优先级待处理对象迁移到其他负载较小的处理单元上,或者避免将待处理对象分配至阻塞的处理单元上,使得低优先级的待处理对象也可以分配到处理单元上进行处理,最大程度的缓解了待处理对象无法被处理单元处理的现象。同时,使得依赖该单个待处理对象的其它待处理对象也可以正常运行,进而提升了整体运行效率。
本申请实施例提供的负载均衡方法在已有负载均衡的基础上,将基于阻塞时长动态调整的时延权重作为指标,可以应对未来越来越复杂的多调度类同时使用场景,保证了在调度类之间解耦的同时,照顾到了高优先级调度类对低优先级调度类的影响,最大程度的缓解了进程饥饿。
接下来,将结合实际应用场景对本申请实施例提供的负载均衡方法进行介绍。在该应用场景,由于现代操作系统存在多种调度类,进程的调度会根据需求不同使用不同的调度类,调度类之间存在严格的优先级关系,高优先级调度类存在进程时,低优先级调度类的进程无法获取CPU运行。对于同一调度类中的进程,基于进程的静态权重进行负载均衡,进而导致同调度类之间保证了进程不会出现饥饿现象,但如果某个CPU上有使用高优先级调度类的进程存在时,无法及时的将低调度类的进程迁移到其它CPU上,进而导致该CPU上存在进程饥饿现象。为此,本申请实施例提供一种基于阻塞时长动态调整的时延权重进行负载均衡的方法,参见图5,所述方法包括:
S501、在CPU某个调度类的所有进程阻塞时,通过时延计时模块对调度延时进行计时,得到阻塞时长。
S502、通过负载均衡模块确定是否满足负载均衡触发条件,若是,执行S503,若否,结束流程。
S503、通过静态权重计算模块得到CPU中所有进程对应的静态权重。
S504、通过时延权重计算模块基于CPU中所有进程对应的静态权重和阻塞时长,按照预设规则确定CPU中所有进程对应的时延权重。
S505、若触发条件为进程新创建或被唤醒,将该进程分配至负载最小的调度组中负载最小的CPU对应的运行队列中。
S506、若触发条件为存在空闲的CPU,通过进程迁移模块将负载最大的调度组中负载最大的CPU中的一个进程迁移到空闲CPU上。
S507、若触发条件为到达负载均衡周期,从调度组中选择空闲CPU。
S508、通过进程迁移模块将负载最大的调度组中负载最大的CPU中的一个进程迁移到该空闲CPU上。
S509、确定空闲CPU所在调度组与负载最大的CPU所在的调度组是否达到负载平衡,若是,结束流程,若否,返回S508。
基于图2对应实施例提供的负载均衡方法,本申请实施例还提供一种负载均衡装置600,参见图6,所述装置600包括监控单元601、启动单元602、获取单元603、确定单元604和均衡单元605:
所述监控单元601,用于对待处理对象和多个处理单元进行监控,根据监控结果确定是否满足负载均衡的触发条件;
所述启动单元602,用于若确定满足负载均衡的触发条件,则启动负载均衡;
所述获取单元603,用于在所述负载均衡的过程中,获取所述多个处理单元中每个所述处理单元对应的阻塞时长和每个所述处理单元中所有待处理对象对应的静态权重;
所述确定单元604,用于根据所述阻塞时长按照预设规则调整所述静态权重,得到每个所述处理单元中所有待处理对象对应的时延权重;
所述均衡单元605,用于根据每个所述处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。
在一种可能的实现方式中,若所述多个处理单元划分成多个群组,所述均衡单元605,用于:
根据每个所述处理单元中所有待处理对象对应的时延权重确定多个群组中每个群组中所有待处理对象对应的时延权重;
从时延权重最小的群组中获取时延权重最小的第一处理单元;
将所述待处理对象分配到所述第一处理单元上。
在一种可能的实现方式中,若所述多个处理单元划分成多个群组,所述均衡单元605,用于:
根据每个所述处理单元中所有待处理对象对应的时延权重确定多个群组中每个群组中所有待处理对象对应的时延权重;
从时延权重最大的群组中获取时延权重最大的第二处理单元;
从所述第二处理单元上获取待处理对象,并将所述待处理对象迁移到目标处理单元上。
在一种可能的实现方式中,若所述触发条件包括存在空闲的目标处理单元,所述确定单元604,还用于:
确定所述第二处理单元是否满足第一迁移条件;
若满足,触发所述均衡单元605执行从所述第二处理单元上获取待处理对象,并将所述待处理对象迁移到所述目标处理单元上。
在一种可能的实现方式中,所述第一迁移条件为所述第二处理单元上包括多个待处理对象,或所述第一迁移条件为所述第二处理单元上包括一个待处理对象且所述待处理对象未处于运行状态。
在一种可能的实现方式中,所述触发条件包括到达负载均衡周期,所述确定单元604,还用于:
确定所述目标处理单元所在群组中所有待处理对象对应的时延权重与所述第二处理单元所在群组中所有待处理对象对应的时延权重是否满足第二迁移条件;
若满足,触发所述均衡单元605执行从所述第二处理单元上获取待处理对象,并将所述待处理对象迁移到所述目标处理单元上。
在一种可能的实现方式中,所述均衡单元605,具体用于:
从所述第二处理单元上获取一个待处理对象,并将所述一个待处理对象迁移到所述目标处理单元上;
将所述第二处理单元中所有待处理对象对应的时延权重减去所述一个待处理对象对应的静态权重,并将所述目标处理单元中所有待处理对象对应的时延权重加上所述一个待处理对象对应的静态权重;
重新执行确定所述目标处理单元所在群组中所有待处理对象对应的时延权重与所述第二处理单元所在群组中所有待处理对象对应的时延权重是否满足第二迁移条件的步骤,直到所述目标处理单元所在群组与所述第二处理单元所在群组达到平衡。
在一种可能的实现方式中,所述确定单元604,还用于:
确定所述目标处理单元所在群组中所有待处理对象对应的时延权重是否达到平均值;
若否,则执行所述确定所述目标处理单元所在群组中所有待处理对象对应的时延权重与所述第二处理单元所在群组中所有待处理对象对应的时延权重是否满足第二迁移条件的步骤。
在一种可能的实现方式中,所述确定单元604,还用于:
对群组中的处理单元进行资格确认;
将群组中满足负载均衡资格的处理单元,确定为所述目标处理单元。
在一种可能的实现方式中,所述负载均衡资格包括以下一种或多种组合:
处理单元未发生阻塞、处理单元位于群组中预设位置以及处理单元为空闲处理单元。
在一种可能的实现方式中,所述确定单元604,还用于:
若处理单元发生阻塞,对所述处理单元的调度延时进行计时,得到阻塞时长。
在一种可能的实现方式中,所述处理单元为CPU,所述待处理对象为进程。
本申请实施例还提供了一种用于负载均衡的电子设备,该电子设备用于执行负载均衡方法,该电子设备可以是终端设备,以终端设备为智能手机为例:
图7示出的是与本申请实施例提供的终端设备相关的智能手机的部分结构的框图。参考图7,智能手机包括:射频(英文全称:Radio Frequency,英文缩写:RF)电路710、存储器720、输入单元730、显示单元740、传感器750、音频电路760、无线保真(英文全称:wireless fidelity,英文缩写:WiFi)模块770、处理器780、以及电源790等部件。输入单元730可包括触控面板731以及其他输入设备732,显示单元740可包括显示面板741。本领域技术人员可以理解,图7中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储器720可用于存储软件程序以及模块,处理器780通过运行存储在存储器720的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器780是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体监控。可选的,处理器780可包括一个或多个处理单元;优选的,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器780中。
在本实施例中,所述终端设备中的处理器780可以执行以下步骤;
对待处理对象和多个处理单元进行监控,根据监控结果确定是否满足负载均衡的触发条件;
若确定满足负载均衡的触发条件,则启动负载均衡;
在所述负载均衡的过程中,获取所述多个处理单元中每个所述处理单元对应的阻塞时长和每个所述处理单元中所有待处理对象对应的静态权重;
根据所述阻塞时长按照预设规则调整所述静态权重,得到每个所述处理单元中所有待处理对象对应的时延权重;
根据每个所述处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。
该电子设备还可以包括服务器,本申请实施例还提供服务器,请参见图8所示,图8为本申请实施例提供的服务器800的结构图,服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。
服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
在本实施例中,所述服务器800中的中央处理器822可以执行以下步骤;
对待处理对象和多个处理单元进行监控,根据监控结果确定是否满足负载均衡的触发条件;
若确定满足负载均衡的触发条件,则启动负载均衡;
在所述负载均衡的过程中,获取所述多个处理单元中每个所述处理单元对应的阻塞时长和每个所述处理单元中所有待处理对象对应的静态权重;
根据所述阻塞时长按照预设规则调整所述静态权重,得到每个所述处理单元中所有待处理对象对应的时延权重;
根据每个所述处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。
根据本申请的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述各个实施例所述的负载均衡方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例各种可选实现方式中提供的方法。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术成员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (14)
1.一种负载均衡方法,其特征在于,所述方法包括:
对待处理对象和多个处理单元进行监控,根据监控结果确定是否满足负载均衡的触发条件;
若确定满足负载均衡的触发条件,则启动负载均衡;
在所述负载均衡的过程中,获取所述多个处理单元中每个所述处理单元对应的阻塞时长和每个所述处理单元中所有待处理对象对应的静态权重,所述静态权重表征所述待处理对象的负载情况,所述阻塞时长是在所述处理单元发生阻塞时,对所述处理单元的调度延时进行计时得到的,所述处理单元发生阻塞的原因包括高优先级对低优先级的待处理对象的处理单元抢占;
根据所述阻塞时长按照预设规则调整所述静态权重,得到每个所述处理单元中所有待处理对象对应的时延权重,所述时延权重表征所述处理单元发生阻塞时所述待处理对象的负载情况,所述阻塞时长越大,得到的所述时延权重越大;
根据每个所述处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。
2.根据权利要求1所述的方法,其特征在于,若所述多个处理单元划分成多个群组,所述根据每个所述处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上,包括:
根据每个所述处理单元中所有待处理对象对应的时延权重确定多个群组中每个群组中所有待处理对象对应的时延权重;
从时延权重最小的群组中获取时延权重最小的第一处理单元;
将所述待处理对象分配到所述第一处理单元上。
3.根据权利要求1所述的方法,其特征在于,若所述多个处理单元划分成多个群组,所述根据每个所述处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上,包括:
根据每个所述处理单元中所有待处理对象对应的时延权重确定多个群组中每个群组中所有待处理对象对应的时延权重;
从时延权重最大的群组中获取时延权重最大的第二处理单元;
从所述第二处理单元上获取待处理对象,并将所述待处理对象迁移到目标处理单元上。
4.根据权利要求3所述的方法,其特征在于,若所述触发条件包括存在空闲的目标处理单元,从所述第二处理单元上获取待处理对象,并将所述待处理对象迁移到目标处理单元上之前,所述方法还包括:
确定所述第二处理单元是否满足第一迁移条件;
若满足,执行从所述第二处理单元上获取待处理对象,并将所述待处理对象迁移到所述目标处理单元上。
5.根据权利要求4所述的方法,其特征在于,所述第一迁移条件为所述第二处理单元上包括多个待处理对象,或所述第一迁移条件为所述第二处理单元上包括一个待处理对象且所述待处理对象未处于运行状态。
6.根据权利要求3所述的方法,其特征在于,若所述触发条件包括到达负载均衡周期,从所述第二处理单元上获取待处理对象,并将所述待处理对象迁移到目标处理单元上之前,所述方法还包括:
确定所述目标处理单元所在群组中所有待处理对象对应的时延权重与所述第二处理单元所在群组中所有待处理对象对应的时延权重是否满足第二迁移条件;
若满足,执行从所述第二处理单元上获取待处理对象,并将所述待处理对象迁移到所述目标处理单元上。
7.根据权利要求6所述的方法,其特征在于,从所述第二处理单元上获取待处理对象,并将所述待处理对象迁移到目标处理单元上,包括:
从所述第二处理单元上获取一个待处理对象,并将所述一个待处理对象迁移到所述目标处理单元上;
将所述第二处理单元中所有待处理对象对应的时延权重减去所述一个待处理对象对应的静态权重,并将所述目标处理单元中所有待处理对象对应的时延权重加上所述一个待处理对象对应的静态权重;
重新执行确定所述目标处理单元所在群组中所有待处理对象对应的时延权重与所述第二处理单元所在群组中所有待处理对象对应的时延权重是否满足第二迁移条件的步骤,直到所述目标处理单元所在群组与所述第二处理单元所在群组达到平衡。
8.根据权利要求6所述的方法,其特征在于,所述确定所述目标处理单元所在群组中所有待处理对象对应的时延权重与所述第二处理单元所在群组中所有待处理对象对应的时延权重是否满足第二迁移条件之前,所述方法还包括:
确定所述目标处理单元所在群组中所有待处理对象对应的时延权重是否达到平均值;
若否,则执行所述确定所述目标处理单元所在群组中所有待处理对象对应的时延权重与所述第二处理单元所在群组中所有待处理对象对应的时延权重是否满足第二迁移条件的步骤。
9.根据权利要求6-8任一项所述的方法,其特征在于,所述方法还包括:
对群组中的处理单元进行资格确认;
将群组中满足负载均衡资格的处理单元,确定为所述目标处理单元。
10.根据权利要求9所述的方法,其特征在于,所述负载均衡资格包括以下一种或多种组合:
处理单元未发生阻塞、处理单元位于群组中预设位置以及处理单元为空闲处理单元。
11.根据权利要求1所述的方法,其特征在于,所述处理单元为CPU,所述待处理对象为进程。
12.一种负载均衡装置,其特征在于,所述装置包括监控单元、启动单元、获取单元、确定单元和均衡单元:
所述监控单元,用于对待处理对象和多个处理单元进行监控,根据监控结果确定是否满足负载均衡的触发条件;
所述启动单元,用于若确定满足负载均衡的触发条件,则启动负载均衡;
所述获取单元,用于在所述负载均衡的过程中,获取所述多个处理单元中每个所述处理单元对应的阻塞时长和每个所述处理单元中所有待处理对象对应的静态权重,所述静态权重表征所述待处理对象的负载情况,所述阻塞时长是在所述处理单元发生阻塞时,对所述处理单元的调度延时进行计时得到的,所述处理单元发生阻塞的原因包括高优先级对低优先级的待处理对象的处理单元抢占;
所述确定单元,用于根据所述阻塞时长按照预设规则调整所述静态权重,得到每个所述处理单元中所有待处理对象对应的时延权重,所述时延权重表征所述处理单元发生阻塞时所述待处理对象的负载情况,所述阻塞时长越大,得到的所述时延权重越大;
所述均衡单元,用于根据每个所述处理单元中所有待处理对象对应的时延权重,将待处理对象均衡分配到各个处理单元上。
13.一种用于负载均衡的电子设备,其特征在于,所述电子设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010981917.XA CN111930516B (zh) | 2020-09-17 | 2020-09-17 | 一种负载均衡方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010981917.XA CN111930516B (zh) | 2020-09-17 | 2020-09-17 | 一种负载均衡方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930516A CN111930516A (zh) | 2020-11-13 |
CN111930516B true CN111930516B (zh) | 2021-02-09 |
Family
ID=73333865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010981917.XA Active CN111930516B (zh) | 2020-09-17 | 2020-09-17 | 一种负载均衡方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930516B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113438179B (zh) * | 2021-06-29 | 2022-02-18 | 济南浪潮数据技术有限公司 | 一种基于网络时延的负载均衡方法、装置及系统 |
CN113590313B (zh) * | 2021-07-08 | 2024-02-02 | 杭州网易数之帆科技有限公司 | 负载均衡方法、装置、存储介质和计算设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236580B (zh) * | 2010-04-26 | 2013-03-20 | 阿里巴巴集团控股有限公司 | 为etl任务分配节点的方法和调度系统 |
CN103324525B (zh) * | 2013-07-03 | 2016-01-13 | 东南大学 | 一种云计算环境下的任务调度方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647405B2 (en) * | 2006-02-06 | 2010-01-12 | International Business Machines Corporation | Method for reducing variability and oscillations in load balancing recommendations using historical values and workload metrics |
CN110134513B (zh) * | 2019-04-17 | 2023-08-22 | 平安科技(深圳)有限公司 | 负载均衡方法、装置、计算机设备及存储介质 |
CN110716808B (zh) * | 2019-10-15 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置、计算机设备和存储介质 |
CN111064808B (zh) * | 2019-12-30 | 2022-10-21 | 深圳天融信创新科技有限公司 | 一种基于分布式存储系统的负载均衡方法及装置 |
CN111381963B (zh) * | 2020-02-28 | 2023-06-09 | 腾讯科技(深圳)有限公司 | 负载均衡方法、装置、计算机可读存储介质和计算机设备 |
-
2020
- 2020-09-17 CN CN202010981917.XA patent/CN111930516B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236580B (zh) * | 2010-04-26 | 2013-03-20 | 阿里巴巴集团控股有限公司 | 为etl任务分配节点的方法和调度系统 |
CN103324525B (zh) * | 2013-07-03 | 2016-01-13 | 东南大学 | 一种云计算环境下的任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111930516A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11088961B2 (en) | Monitoring data streams and scaling computing resources based on the data streams | |
US8510747B2 (en) | Method and device for implementing load balance of data center resources | |
EP3129880B1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
Vakilinia et al. | Modeling of the resource allocation in cloud computing centers | |
JP6241300B2 (ja) | ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム | |
US11907762B2 (en) | Resource conservation for containerized systems | |
US9973512B2 (en) | Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time | |
WO2015001850A1 (ja) | タスク割り当て判定装置、制御方法、及びプログラム | |
CN112380020A (zh) | 一种算力资源分配方法、装置、设备及存储介质 | |
CN111930516B (zh) | 一种负载均衡方法及相关装置 | |
CN109739627B (zh) | 任务的调度方法、电子设备及介质 | |
WO2019214608A1 (en) | User space pre-emptive real-time task scheduler | |
US9547576B2 (en) | Multi-core processor system and control method | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
Zaouch et al. | Load balancing for improved quality of service in the cloud | |
Guo | Ant colony optimization computing resource allocation algorithm based on cloud computing environment | |
JP6158751B2 (ja) | 計算機資源割当装置及び計算機資源割当プログラム | |
US11474868B1 (en) | Sharded polling system | |
JP2014206805A (ja) | 制御装置 | |
CN114968500A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
US20170161114A1 (en) | Method and apparatus for time-based scheduling of tasks | |
He et al. | To migrate or to wait: Bandwidth-latency tradeoff in opportunistic scheduling of parallel tasks | |
US20230418667A1 (en) | Computing device for handling tasks in a multi-core processor, and method for operating computing device | |
US20240127028A1 (en) | Information processing device, information processing system and information processing method | |
Miskeen | Modeling and Performance Evaluation of MapReduce in Cloud Computing Systems Using Queueing Network Model |
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 |