CN117290114B - 一种基于cpu积分的负载均衡方法及系统 - Google Patents

一种基于cpu积分的负载均衡方法及系统 Download PDF

Info

Publication number
CN117290114B
CN117290114B CN202311572463.0A CN202311572463A CN117290114B CN 117290114 B CN117290114 B CN 117290114B CN 202311572463 A CN202311572463 A CN 202311572463A CN 117290114 B CN117290114 B CN 117290114B
Authority
CN
China
Prior art keywords
server
cpu
utilization rate
integral
weight
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
CN202311572463.0A
Other languages
English (en)
Other versions
CN117290114A (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.)
Nanjing Mesh Information Technology Co ltd
Original Assignee
Nanjing Mesh Information Technology 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 Nanjing Mesh Information Technology Co ltd filed Critical Nanjing Mesh Information Technology Co ltd
Priority to CN202311572463.0A priority Critical patent/CN117290114B/zh
Publication of CN117290114A publication Critical patent/CN117290114A/zh
Application granted granted Critical
Publication of CN117290114B publication Critical patent/CN117290114B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/5044Allocation 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 hardware capabilities
    • 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
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)

Abstract

本申请公开了一种基于CPU积分的负载均衡方法及系统,属于计算机技术领域,包括:获取服务器的CPU利用率、CPU核数;计算服务器的基准利用率、累计积分和剩余启动积分;基准利用率为CPU核数与预设比例系数的乘积;累计积分按照服务器CPU利用率与基准利用率的差值的比例进行积分;剩余启动积分为基准利用率与累计积分之差;根据服务器的累计积分计算权重W,权重W与累计积分呈反相关;将服务器按权重W值由高到低排序;选择权重W值最大的服务器,向服务器分发网络请求或任务;当服务器下线时,删除负载均衡器中的对应服务器信息。针对现有技术中负载调度不均衡问题,通过动态计算服务器权重并对服务器进行排序,以提高任务的均衡分配和资源利用率。

Description

