CN113934533A - 服务部署方法和装置、存储介质及电子设备 - Google Patents
服务部署方法和装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN113934533A CN113934533A CN202111131966.5A CN202111131966A CN113934533A CN 113934533 A CN113934533 A CN 113934533A CN 202111131966 A CN202111131966 A CN 202111131966A CN 113934533 A CN113934533 A CN 113934533A
- Authority
- CN
- China
- Prior art keywords
- service
- load
- services
- type
- historical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种服务部署方法和装置、存储介质及电子设备。其中,该方法包括:获取多个服务的历史负载数据,其中,多个服务用于提供实时交互,历史负载数据包括:多个历史时刻采集到的负载数据;基于每个服务的历史负载数据,预测得到每个服务的负载时序变化趋势;基于多个服务的负载时序变化趋势,将多个服务中的部分或全部服务部署在同一个服务器上。本发明解决了相关技术中在线服务部署方案的资源利用率较低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种服务部署方法和装置、存储介质及电子设备。
背景技术
在金融行业中,由于金融业务在法律合规方面的特殊性,针对支付、保险、信贷、基金、理财、金融科技等不同业务方向,需要对不同业务的服务程序及数据进行物理隔离,即不同业务之间的服务器需要放置于不同的机房,不同业务间的程序不能混部,数据不同直接互通导致部分业务离线负载数量较少,无法有效的通过在离线混部来提升资源利用率。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种服务部署方法和装置、存储介质及电子设备,以至少解决相关技术中在线服务部署方案的资源利用率较低的技术问题。
根据本发明实施例的一个方面,提供了一种服务部署方法,包括:获取多个服务的历史负载数据,其中,多个服务用于提供实时交互,历史负载数据包括:多个历史时刻采集到的负载数据;基于每个服务的历史负载数据,预测得到每个服务的负载时序变化趋势;基于多个服务的负载时序变化趋势,将多个服务中的部分或全部服务部署在同一个服务器上。
可选地,基于每个服务的历史负载数据,预测得到每个服务的负载时序变化趋势包括:确定历史负载数据中每个负载数据的权重值;基于每个负载数据的权重值,获取相同历史时刻采集到的负载数据的加权平均值,得到多个历史时刻的负载均值;对多个历史时刻的负载均值进行拟合,得到负载时序变化趋势。
可选地,基于每个负载数据的历史采集时间与当前时刻的距离,确定每个负载数据的权重值。
可选地,基于多个服务的负载时序变化趋势,将多个服务中的部分或全部服务部署在同一个服务器上包括:基于每个服务的负载时序变化趋势,确定每个服务的类型,其中,类型用于表征当前服务的负载数据在不同时间段的差异性;基于多个服务的类型,将多个服务中的部分或全部服务部署在同一个服务器上。
可选地,基于每个服务的负载时序变化趋势,确定每个服务的类型包括:基于当前服务的负载时序变化趋势,确定第一时间段内的负载均值和第二时间段内的负载均值,其中,第一时间段晚于第二时间段;获取第一时间段内的负载均值与第二时间段内的负载均值的比值;基于比值与预设区间的比较结果,得到当前服务的类型。
可选地,基于比值与预设区间的比较结果,得到当前服务的类型包括:在比值处于预设区间内的情况下,确定类型为第一类型;在比值小于预设区间的最小值的情况下,确定类型为第二类型;在比值大于预设区间的最大值的情况下,确定类型为第三类型。
可选地,基于多个服务的类型,将多个服务中的部分或全部服务部署在同一个服务器上包括:将第一类型的服务均匀部署在多个服务器上;基于第二类型的服务和第三类型的服务的负载时序变化趋势,确定部署在同一个服务器上的目标服务,其中,目标服务包括:至少一个第二类型的服务,至少一个第三类型的服务,且目标服务的负载数据的波动性最小;将目标服务部署在同一个服务器上。
可选地,在同一个服务器上部署有多个第二类型的服务的情况下,该方法还包括:如果检测到同一个服务器的流量大于第一预设值,则按照多个第二类型的服务的优先级,确定第一服务;基于第一服务的负载时序变化趋势,确定其他服务器中的目标服务器,其中,第一服务的流量和目标服务器的流量的方差最小;将第一服务迁移至目标服务器,并将第一服务的流量调度至目标服务器。
可选地,在同一个服务器上部署有多个第二类型的服务的情况下,该方法还包括:如果检测到多个第二类型的服务中第二服务的负载大于第二预设值,则在其他服务器上启动第二服务对应的实例。
可选地,获取多个服务的历史负载数据包括:获取每个服务对应的多个实例对应的资源量数据;将多个实例对应的资源量数据进行叠加,得到每个服务的历史负载数据。
根据本发明实施例的另一方面,还提供了一种服务部署装置,包括:获取模块,用于获取多个服务的历史负载数据,其中,多个服务用于提供实时交互,历史负载数据包括:多个历史时刻采集到的负载数据;预测模块,用于基于每个服务的历史负载数据,预测得到每个服务的负载时序变化趋势;部署模块,用于基于多个服务的负载时序变化趋势,将多个服务中的部分或全部服务部署在同一个服务器上。
可选地,预测模块包括:权重确定单元,用于确定历史负载数据中每个负载数据的权重值;均值获取单元,用于基于每个负载数据的权重值,获取相同历史时刻采集到的负载数据的加权平均值,得到多个历史时刻的负载均值;拟合单元,用于对多个历史时刻的负载均值进行拟合,得到负载时序变化趋势。
可选地,权重确定单元还用于基于每个负载数据的历史采集时间与当前时刻的距离,确定每个负载数据的权重值。
可选地,部署模块包括:类型确定单元,用于基于每个服务的负载时序变化趋势,确定每个服务的类型,其中,类型用于表征当前服务的负载数据在不同时间段的差异性;部署单元,用于基于多个服务的类型,将多个服务中的部分或全部服务部署在同一个服务器上。
可选地,类型确定单元还用于:基于当前服务的负载时序变化趋势,确定第一时间段内的负载均值和第二时间段内的负载均值,其中,第一时间段晚于第二时间段;获取第一时间段内的负载均值与第二时间段内的负载均值的比值;基于比值与预设区间的比较结果,得到当前服务的类型。
可选地,类型确定单元还用于:在比值处于预设区间内的情况下,确定类型为第一类型;在比值小于预设区间的最小值的情况下,确定类型为第二类型;在比值大于预设区间的最大值的情况下,确定类型为第三类型。
可选地,部署单元还用于:将第一类型的服务均匀部署在多个服务器上;基于第二类型的服务和第三类型的服务的负载时序变化趋势,确定部署在同一个服务器上的目标服务,其中,目标服务包括:至少一个第二类型的服务,至少一个第三类型的服务,且目标服务的负载数据的波动性最小;将目标服务部署在同一个服务器上。
可选地,在同一个服务器上部署有多个第二类型的服务的情况下,该装置还包括:优先级确定模块,用于如果检测到同一个服务器的流量大于第一预设值,则按照多个第二类型的服务的优先级,确定第一服务;服务器确定模块,用于基于第一服务的负载时序变化趋势,确定其他服务器中的目标服务器,其中,第一服务的流量和目标服务器的流量的方差最小;迁移模块,用于将第一服务迁移至目标服务器,并将第一服务的流量调度至目标服务器。
可选地,在同一个服务器上部署有多个第二类型的服务的情况下,该装置还包括:启动模块,用于如果检测到多个第二类型的服务中第二服务的负载大于第二预设值,则在其他服务器上启动第二服务对应的实例。
可选地,获取模块包括:数据获取单元,用于获取每个服务对应的多个实例对应的资源量数据;叠加单元,用于将多个实例对应的资源量数据进行叠加,得到每个服务的历史负载数据。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述实施例中的服务部署方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器和存储器,处理器用于运行存储器中存储的程序,其中,程序运行时执行上述实施例中的服务部署方法。
在本发明实施例中,通过获取多个服务的历史负载数据,然后基于每个服务的历史负载数据,预测得到每个服务的负载时序变化趋势,进而基于多个服务的负载时序变化趋势,将多个服务中的部分或全部服务部署在同一个服务器,达到服务混部的目的。容易注意到的是,通过对在线服务的负载时序变化趋势进行预测,基于预测的负载特征的差异性,对于不同的在线服务负载进行更细粒度的切分和调度,进行实时的智能流量调度,实现在线服务的互补性混部,实现使用更少的机器数量,获取更大的峰值流量承载能力,及更好的资源利用率提升,进而解决了相关技术中在线服务部署方案的资源利用率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种服务部署方法的流程图;
图2是根据本发明实施例的一种可选的服务调度场景的示意图;
图3是根据本发明实施例的一种可选的负载数据采集场景的示意图;
图4是根据本发明实施例的一种服务部署装置的示意图;
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,对本发明实施例中出现的技术名词进行如下解释说明:
程序:可以在计算机终端、移动终端等设备上运行,具备特定的功能,例如,手机上的APP就是一个程序。
服务:包含一个或多个程序,可以供公司内部或外部的用户访问,提供给用户某一种或几种功能。
服务器:程序运行的计算机设备,可提供CPU、内存、磁盘、网络、GPU等硬件资源给程序使用。
在线服务:用于提供给用户实时交互的服务,需要快速响应用户的操作请求并返回结果,如用户扫码付钱,需要立刻返回用户是否支付成功及扣款金额。
离线服务:用于提供非实时交互的服务,只需在一个较长的时间范围内返回结果即可,如活期理财的每日收益到账、自动续费的扣款服务,只要当天执行完成即可。
负载:服务运行时使用的CPU、内存、磁盘等硬件资源,会随着流量变化而变化。
目前,现有技术中提供了如下几种服务混部方法:
方案1:在线服务混部+离线服务混部方法,直接通过增加单个服务器上运行的程序数量来提高机器资源的平均利用率。由于在线服务要求更高的实时响应速度,而在线服务直接和离线服务混部会导致在线服务受到影响,因此会做在线和离线服务的隔离:即一台服务器上同一时刻只存在在线服务,或只存在离线服务。但是,该方案只是简单的把在线和在线服务做混部,离线和离线服务做混部,未通过负载的预测进行更精细的调度和管理,难以有效的实现服务负载的分时互补,混部资源利用率的提升空间较小。
方案2:在线服务混部+离线服务混部+整机错峰避让方法,由于在线服务的繁忙程度取决于用户的生活习惯,如工作日的白天,用户扫码支付的行为会比较频繁,而夜间凌晨则会很少。服务繁忙和空闲时,对应使用的资源也会繁忙或空闲。而离线服务的繁忙程度和繁忙时段一定程度上可以由程序员自行控制。因此,当在线服务空闲时,可以将一些服务器上的在线服务程序下线,改为启动离线服务程序,将空闲的资源给利用起来;而当在线服务临近繁忙时段之前,做反向操作,将离线服务程序下线,改为启动在线服务程序。由此实现整机的错峰避让,来提高整体的资源使用率。但是,金融行业有最严格的合规要求,不同业务线的服务器必须物理隔离部署;由于业务不同,在线和离线的规模比例也不相同,对于偏实时交互的业务来说,因为离线的服务较少,仅仅只通过整机的错峰避让,对于提升资源利用率的提升空间较小。
方案3:基于负载预测的在离线混部方法,通过使用资源隔离的方式,把在线服务和离线服务混部在同一台服务器上。通过机器学习和增强学习等技术,对在线服务的负载进行预测,基于预测结果计算机器的分时可用资源量,进行按照预测的可用资源量,按时间定制化化的硬性限制离线服务能够使用的资源上限。当出现超过预测的负载时,通过临时关停混部的离线服务,实现资源的避让。但是,由于业务线的服务器物理隔离,导致离线任务并不能再全局进行便捷的调度,必然存在某些业务线缺乏足够的离线服务,资源利用率的提升空间受限。
由上可知,现有的混部方法如在线直接混部,对于资源利用率的提升有限,而在线和离线避让、在离线混部方式,需要足够大规模的可调度用于混部的离线服务,在金融场景下存在一定的局限性,无法满足混部的需要。
为了解决上述问题,根据本发明实施例,提供了一种服务部署方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种服务部署方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取多个服务的历史负载数据,其中,多个服务用于提供实时交互,历史负载数据包括:多个历史时刻采集到的负载数据。
针对的是满足金融合规要求时,由于严格的业务隔离而导致部分业务离线负载数量较少,无法有效的通过在离线混部来提升资源利用率,需要通过优化在线服务混部方式和流量调度方案,进一步提升纯在线混部的资源利用率。因此,本发明实施例中的服务是指金融领域中的在线服务。
上述步骤中的多个服务可以是需要进行混合部署的多个在线服务,具体的服务种类可以根据实际部署需求进行设定,本发明对此不做具体限定。
服务的负载变化和用户的使用行为有关,往往以周为单位,呈现出规律性。上述步骤中的历史时刻可以是指一天中的多个时刻,例如,00:00、04:00、8:00、12:00、16:00、20:00等,但不仅限于此,可以根据服务的具体情况进行设定。
在一种可选的实施例中,每个服务都可以在不同的服务器上启动实例对外提供服务,因此,可以从已运行有多个服务的服务器上,采集一段时间(如8周)内每个服务实际使用的资源量数据,得到每个服务的历史负载数据,其中,多个服务的资源量数据在同一天内的采集时刻相同。
步骤S104,基于每个服务的历史负载数据,预测得到每个服务的负载时序变化趋势。
上述步骤中的负载时序变化趋势可以是通过拟合得到的一天内负载随时间的变化情况,也即,负载时序变化趋势可以反映出负载时段差异性,通过负载时序变化趋势可以准确地确定出负载峰值时间。
在本发明实施例中,可以通过对不同服务的历史负载数据进行建模预测,得到不同服务的负载时序变化趋势,具体的,可以采用多项式拟合、线性回归等模型进行建模,在有效性上,多项式拟合效果较好,因此,在本发明实施例中采用多项式拟合模型。
步骤S106,基于多个服务的负载时序变化趋势,将多个服务中的部分或全部服务部署在同一个服务器上。
在本发明实施例中,在预测出不同服务的负载时序变化趋势之后,可以基于所有服务所具有的峰值时间特征,从所有服务中筛选出峰值时间特征不同、且互补的一个或多个服务,并将筛选出的服务混合部署在同一台服务器上,使得同一台服务器中,不同时刻会有不同服务出现负载峰值,从而提高该服务器的资源使用率。
需要说明的是,上述步骤中的部署可以是指在服务器上部署服务的实例并启动,或者启动已经部署好的实例,但不仅限于此。
通过上述步骤,利用金融行业常规业务不会同时流量达峰的特点,通过对在线服务的负载时序变化趋势进行预测,基于预测的负载特征的差异性,实现在线服务的互补性混部,实现使用更少的机器数量,获取更大的峰值流量承载能力,及更好的资源利用率提升,进而解决了相关技术中在线服务部署方案的资源利用率较低的技术问题。
可选地,基于每个服务的历史负载数据,预测得到每个服务的负载时序变化趋势包括:确定历史负载数据中每个负载数据的权重值;基于每个负载数据的权重值,获取相同历史时刻采集到的负载数据的加权平均值,得到多个历史时刻的负载均值;对多个历史时刻的负载均值进行拟合,得到负载时序变化趋势。
由于金融领域中,服务的负载变化容易受到时间影响,因此,对于历史负载数据,越接近当前时刻的数据影响力越高,也即,越新的数据影响力越高,越老的数据影响力越低。在本发明实施例中,可以基于每个负载数据的历史采集时间与当前时刻的距离,确定每个负载数据的权重值,其中,历史采集时间与当前时刻越近,表明该负载数据的影响力越高,从而该负载数据的权重值越大。
在一种可选的实施例中,对于每个服务,可以基于历史负载数据,通过如下公式计算得到负载在一周内各个时刻的负载均值P(t):
其中,L(t)表示每个时刻t的负载数据,Q(t)表示负载数据L(t)的权重值,也即衰减系数,T表示一周时间。
此时,得到的负载均值仍然是一系列的离散数据,需要通过多项式拟合算法做平滑处理,以负载为纵轴,以一周内的相对时间为横轴,把服务一周内的负载均值按照如下公式拟合为一个多项式,得到负载时序变化趋势:
需要说明的是,多个服务中的部分或全部服务的混部后负载,可通过部分或全部服务的负载时序变化趋势直接叠加得出。
通过引入不同负载数据的衰减系数合理保留历史数据对预测结果的影响力,以多项式拟合算法计算负载预测模型实现良好的可叠加计算性。
可选地,基于多个服务的负载时序变化趋势,将多个服务中的部分或全部服务部署在同一个服务器上包括:基于每个服务的负载时序变化趋势,确定每个服务的类型,其中,类型用于表征当前服务的负载数据在不同时间段的差异性;基于多个服务的类型,将多个服务中的部分或全部服务部署在同一个服务器上。
在本发明实施例中,服务混部和流量精细化调度的核心目标,是使得机器的资源使用率尽可能少的波动,并尽可能的高。因此,可以根据不同服务的负载时序变化趋势,将服务划分为多个类型,具体可以根据金融服务的具体情况进行划分。在本发明实施例中,可以将服务划分为三个类型,其中,第一类型表示服务的负载数据在不同时间段的差异性较小,也即,不同时间段的负载均值相当;第二类型表示服务的负载数据在白天高于夜晚,也即,通常用户在白天使用该服务,如扫码付钱服务;第三类型表示服务的负载数据在晚上高于白天,也即,通常用户在夜晚使用该服务。
服务分类后,可以采用如下混部策略对多个服务进行部署,以实现核心目标:
策略1:对于第一类型的服务,不需要进行额外调度,大致均匀部署在所有服务器即可。
策略2:对于第二类型和第三类型的服务,做互补混部,将第二类型和第三类型的服务同时部署在同一个服务器上,该服务器上具体部署的服务可以根据负载时序变化趋势的叠加结果进行确定,确保负载波动性方差最小。
策略3:由于在线服务大多都属于第二类型,所以只靠策略2无法满足整个在线服务的混部需要,还要进行第二类型的服务之间的混部。混部前,可以根据服务的性能优先级,对服务进行划分;混部时,需要遵从以下原则:服务性能优先级较高的第二类型的服务,尽可能稳定部署,减少调度的频率;服务性能优先级较低的第二类型的服务,用来调度流量实现削峰填谷。
例如,以5个服务(服务a、服务b、服务c、服务d和服务e)部署在两个服务器(服务器A和服务器B)为例进行说明,基于5个服务的负载时序变化趋势,可以确定服务a属于第一类型,服务b和服务e属于第二类型,服务c和服务d属于第三类型,则可以将服务a在服务器A和服务器B上均进行部署,根据服务b、服务c、服务d和服务e的负载时序变化趋势,将服务b和服务c部署在服务器A上,将服务d和服务e部署在服务器B上。
通过按照预先设定的策略对不同类型的服务进行混部,可以挖掘在线服务混部的潜力,在保证服务性能需求的前提下,提升整体的资源利用率。
可选地,基于每个服务的负载时序变化趋势,确定每个服务的类型包括:基于当前服务的负载时序变化趋势,确定第一时间段内的负载均值和第二时间段内的负载均值,其中,第一时间段晚于第二时间段;获取第一时间段内的负载均值与第二时间段内的负载均值的比值;基于比值与预设区间的比较结果,得到当前服务的类型。
上述步骤中的第一时间段可以是夜晚时间段,如20:00-08:00,第二时间段可以是白天时间段,如08:00-20:00,具体时间段划分可以根据实际服务情况进行确定。
在一种可选的实施例中,在获取到当前服务的负载时序变化趋势之后,可以将第一时间段的负载均值进行统计,并将第二时间段的负载均值进行统计,然后计算两个时间段的负载均值的比值,可以确定当前服务的负载时段差异性,从而可以得到当前服务的类型。
通过将在线服务按照负载时段特征,预先划分为多个类型,使用不同类型服务的静态部署,可以更加有效提升服务混部的效果,提高资源的利用率。
可选地,基于比值与预设区间的比较结果,得到当前服务的类型包括:在比值处于预设区间内的情况下,确定类型为第一类型;在比值小于预设区间的最小值的情况下,确定类型为第二类型;在比值大于预设区间的最大值的情况下,确定类型为第三类型。
上述步骤中的预设区间可以根据实际服务类型的划分需要进行设定,比值在该区间内表征负载时段差异性不大,例如,预设区间可以是0.5-1.5,但不仅限于此。
在一种可选的实施例中,如果第一时间段的负载均值与第二时间段的负载均值的比值在预设区间内(如夜晚负载均值是白天负载均值的0.5-1.5之间),则表明第一时间段的负载均值与第二时间段的负载均值差异性不大,可以确定该服务的类型为第一类型;如果第一时间段的负载均值与第二时间段的负载均值的比值小于预设区间的最小值(如夜晚负载均值是白天负载均值的0-0.5之间),则表明第一时间段的负载均值低于第二时间段的负载均值,可以确定该服务的类型为第二类型;如果第一时间段的负载均值与第二时间段的负载均值的比值大于预设区间的最大值(如夜晚负载均值是白天负载均值的1.5以上),则表明第一时间段的负载均值高于第二时间段的负载均值,可以确定该服务的类型为第二类型。
可选地,基于多个服务的类型,将多个服务中的部分或全部服务部署在同一个服务器上包括:将第一类型的服务均匀部署在多个服务器上;基于第二类型的服务和第三类型的服务的负载时序变化趋势,确定部署在同一个服务器上的目标服务,其中,目标服务包括:至少一个第二类型的服务,至少一个第三类型的服务,且目标服务的负载数据的波动性最小;将目标服务部署在同一个服务器上。
在本发明实施例中,基于预先设定的混部策略,可以将于第一类型的服务均匀部署在所有服务器;对于第二类型和第三类型的服务,可以基于第二类型和第三类型的服务的负载时序变化趋势进行互补混部,将第二类型和第三类型的服务同时部署在同一个服务器上,该服务器上具体部署的服务可以根据负载时序变化趋势的叠加结果进行确定,确保负载波动性方差最小。
可选地,在同一个服务器上部署有多个第二类型的服务的情况下,该方法还包括:如果检测到同一个服务器的流量大于第一预设值,则按照多个第二类型的服务的优先级,确定第一服务;基于第一服务的负载时序变化趋势,确定其他服务器中的目标服务器,其中,第一服务的流量和目标服务器的流量的方差最小;将第一服务迁移至目标服务器,并将第一服务的流量调度至目标服务器。
上述步骤中的第一预设值可以是预先设定的资源使用率的峰值上限,具体可以根据服务器的实际情况进行设定。
在一种可选的实施例中,对于部署有多个第二类型的服务的服务器,在服务部署完毕之后,可以按照小时维度,对每小时的服务调度方案进行预测计算,计算原理如下:优先级较高的服务部署保持不动,流量正常均衡调度;优先级较低的服务通过预测模型叠加方式,确定需要迁移的目标服务器。当检测到该服务器的流量大于第一预设值时,可以确定该服务器上出现非预期的流量突增,为了提高服务器的流量峰值承载力,可以将所有第二类型的服务按照优先级从低到高的顺序进行筛选,确定出需要迁移的第一服务,然后将第一服务迁移到的其他服务器。具体迁移方案如下:可以通过预测模型叠加方式,逐台服务器进行计算,确定出流量方差最小的目标服务器,即可将第一服务部署到目标服务器,并同步将第一服务的流量调度至目标服务器。
例如,以如图2所示的场景为例,服务器A和服务器B上均部署有服务a、服务b和服务c均部署,可以通过服务负载建模对服务器A和服务器B上的所有服务进行负载监控,对于每个服务,根据实时采集到的资源量数据,以及历史数据进行建模,预测负载时序变化趋势,并反馈调度策略至流量比例均衡调度器,通过流量比例均衡调度器按照三个服务的性能优先级,将低优先级的服务迁移到其他服务器,例如,将服务器A上的服务c迁移至服务器C上,并将服务c的负载调度到服务器C上,从而实现控制一部分在线服务不同时刻的负载会被调度到不同的服务器上,以达到提高整体资源利用率的目标。
通过将在线服务按照性能优先级要求,预先划分为多层优先级,使用不同优先级服务的动态调度,用分级较低的服务作为机动负载,通过负载预测模型,快速的计算出最佳的调度目的地,实现负载的实时自动调度,实现在线服务之间的削峰填谷,在离线服务较少的场景中,可进一步提升资源利用率,提升系统的峰值弹性,节省服务器成本。
可选地,在同一个服务器上部署有多个第二类型的服务的情况下,该方法还包括:如果检测到多个第二类型的服务中第二服务的负载大于第二预设值,则在其他服务器上启动第二服务对应的实例。
上述步骤中的第二预设值可以根据实际需要进行设定,当服务的负载大于第二预设值时,表明该服务的负载过大。
在一种可选的实施例中,对于单个实例负载过大的服务,使用按比例扩容的方式,在其他服务器上启动该服务的实例,并按比例将部分负载调度到其他服务器上,保持扩容后的负载可预测性,将大负载打散,提高整体的流量峰值承载力。
例如,仍以如图2所示的场景为例,服务器A和服务器B上均部署有服务a、服务b和服务c均部署,可以通过服务负载建模对服务器A和服务器B上的所有服务进行负载监控,对于每个服务,根据实时采集到的资源量数据,以及历史数据进行建模,预测负载时序变化趋势,并反馈调度策略至流量比例均衡调度器,通过流量比例均衡调度器按比例进行扩容,例如,在服务器C上启动服务b的实例,并将服务b的部分负载调度到服务器C上,从而实现控制一部分在线服务不同时刻的负载会被调度到不同的服务器上,以达到提高整体资源利用率的目标。
通过峰值流量的弹性扩容,使得在线服务部署具有良好的实际应用能力,实现负载的实时自动调度,实现在线服务之间的削峰填谷。
通过上述两种调度方案,对于不同的在线服务负载进行更细粒度的切分和调度,进行实时的智能流量调度,获取更大的峰值流量承载能力,及更好的资源利用率提升。
可选地,获取多个服务的历史负载数据包括:获取每个服务对应的多个实例对应的资源量数据;将多个实例对应的资源量数据进行叠加,得到每个服务的历史负载数据。
每个服务都可以同时启动多个实例,多个实例分别运行在多个服务器上,通过流量调度可以将负载转发到所有实例上,确保能够正常提供服务。在一种可选的实施例中,可以使用服务负载数据采集工具,实时采集每个实例实际使用的资源量数据,并通过将所有实例的资源量数据进行叠加,可以得到服务整体的历史负载数据。
例如,如图3所示,服务器A和服务器B上均运行有服务a、服务b和服务c的实例,其中,服务器A上运行的实例为:实例1、实例2和实例3,服务器B上运行的实例为实例4、实例5和实例6,因此,可以实时采集实例1和实例4的资源量数据,然后将实例1和实例4的资源量数据进行叠加,得到服务a的历史负载数据,实现服务a负载采集的目的;实时采集实例2和实例5的资源量数据,然后将实例2和实例5的资源量数据进行叠加,得到服务b的历史负载数据,实现服务b负载采集的目的;实时采集实例3和实例6的资源量数据,然后将实例3和实例6的资源量数据进行叠加,得到服务c的历史负载数据,实现服务c负载采集的目的。
根据本发明实施例,还提供了一种服务部署装置,该装置可以执行上述实施例中的服务部署方法,具体实现方案和应用场景与上述实施例相同,在此不做赘述。
图4是根据本发明实施例的一种服务部署装置的示意图,如图4所示,该装置包括:
获取模块42,用于获取多个服务的历史负载数据,其中,多个服务用于提供实时交互,历史负载数据包括:多个历史时刻采集到的负载数据。
预测模块44,用于基于每个服务的历史负载数据,预测得到每个服务的负载时序变化趋势。
部署模块46,用于基于多个服务的负载时序变化趋势,将多个服务中的部分或全部服务部署在同一个服务器上。
可选地,预测模块包括:权重确定单元,用于确定历史负载数据中每个负载数据的权重值;均值获取单元,用于基于每个负载数据的权重值,获取相同历史时刻采集到的负载数据的加权平均值,得到多个历史时刻的负载均值;拟合单元,用于对多个历史时刻的负载均值进行拟合,得到负载时序变化趋势。
可选地,权重确定单元还用于基于每个负载数据的历史采集时间与当前时刻的距离,确定每个负载数据的权重值。
可选地,部署模块包括:类型确定单元,用于基于每个服务的负载时序变化趋势,确定每个服务的类型,其中,类型用于表征当前服务的负载数据在不同时间段的差异性;部署单元,用于基于多个服务的类型,将多个服务中的部分或全部服务部署在同一个服务器上。
可选地,类型确定单元还用于:基于当前服务的负载时序变化趋势,确定第一时间段内的负载均值和第二时间段内的负载均值,其中,第一时间段晚于第二时间段;获取第一时间段内的负载均值与第二时间段内的负载均值的比值;基于比值与预设区间的比较结果,得到当前服务的类型。
可选地,类型确定单元还用于:在比值处于预设区间内的情况下,确定类型为第一类型;在比值小于预设区间的最小值的情况下,确定类型为第二类型;在比值大于预设区间的最大值的情况下,确定类型为第三类型。
可选地,部署单元还用于:将第一类型的服务均匀部署在多个服务器上;基于第二类型的服务和第三类型的服务的负载时序变化趋势,确定部署在同一个服务器上的目标服务,其中,目标服务包括:至少一个第二类型的服务,至少一个第三类型的服务,且目标服务的负载数据的波动性最小;将目标服务部署在同一个服务器上。
可选地,在同一个服务器上部署有多个第二类型的服务的情况下,该装置还包括:优先级确定模块,用于如果检测到同一个服务器的流量大于第一预设值,则按照多个第二类型的服务的优先级,确定第一服务;服务器确定模块,用于基于第一服务的负载时序变化趋势,确定其他服务器中的目标服务器,其中,第一服务的流量和目标服务器的流量的方差最小;迁移模块,用于将第一服务迁移至目标服务器,并将第一服务的流量调度至目标服务器。
可选地,在同一个服务器上部署有多个第二类型的服务的情况下,该装置还包括:启动模块,用于如果检测到多个第二类型的服务中第二服务的负载大于第二预设值,则在其他服务器上启动第二服务对应的实例。
可选地,获取模块包括:数据获取单元,用于获取每个服务对应的多个实例对应的资源量数据;叠加单元,用于将多个实例对应的资源量数据进行叠加,得到每个服务的历史负载数据。
根据本发明实施例,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述实施例中的服务部署方法。
根据本发明实施例,还提供了一种电子设备,包括:处理器和存储器,处理器用于运行存储器中存储的程序,其中,程序运行时执行上述实施例中的服务部署方法。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种服务部署方法,其特征在于,包括:
获取多个服务的历史负载数据,其中,所述多个服务用于提供实时交互,所述历史负载数据包括:多个历史时刻采集到的负载数据;
基于每个服务的历史负载数据,预测得到所述每个服务的负载时序变化趋势;
基于所述多个服务的负载时序变化趋势,将所述多个服务中的部分或全部服务部署在同一个服务器上。
2.根据权利要求1所述的方法,其特征在于,所述基于每个服务的历史负载数据,预测得到所述每个服务的负载时序变化趋势包括:
确定所述历史负载数据中每个负载数据的权重值;
基于所述每个负载数据的权重值,获取相同历史时刻采集到的负载数据的加权平均值,得到所述多个历史时刻的负载均值;
对所述多个历史时刻的负载均值进行拟合,得到所述负载时序变化趋势。
3.根据权利要求2所述的方法,其特征在于,基于所述每个负载数据的历史采集时间与当前时刻的距离,确定所述每个负载数据的权重值。
4.根据权利要求1所述的方法,其特征在于,所述基于所述多个服务的负载时序变化趋势,将所述多个服务中的部分或全部服务部署在同一个服务器上包括:
基于所述每个服务的负载时序变化趋势,确定所述每个服务的类型,其中,所述类型用于表征当前服务的负载数据在不同时间段的差异性;
基于所述多个服务的类型,将所述多个服务中的部分或全部服务部署在所述同一个服务器上。
5.根据权利要求4所述的方法,其特征在于,所述基于所述每个服务的负载时序变化趋势,确定所述每个服务的类型包括:
基于所述当前服务的负载时序变化趋势,确定第一时间段内的负载均值和第二时间段内的负载均值,其中,所述第一时间段晚于所述第二时间段;
获取所述第一时间段内的负载均值与所述第二时间段内的负载均值的比值;
基于所述比值与预设区间的比较结果,得到所述当前服务的类型。
6.根据权利要求5所述的方法,其特征在于,所述基于所述比值与预设区间的比较结果,得到所述当前服务的类型包括:
在所述比值处于所述预设区间内的情况下,确定所述类型为第一类型;
在所述比值小于所述预设区间的最小值的情况下,确定所述类型为第二类型;
在所述比值大于所述预设区间的最大值的情况下,确定所述类型为第三类型。
7.根据权利要求6所述的方法,其特征在于,所述基于所述多个服务的类型,将所述多个服务中的部分或全部服务部署在所述同一个服务器上包括:
将第一类型的服务均匀部署在多个服务器上;
基于第二类型的服务和第三类型的服务的负载时序变化趋势,确定部署在所述同一个服务器上的目标服务,其中,所述目标服务包括:至少一个第二类型的服务,至少一个第三类型的服务,且所述目标服务的负载数据的波动性最小;
将所述目标服务部署在所述同一个服务器上。
8.根据权利要求6所述的方法,其特征在于,在所述同一个服务器上部署有多个第二类型的服务的情况下,所述方法还包括:
如果检测到所述同一个服务器的流量大于第一预设值,则按照所述多个第二类型的服务的优先级,确定第一服务;
基于所述第一服务的负载时序变化趋势,确定其他服务器中的目标服务器,其中,所述第一服务的流量和所述目标服务器的流量的方差最小;
将所述第一服务迁移至所述目标服务器,并将所述第一服务的流量调度至所述目标服务器。
9.根据权利要求6所述的方法,其特征在于,在所述同一个服务器上部署有多个第二类型的服务的情况下,所述方法还包括:
如果检测到所述多个第二类型的服务中第二服务的负载大于第二预设值,则在其他服务器上启动所述第二服务对应的实例。
10.根据权利要求1至9中任意一项所述的方法,其特征在于,获取多个服务的历史负载数据包括:
获取每个服务对应的多个实例对应的资源量数据;
将所述多个实例对应的资源量数据进行叠加,得到所述每个服务的历史负载数据。
11.一种服务部署装置,其特征在于,包括:
获取模块,用于获取多个服务的历史负载数据,其中,所述多个服务用于提供实时交互,所述历史负载数据包括:多个历史时刻采集到的负载数据;
预测模块,用于基于每个服务的历史负载数据,预测得到所述每个服务的负载时序变化趋势;
部署模块,用于基于所述多个服务的负载时序变化趋势,将所述多个服务中的部分或全部服务部署在同一个服务器上。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至10中任意一项所述的服务部署方法。
13.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器用于运行所述存储器中存储的程序,其中,所述程序运行时执行权利要求1至10中任意一项所述的服务部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111131966.5A CN113934533A (zh) | 2021-09-26 | 2021-09-26 | 服务部署方法和装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111131966.5A CN113934533A (zh) | 2021-09-26 | 2021-09-26 | 服务部署方法和装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113934533A true CN113934533A (zh) | 2022-01-14 |
Family
ID=79276765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111131966.5A Pending CN113934533A (zh) | 2021-09-26 | 2021-09-26 | 服务部署方法和装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113934533A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041106A (zh) * | 2023-08-28 | 2023-11-10 | 河北润博星原科技发展有限公司 | 一种基于物联网的监控设备运维管理系统及方法 |
-
2021
- 2021-09-26 CN CN202111131966.5A patent/CN113934533A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041106A (zh) * | 2023-08-28 | 2023-11-10 | 河北润博星原科技发展有限公司 | 一种基于物联网的监控设备运维管理系统及方法 |
CN117041106B (zh) * | 2023-08-28 | 2024-02-27 | 河北润博星原科技发展有限公司 | 一种基于物联网的监控设备运维管理系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101821997B (zh) | 分层保留资源调度基础结构 | |
CN103823714B (zh) | 一种基于虚拟化下NUMA节点内存QoS的调节方法及装置 | |
CN105159736B (zh) | 一种支持性能分析的SaaS软件部署方案的构建方法 | |
WO2011153155A2 (en) | Method and system for arbitraging computing resources in a cloud computing environment | |
CN111338791A (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN113010260A (zh) | 容器数量弹性伸缩方法以及容器数量弹性伸缩方法系统 | |
CN113256345B (zh) | 广告投放策略的自定义方法、装置和计算机设备 | |
CN109117280A (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN113934533A (zh) | 服务部署方法和装置、存储介质及电子设备 | |
CN116414567A (zh) | 智能汽车操作系统的资源调度方法、装置及设备 | |
CN107203256B (zh) | 一种网络功能虚拟化场景下的节能分配方法与装置 | |
CN110196773B (zh) | 统一调度计算资源的多时间尺度安全校核系统及方法 | |
CN110096339A (zh) | 一种基于系统负载实现的扩缩容配置推荐系统及方法 | |
CN108664321A (zh) | 系统资源分配调整方法及装置 | |
CN108563504A (zh) | 一种资源管控方法和装置 | |
CN110515721A (zh) | 一种应用管理方法、装置、终端及计算机存储介质 | |
CN110245021A (zh) | 移动终端的内存管理方法、系统、电子设备及存储介质 | |
CN109460287A (zh) | 资源混合调度的控制方法及系统 | |
CN109634812A (zh) | Linux系统的进程CPU占用率控制方法、终端设备及存储介质 | |
CN115827232A (zh) | 一种为业务模型确定配置的方法、装置、系统及设备 | |
CN114936089A (zh) | 资源调度方法、系统、设备及存储介质 | |
CN114546602A (zh) | 虚拟机调度方法及装置 | |
CN112148469B (zh) | 管理资源的方法、装置及计算机存储介质 | |
CN117349037B (zh) | 在离线应用干扰消除方法、装置、计算机设备及存储介质 | |
CN114449466B (zh) | 用户计费智能监测方法及装置、电子设备、存储介质 |
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 |