一种基于CPU积分的负载均衡方法及系统
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种基于CPU积分的负载均衡方法及系统。
背景技术
随着云计算和大数据应用的迅猛发展,服务器集群中的负载均衡变得至关重要。在一个典型的服务器集群中,任务的分发和资源的利用对系统性能和用户体验起着关键作用。然而,传统的静态均衡算法无法根据实际任务执行情况进行任务调度,导致一些服务器负载过重,而其他服务器处于闲置状态。尤其对于突增型实例,其负载变化模式与普通实例不同。常用的以服务器负载为权重的线性加权法无法有效适应突增型实例的负载特性。线性加权法仅将负载作为权重因素,但无法准确反映突增型实例的真实负载情况。
在当前现有的技术中,静态均衡算法无法根据实际任务执行情况进行任务调度,而动态算法主要采用线性加权法以服务器负载为权重。然而,由于突增型实例具有不同的负载特性,常规的算法无法准确地适应和调整任务的分发,从而导致资源利用率下降。
中国专利申请,申请号CN201810834342.1,公开日2018年12月18日,公开了一种负载均衡调度方法、负载均衡器、服务器及系统。应负载均衡器的负载均衡调度方法包括:获取服务器的响应优先级信息;按照服务器的响应优先级对服务器排序;接收到用户请求后,将用户请求分发给响应优先级最高的服务器。但是本申请存在:计算优先级只考虑了计算资源的利用率,仅根据优先级高低对服务器排序等,导致负载不均衡,因此资源利用率有待进一步提高。
发明内容
1.要解决的技术问题
针对现有技术中存在的负载调度不均衡导致资源利用率低的问题,本申请提供了一种基于CPU积分的负载均衡方法及系统,通过动态计算服务器权重并对服务器进行排序等,提高任务的均衡分配和资源利用率。
2.技术方案
本申请的目的通过以下技术方案实现。
本说明书实施例的一个方面提供一种基于CPU积分的负载均衡方法,包括:获取服务器的CPU利用率和CPU核数;根据获取的CPU核数计算服务器的基准利用率,基准利用率为服务器CPU核数与预设比例系数的乘积;计算服务器的累计积分,累计积分按服务器CPU利用率与基准利用率差值的比例进行积分;计算服务器的剩余启动积分,剩余启动积分为基准利用率与累计积分的差值;根据服务器的累计积分计算权重W;向权重W最大的服务器分发网络请求或任务。
其中,动态计算服务器权重,实现负载的均衡分配。本申请不仅考虑了服务器CPU的利用率,还考虑了CPU的核数,能够更准确地反映服务器的负载情况。最大限度地提高服务器资源的利用率。通过积分算法,使负载趋向平均分配到各个服务器,避免部分服务器过载而其他服务器资源闲置的情况,提高整体资源利用效率。实现任务的动态迁移。当服务器负载变化时,可以自动调整权重和任务分配方案,实现任务的动态迁移,保证负载均衡。算法简单易实现。本申请计算量小、实现难度不大,易于集成到现有调度系统中,改善系统负载均衡性能。可以根据实际需要调整算法参数,实现不同的调度策略。如调整基准利用率的计算方式、积分的计算规则等,可适应不同场景的需求。
进一步地,权重W的计算公式为:
其中,剩余启动积分为服务器在停启操作后剩余可用于启动的积分量;CPU利用率为服务器单个CPU核的平均利用率;CPU核数为服务器上用于并行处理任务的CPU数量;t为CPU积分累计的时间间隔;第一标记表示是否需要单独计算服务器的启动积分;基准利用率为利用突增型服务器定义的基准CPU利用率;m为统计计算CPU积分时的第一统计参数;h为统计计算CPU积分时的第二统计参数;累计积分为服务器从过去到当前时刻累积的CPU积分总量;N为正整数。引入利用突增型服务器的概念,并给出基准利用率的定义,使得算法可以适用于不同类型的服务器,扩大了适用范围。确定了积分计算采用时间区间累计的方式,并定义了统计参数m和h,可以通过调整这些参数实现不同的积分计算策略。
进一步地,利用突增型服务器定义的基准CPU利用率;
其中,表示第i个突增型服务器;CPU利用率为服务器单个CPU核的平均利用率;基准利用率为利用突增型服务器定义的基准CPU利用率;累计积分表示第i个突增型服务器累积的CPU积分;CPU核数为服务器上用于并行处理任务的CPU数量;启动积分标记表示第i个突增型服务器是否需要单独计算启动积分的标记;剩余启动积分为服务器在停启操作后剩余可用于启动的积分量。针对突增型服务器单独计算启动积分,这可以更好地反映这类服务器的启停特性。明确了启动积分表示服务器启停后剩余的积分量,辅助理解服务器积分变化的全过程。
进一步地,第一统计参数m的统计周期为预先设定的第一时间周期。
进一步地,第一时间周期为1小时。每小时计算积分和调整权重,可以快速响应服务器负载的变化,实现动态调度。避免积分的平滑效应太明显,使调度更加灵敏,反映当前负载。与云服务器实例的计费模式相符,许多云服务器采用按小时计费,有利于成本计算。统计数据在一个整点对齐,便于数据整点分析,也方便人工检查和参数调优。可以快速识别服务器负载的周期性模式,如工作日和周末的变化模式。既反映了近期负载又不至于太频繁计算,可以兼顾反映效果和计算开销。
进一步地,第二统计参数h的统计周期为预先设定的第二时间周期。
进一步地,第二时间周期为1天。可以反映服务器负载的日周期性变化,捕捉日负载曲线的模式。与人的工作作息时间相关,方便识别工作日和非工作日的负载差异。可以计算服务器日均利用率等统计参数,便于服务器性能评估。一天作为时间单位直观易理解,参数选择和效果评估较为简单。配合多个时间粒度的综合应用,可以兼顾反映效果与计算量之间的平衡。
进一步地,还包括:当第一标记设置为设置状态时,计算启动积分。通过设置第一标记实现了在不同状态下的差异化处理,增强了系统的适应性和灵活性。仅在需要时才单独计算启动积分,避免了不必要的计算量,提高了计算效率。标记的设置可以根据实际需要进行调整,使用更为灵活。与正常积分计算互不影响,降低了双方的耦合性,提高了系统可维护性。
进一步地,还包括:检测服务器是否下线,若检测到服务器下线,则删除对应下线的服务器。及时反映服务器下线状态,保证后续计算使用的服务器列表准确性。避免向下线服务器分配请求或任务,提高资源利用效率。减少无效计算和错误操作,提高系统稳定性。与服务器状态检测系统集成,可以共享检测结果,减少重复工作。下线服务器删除后,可以触发新的服务器加入或任务重新分配,提高故障处理能力。有利于统计和分析在线服务器数量的变化情况。为服务器的大规模弹性扩缩容提供支持。自动完成清理工作,无需人工参与,降低维护工作量。明确的下线检测逻辑,有利于系统的维护和二次开发。
本说明书实施例的另一个方面还提供一种基于本申请的基于CPU积分的负载均衡方法的系统,包括:获取模块,获取服务器的CPU利用率和CPU核数;计算模块,根据CPU核数计算服务器的基准利用率;积分模块,计算服务器的累计积分和剩余启动积分;权重模块,根据累计积分计算服务器的权重W;管理模块,根据服务器的权重W对服务器进行排序,并向权重最大的服务器分发请求;检测模块,检测服务器是否下线;更新模块,当检测到服务器下线时,删除对应的服务器。
3.有益效果
相比于现有技术,本申请的优点在于:
(1)通过综合考虑CPU参数,包括CPU利用率、CPU核数、基准利用率、累计积分和剩余启动积分,本申请能够动态计算服务器的权重;这样可以根据实际负载情况为服务器分配合适的权重,从而实现资源的均衡利用,避免某些服务器过载而其他服务器处于低负载的状态,提高了资源利用率;
(2)利用累计积分来反向计算服务器的权重W。累计积分越高,表示服务器处理过更多更复杂的任务,其处理能力强,则应该赋予其更低的权重W,降低被选择的优先级;序时,权重W低的服务器会被排在前面。选择模块按排名顺序优先选择权重W最低,即累计积分最高的服务器实现高效利用和均衡调度;
(3)本申请具有动态调整和管理服务器的能力;当服务器发生下线或启动操作时,负载均衡器可以及时检测到并进行相应的操作,如从服务器列表中删除下线的服务器。这样可以保持负载均衡器的更新和稳定性,确保资源的合理利用和任务的有效分配,提高了资源的利用率。
附图说明
图1为本申请的一种基于CPU积分的负载均衡方法的示例性流程图;
图2为本申请的一种基于CPU积分的负载均衡系统的模块示意图;
图3为本申请的一种基于CPU积分的负载均衡系统的架构示意图。
具体实施方式
下面结合说明书附图和具体的实施例,对本申请作详细描述。
图1为本申请的一种基于CPU积分的负载均衡方法的示例性流程图,如图1所示,一种基于CPU积分的负载均衡方法,主要通过计算服务器的权重W来评估服务器的处理能力,并根据权重的值对服务器进行排序,从而实现请求的合理调度,提高CPU的负载均衡性和资源利用率。一种基于CPU积分的负载均衡方法包括:获取服务器的CPU利用率、CPU核数;计算服务器的基准利用率,基准利用率为CPU核数与预设比例系数的乘积;计算服务器的累计积分,累计积分按照服务器CPU利用率与基准利用率的差值的比例进行积分;计算服务器的剩余启动积分,剩余启动积分为基准利用率与累计积分之差;根据服务器的累计积分计算权重W,权重W与累计积分呈反相关;将服务器按权重W值由高到低排序;选择权重W值最大的服务器,向服务器分发网络请求或任务;当服务器下线时,删除负载均衡器中的对应服务器信息。根据服务器性能参数动态计算权重,实现细粒度的负载均衡,避免单个服务器过载,提高资源利用率,增强系统处理能力。
本申请中的负载均衡方法首先需要获取每个服务器的CPU参数,CPU参数包含:CPU利用率,表示服务器单个CPU核的利用率,反映当前CPU负载状态;CPU核数,表示服务器所含CPU核心总数;基准利用率,表示预先定义的服务器CPU基准利用率;累计积分,表示服务器累计的历史CPU利用积分;剩余启动积分,表示服务器当前的剩余CPU启动积分。通过获取包含多种CPU相关参数并进行综合计算,可以评估出每个服务器当前的处理能力,作为权重Wi后续的负载均衡和请求分发。
其中,权重W通过如下公式计算:
其中,本申请充分考虑了服务器的当前利用率、历史累计积分、基准利用率、剩余启动积分等多个维度的参数,进行综合计算,可以对每个服务器的处理能力做出较为准确和动态的评估。并且引入启动积分标记等调节因素,使得权重计算可以根据实际需要进行微调。总体上,本申请可以实现精细的负载均衡控制,避免出现单个服务器过载的情况,提高资源利用率和系统吞吐量。
具体地,剩余启动积分:服务器停启操作后剩余的启动积分。启动积分是用来表示服务器处理能力的指标,通过启动积分可以评估服务器的性能。在计算权重W时,考虑到服务器的启动积分。启动积分是一种表示服务器处理性能的参数。每个服务器都会被初始化一个启动积分值,该值与服务器的硬件配置相关。在服务器运行过程中,会消耗启动积分来执行各种任务和请求。剩余启动积分表示在服务器进行停启操作后还剩余的启动积分量。由于停启操作会重置服务器状态,使启动积分得到恢复,因此剩余启动积分能够反映出服务器当前的潜在处理能力。例如,如果一台服务器配置强劲,初始化启动积分为500,执行了大量任务后启动积分减少到100,此时进行重启操作,那么剩余启动积分将恢复至500,表示其处理能力已经得到恢复。在计算服务器权重W时,引入剩余启动积分这一参数,可以评估服务器当前的即时处理能力,避免仅依赖历史累计积分。剩余启动积分越高,表示服务器空闲资源越多,可以承受更多任务,权重W可以设定得越高。这样,计算权重W时考虑剩余启动积分,可以更精确地评估服务器当前的处理能力,实现动态调度,提高资源利用率,避免单台服务器过载。
CPU利用率为单个CPU核的平均利用率。通过计算CPU核的利用率,可以评估服务器的负载情况。较高的CPU利用率表示服务器的负载较重,可能需要更多的处理能力。CPU利用率反映了服务器中每个CPU核的使用情况。它通过检测CPU核处于忙碌状态的时间百分比来计算得出。较高的CPU利用率表示服务器上的CPU资源越紧张,承受的任务负载越重。例如利用率达到80%时,说明CPU大部分时间都在处理任务,没有多余的处理能力。在计算权重时考虑CPU利用率,可以评估服务器当前的负载状态和可用处理资源。当利用率较高时,说明服务器处理能力已被利用的比较充分,此时可以将其权重设置较低,避免分配过多新任务导致过载。而利用率较低的服务器,其权重可以设置较高,优先分配任务,从而提高资源利用效率,实现负载均衡。总之,考量CPU利用率可以根据服务器实时的负载状况动态调整权重,合理分配任务,避免单台服务器过载,提升整体系统处理性能和稳定性。
CPU核数为CPU上集中处理数据的CPU核心个数。多核CPU可以同时处理更多的任务,提高服务器的处理能力。考虑服务器的CPU核数是为了准确评估服务器的整体处理能力。CPU核数表示服务器CPU中的核心数量。现代服务器CPU通常都采用多核设计,包含2核、4核、8核等多种配置。CPU核数越多,说明服务器具有的并行处理能力就越强,可以同时处理更多的任务和请求,提高整体处理性能。因此,在计算服务器权重时,需要考量CPU核数这个参数,以准确评估服务器的整体处理能力。如果仅根据单个核的利用率,不能很好反映多核CPU的并行处理优势。而引入CPU核数这个变量,可以充分考虑服务器的并行处理能力。比如,对于两台服务器,一台4核CPU利用率为50%,另一台8核CPU利用率也为50%,通过计算权重明显应该优先分配任务给后者,以发挥更强的并行处理能力。因此,在权重计算公式中加入CPU核数作为影响因素,可以让调度器更准确地评估各服务器的整体处理能力,从而实现细粒度的负载均衡,提升资源利用效率。
t为CPU积分累计频次的时间间隔。CPU积分是用来累计服务器处理任务的频次,通过积分可以评估服务器的处理速度。时间间隔t计算积分的累计频次,可以根据实际需求进行调整。随着时间间隔t的增大,累计频次会变少,积分增长会更平滑。反之,时间间隔t减小,累计频次增加,积分变化更敏感。用户可以根据服务器的特点和精细程度需求,通过统计参数设置模块来调整时间间隔t。对于处理能力波动较大的服务器,可以缩短间隔t,通过更频繁的累计反映其性能变化。综上,时间间隔t作为CPU积分计算的参数,其值的设置会影响积分结果,需要根据服务器特性和需求进行调优。
启动积分标记:调整剩余启动积分的权重。将剩余启动积分乘以启动积分标记可以增加或减少权重W的值,以适应不同的启动积分情况。启动积分标记是一个调整系数,控制剩余启动积分在计算权重时的权重大小。启动积分可以评估服务器的处理能力,剩余启动积分表示服务器当前的可用处理资源。但是不同的服务器启动积分绝对值差异可能很大,如果计算权重,则权重分布会很不均匀。引入启动积分标记,可以平滑不同服务器的启动积分对权重的影响。
基准利用率,调整基准权重的利用率。通过将基准利用率乘以CPU核数和其他参数,可以调整基准权重的值,以适应不同的服务器配置和需求。
m和h,调整基准权重的系数。将基准权重与m和h相乘可以根据需要进行更精确的权重调整。当服务器CPU核数较多时,利用基准利用率的调整,可以获得较大的动态基准权重,从而在性能评估时给予较高基准。相反,对于核数较少的服务器,调整后基准权重会较小。通过基准利用率的引入,可以根据服务器硬件参数智能调整基准权重,使性能评估更加公平和准确,处理不同配置服务器的区别。基准利用率可以由用户在统计参数设置模块中进行配置,以适应不同的服务器池。
累计积分,记录服务器已执行的任务的积分值。将累计积分考虑在内可以确保服务器的历史任务执行情况对权重的影响。引入累计积分,可以反映服务器长期的处理能力,不仅关注瞬时状态。服务器处理过更复杂任务可以得到更高的累计积分。即使硬件相同,积分更高的也会获得更高权重。综上,累计积分机制可以方便地考量服务器的历史贡献,使权重计算更加全面和公平。
本申请利用CPU参数计算出每台服务器的权重W。权重W的值可以对服务器进行排序,以确定权重较高的服务器。将服务器按权重进行排序可以实现根据服务器处理能力的负载均衡。
启动积分标记包含第一标记,第一标记表示是否需要单独计算启动积分;具体地,当第一标记为设置状态时,表示需要单独计算启动积分。当第一标记为非设置状态时,表示不需要单独计算启动积分。在本申请的最优实施例中,当第一标记为设置状态时记为1,当第一标记为非设置状态时记为0。
其中,通过设置或取消第一标记,可以灵活控制是否计算启动积分。当需要考虑服务器启动影响时设置第一标记,当启动影响不大时取消第一标记。计算启动积分可以合理评估服务器启动后的瞬时负载,避免误判服务器负载,提高负载评估的准确性。当服务器启动时,计算启动积分可以降低其权重,避免把过多请求分配给刚启动的服务器,减轻启动压力。不计算启动积分时,可以忽略服务器启动因素,简化计算,缩短服务器上线后的积分收敛时间。结合业务需要和实际情况动态设定第一标记,可以优化不同种类服务器的负载均衡效果。第一标记的灵活设置为基于CPU积分的负载均衡方法提供了更强的适应性和可定制性。从长远来看,合理控制启动积分的计算可以使服务器的权重更加准确地反映其处理能力,提升CPU利用率。有助于根据服务器CPU能力对负载进行合理均衡,提高资源利用率,增强系统处理能力。综上,第一标记的设置可以根据需要决定是否计算启动积分,使负载均衡算法更加灵活和智能,最终达到提高CPU利用率和负载均衡效果的技术目的。
基准利用率为突增型服务器定义的基准CPU利用率;具体地,基准利用率为突增型服务器定义的基准CPU利用率;突增型服务器定义为:
通过综合考虑以上多种参数,可以对突增型服务器的瞬时处理能力做出评估。例如剩余启动积分高但利用率也高时,说明其处理资源正在充分利用,此时应降低权重;而剩余启动积分高但利用率低时,应提高权重以增加任务量。相比仅看历史指标,这种多参数算权重方式可以更准确捕捉突增型服务器的能力变化,实现动态调度,减少响应延迟,提高资源利用率。
其中,表示第i个突增型服务器。每个突增型服务器都有一组特定的参数,计算服务器的权重。CPU利用率,表示第i个突增型服务器单个CPU核的平均利用率。通过监测和计算CPU核的利用率,可以了解服务器的负载情况。基准利用率,表示第i个突增型服务器的基准CPU利用率。基准利用率是突增型服务器定义的一项重要参数,计算权重W。累计积分:表示第i个突增型服务器迄今为止累积的CPU积分。累计积分记录服务器已执行的任务的积分值,在计算权重时可以考虑历史任务的执行情况。CPU核数:表示第i个突增型服务器的CPU核心数。不同的服务器配置具有不同数量的CPU核心,考虑CPU核数有助于准确评估服务器的整体处理能力。启动积分标记,表示第i个突增型服务器的启动积分计算标记。启动积分是用来评估服务器处理能力的指标之一,启动积分标记调整剩余启动积分的权重。剩余启动积分:表示第i个突增型服务器的剩余启动积分。剩余启动积分是在服务器停启操作后剩余的启动积分,根据剩余启动积分的值可以评估服务器的处理能力。基准利用率是突增型服务器定义的一项重要参数,计算权重W的公式中。通过调整基准利用率的值,可以精确地调整服务器的基准权重。
通过使用上述定义和相应参数,可以根据CPU参数计算出每台突增型服务器的权重W。权重W的值可以对突增型服务器进行排序和负载均衡的管理。
m为在通常情况下根据基准利用率统计获取CPU积分时的第一统计参数;具体地,第一统计参数m的统计周期为预先设定的第一时间周期。更具体地,第一时间周期为每小时。在本申请中,最优实施例中m的取值为60分钟。其中,m的统计周期被预先设定为第一时间周期,该第一时间周期取为每小时。这可以避免基准利用率被过于频繁的小幅波动影响,实现一定平滑度。每小时统计一次基准利用率,并计算m值,可以充分反映服务器在该时间段内的平均处理能力。m值与第二统计参数h一起使用,h的统计周期为一天,m和h共同平滑基准利用率,使其既反映近期处理能力变化,也反映较长时间段的稳定水平。平滑后的基准利用率更有利于评估突增型服务器的处理能力,避免对其误判,从而使得基于CPU积分的负载均衡更加合理。相比基准利用率的瞬时值,m参数统计得到的平滑值,可以更好地反映服务器的可用计算资源,有助于请求的合理分配,提高CPU负载的均衡性。通过平滑基准利用率来更准确地计算权重W,可以使得请求被合理地派发到处理能力强的服务器,从而提高CPU的利用率,增强系统处理能力。m参数的设定为每小时统计一次,既能提供较好的平滑效果,也不会因统计周期过长而不能反映基准利用率的变化趋势。综上,m参数的设置可以有效平滑基准利用率,帮助更合理地评估服务器性能,从而提升基于CPU积分的负载均衡效果,达到增加CPU利用率和改善负载均衡的技术效果。h为在通常情况下根据基准利用率统计获取CPU积分时的第二统计参数;具体地,第二统计参数h的统计周期为预先设定的第二时间周期。更具体地,第二时间周期为每天。在本申请中,最优实施例中h的取值为24小时。
其中,h的统计周期被预先设定为第二时间周期,该第二时间周期取为每天。这可以过滤掉基准利用率中的日常波动,获得其长期稳定趋势。每天统计一次基准利用率,并计算h值,可以充分反映服务器在该时间段内的整体处理能力。h值与第一统计参数m一起使用,m的统计周期为每小时,h和m共同平滑基准利用率,使其既反映近期处理能力变化,也反映较长时间段的稳定水平。更加平滑稳定的基准利用率,可以避免对突增型服务器做出错误的负载评估,从而提高基于CPU积分的负载均衡效果。计算更加准确平滑的基准利用率,可以使权重W更准确地反映服务器性能,将请求合理派发到处理能力强的服务器。通过每天统计,可以持续跟踪基准利用率的长期趋势变化,进行动态调整。h参数的设置为每天统计一次,既提供了长期统计的平滑效果,也不会统计周期过长而反应迟缓。最终可以提高CPU利用率,改善负载均衡性,达到增加系统处理能力和资源利用率的技术效果。综上,h参数的设置可以有效平滑基准利用率的长期趋势,辅助m参数更好地指导负载均衡,从而提升基于CPU积分的负载均衡算法的效果,达到提高CPU利用率和负载均衡的技术效果。
累计积分为代表过去累积到当前时刻的CPU积分。累计积分是一种记录和追踪服务器CPU利用率历史的指标。它通过对每个时间段的CPU利用率进行积分累加,从而反映了服务器在过去一段时间内的负载情况。在突增型服务器定义中,累计积分的作用是体现服务器的历史处理能力和负载情况,以便在计算服务器权重时进行综合考虑。通过累计积分,可以对过去时段的CPU积分进行累积,从而对服务器的整体性能和稳定性进行评估。累计积分的计算方式通常基于CPU利用率的积分累加,其中高CPU利用率的时间段对应的积分值较大,而低CPU利用率的时间段对应的积分值较小。这样,通过累计积分可以对服务器的过去性能进行量化,并为后续的资源分配和负载管理提供参考依据。在突增型服务器定义中,累计积分的值是动态变化的,它随着时间的推移而增加或减少。每当服务器执行任务时,根据所占用的CPU资源和持续时间,对积分进行调整和更新。通过合理利用累计积分这一历史记录参数,可以在负载均衡和资源调度时更好地了解服务器的过去性能和处理能力。这有助于提高服务器的资源利用率。
在管理模块中,系统会根据权重计算模块算出的服务器对应的权重W值,将所有服务器按权重W值由大到小进行排序。在服务器选择模块中,系统根据管理模块的排序结果选择权重W值最大的服务器,并将需要处理的网络请求或任务分发给该服务器。当存在多个服务器的权重W值并列最高时,例如有3个服务器的权重W值均为0.9,均为最大值,此时系统会从这3个并列的服务器中随机选择一个服务器进行任务分发。这样,通过按权重值排序和根据排序选择权重最大服务器的方式,可以确保选择当前负载较轻的服务器进行任务分配,实现负载均衡,避免单个服务器过载的问题。同时,随机选择机制可以在多个同权重服务器中进一步均衡负载。在服务器管理模块中,系统会实时监控服务器的在线状况。当检测到某个服务器出现离线或下线的情况时,服务器管理模块会立即触发该服务器的删除操作,将该服务器从负载均衡器的服务器池中删除。具体来说,服务器管理模块会操作存储服务器信息的数据结构,在其中标记需要删除的服务器状态为下线或禁用,以及从可选择服务器的列表中移除该服务器。此时,该下线服务器将不会被服务器选择模块选中进行新的任务分配。同时,服务器管理模块会调用相关接口,通知负载均衡器停止向下线服务器分发请求或任务。此外,还会调用持久化存储接口,将下线服务器的相关信息从数据库或存储系统中删除。这样,当服务器不可用时,能够快速从负载均衡器中将其移除,避免请求发送到故障服务器,从而提高系统可靠性和可用性。并且及时更新存储系统,保证服务器池信息的一致性。
其中,将服务器按权重W值由高到低排序,可以使负载分配更加合理。因为权重W与服务器的累计积分呈反相关关系,累计积分越小表示服务器负载越轻。这样可以优先选择负载较轻的服务器进行请求分发,从而达到负载均衡的目的。选择权重W值最大,即累计积分最小的服务器进行请求分发,可以尽量避免将请求分发到已经过载的服务器上,防止请求超时等问题,提高系统处理能力和吞吐量。当服务器下线时,及时删除负载均衡器中的对应服务器信息,可以防止继续向下线服务器分发请求,避免请求失败。并可以将新增的服务器动态添加到负载均衡器中,实现服务器扩容。基于CPU利用率积分计算权重W的方法,可以实时动态反映服务器的负载情况。相比简单的轮询或哈希等负载均衡方式,可以更加合理地进行负载分配,提高资源利用率,增强系统扩展性。考虑启动积分的计算可以处理服务器重启后可能出现的短时高负载情况,防止在这种情况下过度积分从而影响后续请求分配。分时间段统计参数m和h可以平滑突发流量对系统的影响,防止异常情况导致负载评估失误。总体来说,本申请通过动态积分计算权重的技术手段,实现了精细化、动态化、智能化的负载均衡,达到了合理利用资源、提高系统处理能力和可扩展性的有益技术效果。
图2为本申请的一种基于CPU积分的负载均衡系统的模块示意图,如图2所示,一种基于本申请的基于CPU积分的负载均衡方法的系统200,包括:获取模块210,该模块通过监控程序获取服务器的CPU利用率和CPU核数,并保存到服务器信息数据库中。计算模块220,该模块从服务器信息数据库中读取每个服务器的CPU核数,并按照预设的参数计算出每个服务器的基准利用率。例如,一个8核CPU服务器,预设参数α=0.6,其基准利用率为8*0.6=4.8。积分模块230,该模块每隔1小时从数据库读取每个服务器过去1小时的平均CPU利用率,与其基准利用率计算差值比例,按比例计算该服务器的累计积分。同时计算剩余启动积分。权重模块240,该模块将所有服务器的累计积分归一化处理,得到0到1之间的权重系数W。管理模块 250,该模块根据权重W将服务器列表排序,并按从大到小顺序将请求分发到各个服务器。同时管理员可以预先设置第一标记,以便启动时单独计算启动积分。检测模块260,该模块通过心跳检测服务器在线状态,如果发现服务器下线,则触发更新模块。更新模块270,将下线服务器从服务器信息数据库及列表中删除,并通知管理模块重新计算权重和排序。通过该系统的模块化设计和流程控制,可以有效实现基于CPU积分算法的动态负载均衡。
图3为本申请的一种基于CPU积分的负载均衡系统的架构示意图,如图3所示,该系统使用Celery分布式框架实现任务调度和负载均衡,并结合了一个基于CPU积分的系统来评估Worker的负载情况。任务调度器接收任务,并将任务信号传输至负载均衡器。负载均衡器根据一定的算法(如权重或其他策略)将任务分配给不同的队列,如队列1、队列2和队列3。系统通过与本申请的CPU积分系统进行同步,获取服务器的积分和CPU利用率等信息。从worker(服务器)获取积分和CPU利用率等信息。各个Worker(如worker1、worker2和worker3)从各自对应的队列中获取任务。Worker根据任务的复杂度和本身的性能情况进行任务执行。执行的结果将被存储在存储容器中,以供后续处理或查询使用。该基于CPU积分的负载均衡系统使用了Celery分布式框架来实现任务调度和负载均衡。通过与CPU积分系统同步获取服务器积分和CPU利用率等信息,并根据这些信息将任务分配给合适的Worker进行处理。这个架构能够有效地确保任务的高效执行,并应对任务数量增多和需求增长的挑战。同时,存储容器存储任务执行结果,方便后续处理和查询。
以对接第三方广告DSP平台的场景为例,在定时任务的执行过程中,需要将任务分发给具体的celery worker来执行。为了提高负载均衡利用率,我们将采用基于CPU积分的负载均衡方法。应用本申请来实现定时数据抓取,并将任务分配给合适的worker。具体步骤如下:
使用AWS平台的t2.micro实例作为celery worker。各个worker实例已经在AWSCLI中配置并能够通过命令行访问。安装并配置了celery分布式框架及celery beat。使用AWSCLI获取每个worker实例的基本信息,包括启动时间、CPU利用率、CPU核数等。使用适当的AWSCLI命令获取实例的启动时间,记为t1。获取实例启动时的CPU积分,并记为启动积分。获取当前时刻的CPU积分,假设为t2。计算剩余启动积分,即剩余启动积分=max(启动积分花费CPU积分,0)。根据上述步骤中获取的信息,计算每个worker的权重。使用适当的公式,结合CPU利用率、CPU核数等参数,计算每个worker的权重。利用celery的心跳机制获取每个worker的状态信息。使用celery提供的心跳机制,定期获取每个worker的状态信息,如是否在线、是否可用等。在celery的配置文件中加载定时任务。将定时任务配置文件中的任务加载到celery beat中。根据所有worker的当前权重和状态,选择将任务派发给适合的worker。根据上述步骤中计算得出的权重,选择权重大且处于在线状态的worker。将定时任务派发给相应的worker对应的队列中。通过上述步骤,我们能够利用基于CPU积分的负载均衡方法实现定时数据抓取,并将任务分发给合适的celery worker。这样可以提高负载均衡利用率,确保任务能够高效地执行。
本申请的主要目标是通过基于CPU积分的负载均衡方法,在celery分布式框架中实现定时数据抓取和任务分发的优化。通过动态计算每个worker的权重,并结合状态信息进行任务派发,可以实现高效的负载均衡和资源利用。这种方法使得定时任务能够合理分配给具备足够资源的worker,提高系统性能并保证任务的及时执行,提高了CPU负载均衡,提高了资源利用率。
本实施例中以celery worker是aws平台的t2.micro实例,实例的基本信息可以通过AWSCLI获取。获取累计积分的命令如下:获取剩余启动积分步骤如下;获取实例最近一次开机时间,输出时间格式为ISO8601,假设为t1;获取开机时实例的CPU积分,即实例启动积分;获取开机到当前时刻花费的CPU积分,假设当前时刻为t2;剩余启动积分=max(启动积分-花费CPU积分,0)。
获取CPU基准利用率、当前时刻利用率、CPU核数基本信息,命令如下:通过步骤1得到每个worker的基本信息,利用公式算出每个worker的权重;借助celery的心跳机制获取每个worker状态;获取状态,celery每个worker对应一个队列,celery beat从配置文件中加载定时任务,并根据所有worker的当前权重和状态,选择将任务派发给权重大且上线的worker对应的队列中。
以上示意性地对本申请创造及其实施方式进行了描述,该描述没有限制性,在不背离本申请的精神或者基本特征的情况下,能够以其他的具体形式实现本申请。附图中所示的也只是本申请创造的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (8)

1.一种基于CPU积分的负载均衡方法,包括:
获取服务器的CPU利用率和CPU核数;
根据获取的CPU核数计算服务器的基准利用率,基准利用率为服务器CPU核数与预设比例系数的乘积;
计算服务器的累计积分,累计积分按服务器CPU利用率与基准利用率差值的比例进行积分;
计算服务器的剩余启动积分,剩余启动积分为基准利用率与累计积分的差值;
根据服务器的累计积分计算权重W;
向权重W最大的服务器分发网络请求或任务;
权重W的计算公式为:
剩余启动积分为服务器在停启操作后剩余可用于启动的积分量;CPU利用率为服务器单个CPU核的平均利用率;CPU核数为服务器上用于并行处理任务的CPU数量;t为CPU积分累计的时间间隔;第一标记表示是否需要单独计算服务器的启动积分;基准利用率为利用突增型服务器定义的基准CPU利用率;m为统计计算CPU积分时的第一统计参数;h为统计计算CPU积分时的第二统计参数;累计积分为服务器从过去到当前时刻累积的CPU积分总量;N为正整数;
利用突增型服务器定义的基准CPU利用率;
Ui表示第i个突增型服务器;CPU利用率为服务器单个CPU核的平均利用率;基准利用率为利用突增型服务器定义的基准CPU利用率;累计积分表示第i个突增型服务器累积的CPU积分;CPU核数为服务器上用于并行处理任务的CPU数量;启动积分标记表示第i个突增型服务器是否需要单独计算启动积分的标记;剩余启动积分为服务器在停启操作后剩余可用于启动的积分量。
2.根据权利要求1的基于CPU积分的负载均衡方法,其特征在于:
第一统计参数m的统计周期为预先设定的第一时间周期。
3.根据权利要求2的基于CPU积分的负载均衡方法,其特征在于:
第一时间周期为1小时。
4.根据权利要求1的基于CPU积分的负载均衡方法,其特征在于:
第二统计参数h的统计周期为预先设定的第二时间周期。
5.根据权利要求4的基于CPU积分的负载均衡方法,其特征在于:
第二时间周期为1天。
6.根据权利要求1的基于CPU积分的负载均衡方法,其特征在于:
还包括:
当第一标记设置为设置状态时,计算启动积分。
7.根据权利要求1的基于CPU积分的负载均衡方法,其特征在于:
还包括:
检测服务器是否下线,若检测到服务器下线,则删除对应下线的服务器。
8.一种基于权利要求1至7任一所述的基于CPU积分的负载均衡方法的系统,包括:
获取模块,获取服务器的CPU利用率和CPU核数;
计算模块,根据CPU核数计算服务器的基准利用率;
积分模块,计算服务器的累计积分和剩余启动积分;
权重模块,根据累计积分计算服务器的权重W;
管理模块,根据服务器的权重W对服务器进行排序,并向权重最大的服务器分发请求;
检测模块,检测服务器是否下线;
更新模块,当检测到服务器下线时,删除对应的服务器。
CN202311572463.0A 2023-11-23 2023-11-23 一种基于cpu积分的负载均衡方法及系统 Active CN117290114B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311572463.0A CN117290114B (zh) 2023-11-23 2023-11-23 一种基于cpu积分的负载均衡方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311572463.0A CN117290114B (zh) 2023-11-23 2023-11-23 一种基于cpu积分的负载均衡方法及系统

Publications (2)

Publication Number Publication Date
CN117290114A CN117290114A (zh) 2023-12-26
CN117290114B true CN117290114B (zh) 2024-01-30

Family

ID=89239312

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311572463.0A Active CN117290114B (zh) 2023-11-23 2023-11-23 一种基于cpu积分的负载均衡方法及系统

Country Status (1)

Country Link
CN (1) CN117290114B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196870A (zh) * 2017-07-20 2017-09-22 哈尔滨工业大学 一种基于dpdk的流量动态负载均衡方法
CN111381971A (zh) * 2020-03-17 2020-07-07 重庆邮电大学 一种基于Nginx的动态权重负载均衡方法
CN112019620A (zh) * 2020-08-28 2020-12-01 中南大学 基于Nginx动态加权的Web集群负载均衡算法及系统
WO2023050901A1 (zh) * 2021-09-30 2023-04-06 深圳前海微众银行股份有限公司 一种负载均衡方法、装置、设备、计算机存储介质和程序
CN116069489A (zh) * 2021-11-01 2023-05-05 青岛海尔科技有限公司 一种自动负载均衡分配方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196870A (zh) * 2017-07-20 2017-09-22 哈尔滨工业大学 一种基于dpdk的流量动态负载均衡方法
CN111381971A (zh) * 2020-03-17 2020-07-07 重庆邮电大学 一种基于Nginx的动态权重负载均衡方法
CN112019620A (zh) * 2020-08-28 2020-12-01 中南大学 基于Nginx动态加权的Web集群负载均衡算法及系统
WO2023050901A1 (zh) * 2021-09-30 2023-04-06 深圳前海微众银行股份有限公司 一种负载均衡方法、装置、设备、计算机存储介质和程序
CN116069489A (zh) * 2021-11-01 2023-05-05 青岛海尔科技有限公司 一种自动负载均衡分配方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于动态反馈机制的服务器负载均衡算法研究;李坤;;电子科技(09);全文 *

Also Published As

Publication number Publication date
CN117290114A (zh) 2023-12-26

Similar Documents

Publication Publication Date Title
KR102562260B1 (ko) 커밋먼트-인식 스케줄러
CN112162865B (zh) 服务器的调度方法、装置和服务器
US9703285B2 (en) Fair share scheduling for mixed clusters with multiple resources
Di et al. Characterization and comparison of cloud versus grid workloads
CN106790726B (zh) 一种基于Docker云平台的优先级队列动态反馈负载均衡资源调度方法
US9571347B2 (en) Reactive auto-scaling of capacity
CN101719082B (zh) 虚拟化计算平台中应用请求调度的方法及其系统
Hui et al. Improved strategies for dynamic load balancing
US5537542A (en) Apparatus and method for managing a server workload according to client performance goals in a client/server data processing system
JP3606555B2 (ja) システム・リソースのスケジューリングのためのシステムおよび方法
US20110314477A1 (en) Fair share scheduling based on an individual user's resource usage and the tracking of that usage
US20080244588A1 (en) Computing the processor desires of jobs in an adaptively parallel scheduling environment
US6502148B1 (en) System for scaling an application server system
US8914582B1 (en) Systems and methods for pinning content in cache
CN112269641A (zh) 一种调度方法、装置、电子设备及存储介质
US20210357269A1 (en) Quality of service scheduling with workload profiles
CN110099083A (zh) 一种用于服务器集群的负载均衡调度方法及装置
CN110543355A (zh) 一种自动均衡云平台资源的方法
CN113672345A (zh) 一种基于io预测的云虚拟化引擎分布式资源调度方法
Di et al. Characterization and comparison of Google cloud load versus grids
CN117290114B (zh) 一种基于cpu积分的负载均衡方法及系统
Costache et al. Themis: Economy-based automatic resource scaling for cloud systems
Lili et al. A Markov chain based resource prediction in computational grid
US11449502B1 (en) Calculating a throttle limit for requests in a database system
US11409570B2 (en) Dynamic management of system computing resources

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