服务器资源分配方法和装置、存储介质及电子设备与流程

文档序号:26003826发布日期:2021-07-23 21:21阅读:160来源:国知局
服务器资源分配方法和装置、存储介质及电子设备与流程

本发明涉及计算机领域,具体而言,涉及一种服务器资源分配方法和装置、存储介质及电子设备。



背景技术:

在云游戏的服务器环境中,云游戏服务器(cloudgameserver,简称cgs)是主要为用户提供游戏虚拟化服务的服务器。cgs将原来运行于用户终端(如windows桌面电脑、macos桌面电脑、android手机、androidtv、ios手机、ios平板电脑等设备)的游戏进程,通过虚拟化的方式运行于cgs上。也就是说,通过网络将用户的输入信息(鼠标、键盘、手柄、摇杆及其他体感设备)传输给cgs,然后在cgs中将与输入信息对应的游戏画面转换为音视频流,并经过网络返回给用户持有的终端设备。

目前的服务器部署通常是专门的用途配备专门的服务器,并且为了保障用户体验,服务器会要求始终保持足够的资源来等待用户使用这些资源。如在上述云游戏应用场景中,为了保证用户在游戏过程中的实时交互体验,cgs的部署规模不仅要能够容纳在线用户最大量的资源需求,还需要预留部分资源,以应对突发增量。

然而,上述类似cgs的云应用服务器的配置相比传统的用于通用计算的服务器,整体成本是比较高的。除了多个中央处理器(computerprocessingunit,简称cpu)核心,大内存,高带宽等,可能还需要多个算力极强的图像处理器(graphicprocessingunit,简称gpu)。如果仍然为专门业务提供专门服务器,无法有效降低运营成本;而如果简单地在服务器上同时交错运行多种业务,可能又会带来资源争抢,影响用户体验。

对于实时性要求高的云业务,要求云应用服务器始终保持足够的资源来等待用户使用,用户使用云应用服务器包括高峰期以及低峰期,用户高峰期及低峰期都存在闲置的云应用服务器,相比于高峰期,在用户低峰期时,存在的闲置云应用服务器尤其多,而用户高峰期的时间段都比较集中,运行持续时间短,云应用服务器处于用户低峰期的时间较长,太多的闲置服务器,导致云应用服务器利用率较低。

综上,在相关技术提供的方案中,针对云应用服务器,一直存在有资源利用率较低的问题。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请实施例提供了一种服务器资源分配方法和装置、存储介质及电子设备,以至少解决云应用服务器中存在的资源利用率低的技术问题。

根据本申请实施例的一个方面,提供了一种服务器资源分配方法,包括:在运行目标云业务的过程中,检测目标服务器集群中处于闲置状态的服务器资源,其中,上述目标服务器集群是为上述目标云业务部署的服务器集群,上述闲置状态为服务器资源的占用量低于目标阈值的状态;在检测到处于上述闲置状态的目标服务器资源的情况下,获取与离线业务对应的分片任务集,其中,上述离线业务与上述目标云业务相关联,上述分片任务集中包括按照上述离线业务的业务属性信息,对上述离线业务对应的离线任务进行切分后得到的多个分片任务;将上述目标服务器资源分配给上述分片任务集中待处理的目标分片任务。

根据本申请实施例的另一方面,还提供了一种服务器资源分配装置,包括:检测单元,用于在运行目标云业务的过程中,检测目标服务器集群中处于闲置状态的服务器资源,其中,上述目标服务器集群是为上述目标云业务部署的服务器集群,上述闲置状态为服务器资源的占用量低于目标阈值的状态;获取单元,用于在检测到处于上述闲置状态的目标服务器资源的情况下,获取与离线业务对应的分片任务集,其中,上述离线业务与上述目标云业务相关联,上述分片任务集中包括按照上述离线业务的业务属性信息,对上述离线业务对应的离线任务进行切分后得到的多个分片任务;检测单元,用于将上述目标服务器资源分配给上述分片任务集中待处理的目标分片任务。

根据本申请实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述服务器资源分配方法。

根据本申请实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的服务器资源分配方法。

在本申请实施例中,采用在运行目标云业务的过程中,检测目标服务器集群中处于闲置状态的服务器资源,其中,目标服务器集群是为目标云业务部署的服务器集群,闲置状态为服务器资源的占用量低于目标阈值的状态;在检测到处于闲置状态的目标服务器资源的情况下,获取与离线业务对应的分片任务集,其中,离线业务与目标云业务相关联,分片任务集中包括按照离线业务的业务属性信息,对离线业务对应的离线任务进行切分后得到的多个分片任务;将目标服务器资源分配给分片任务集中待处理的目标分片任务的方式,通过预先区分实时性高的云业务和非实时性离线业务,将运行云业务时存在闲置状态的服务器资源分配给云业务相关的非实时性离线业务,达到了运行实时性要求高的云业务的同时充分利用服务器中的闲置资源目的,从而实现了提高云应用服务器资源利用率的技术效果,进而解决了云应用服务器中存在的资源利用率低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本申请实施例的一种可选的服务器资源分配方法的应用环境的示意图;

图2是根据本申请实施例的一种可选的服务器资源分配方法的流程图;

图3是根据本申请实施例的一种可选的服务器资源分配方法的示意图;

图4是根据本申请实施例的一种可选的服务器资源分配方法的流程图;

图5是根据本申请实施例的一种可选的服务器资源分配方法的示意图;

图6是根据本申请实施例的一种可选的服务器资源占用情况示意图;

图7是根据本申请实施例的一种可选的服务器资源分配方法的系统框架示意图;

图8是根据本申请实施例的一种可选的服务器资源分配装置的结构示意图;

图9是根据本申请实施例的一种可选的电子设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本申请实施例的一个方面,提供了一种服务器资源分配方法,可选地,作为一种可选的实施方式,上述服务器资源分配方法可以但不限于应用于如图1所示的环境中,在如图1所示的环境中运行云业务。本申请实施例中云业务可以但不限于云游戏、云教育、云会议、云社交等。

云游戏(cloudgaming)又可称为游戏点播(gamingondemand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thinclient)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。

云教育(cloudcomputingeducation简称ccedu),是指基于云计算商业模式应用的教育平台服务。在云平台上,所有的教育机构,培训机构,招生服务机构,宣传机构,行业协会,管理机构,行业媒体,法律结构等都集中云整合成资源池,各个资源相互展示和互动,按需交流,达成意向,从而降低教育成本,提高效率。

云会议是基于云计算技术的一种高效、便捷、低成本的会议形式。使用者只需要通过互联网界面,进行简单易用的操作,便可快速高效地与全球各地团队及客户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。

云会议可以但不限于主要集中在以软件即服务(softwareasaservice,简称saas)模式为主体的服务内容,包括电话、网络、视频等服务形式,基于云计算的视频会议就叫云会议。

在云会议时代,数据的传输、处理、存储全部由视频会议厂家的计算机资源处理,用户完全无需再购置昂贵的硬件和安装繁琐的软件,只需打开浏览器,登录相应界面,就能进行高效的远程会议。

云会议系统支持多服务器动态集群部署,并提供多台高性能服务器,大大提升了会议稳定性、安全性、可用性。近年来,视频会议因能大幅提高沟通效率,持续降低沟通成本,带来内部管理水平升级,而获得众多用户欢迎,已广泛应用在政府、军队、交通、运输、金融、运营商、教育、企业等各个领域。毫无疑问,视频会议运用云计算以后,在方便性、快捷性、易用性上具有更强的吸引力,必将激发视频会议应用新高潮的到来。

云社交(cloudsocial)是一种物联网、云计算和移动互联网交互应用的虚拟社交应用模式,以建立著名的“资源分享关系图谱”为目的,进而开展网络社交,云社交的主要特征,就是把大量的社会资源统一整合和评测,构成一个资源有效池向用户按需提供服务。参与分享的用户越多,能够创造的利用价值就越大。

如图1所示,云业务应用环境中包括但不限于用户、边缘接入点102、云业务调度模块104、云业务服务器集群100、离线业务池106以及离线业务对应的分片任务集108,其中,分片任务集108中包括分片任务a、分片任务b、分片任务c、分片任务d。在运行云业务过程中,用户通过边缘接入点102连接云业务服务器集群100,其中,边缘接入点102部署在靠近用户的网络节点上,边缘接入点100一边连接云游戏服务器集群100,一边连接着用户;通过边缘接入点100的服务器程序,为云业务提供高吞吐量低延迟且抗网络抖动的业务下行能力。应用环境中还包括云业务调度模块,云业务调度模块负责统计云业务中的图像处理器(graphicprocessingunit,简称gpu)、中央处理器(computerprocessingunit,简称cpu)、带宽等资源,为用户运行的云业务分配需要的资源,例如云业务调度模块可以但不限于为云业务服务器集群中的资源分配实时性云业务以及非实时性离线业务。其中离线业务对应于包括多个分片任务的分片任务集108,其中,多个分片任务按照不同的业务属性信息可以划分为不同的分片任务a、分片任务b、分片任务c、分片任务d等等。

例如在云业务是云游戏场景时,实时性云业务可以但不限于云游戏运行业务,非实时性离线业务可以但不限于按照机器学习训练业务属性以及音视频转码业务属性将离线任务分为分片任务a:机器学习训练任务,以及分片任务b:音视频转码任务。在云业务是云教育场景时,实时性云业务可以但不限于云教学业务,非实时性离线业务可以但不限于按照机器学习训练业务属性以及作业批改业务属性将离线任务分为分片任务a:机器学习训练任务,以及分片任务b:作业批改任务。在云业务是云会议场景时,实时性云业务可以但不限于云会议业务,非实时性离线业务可以但不限于按照机器学习训练业务属性以及会议资料整理属性将离线任务分为分片任务a:机器学习训练任务,以及分片任务b:会议资料整理任务。

可选地,在本实施例中,上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述仅是一种示例,本实施例中对此不作任何限定。

服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

可选地,作为一种可选的实施方式,如图2所示,上述服务器资源分配方法包括:

s202,在运行目标云业务的过程中,检测目标服务器集群中处于闲置状态的服务器资源,其中,目标服务器集群是为目标云业务部署的服务器集群,闲置状态为服务器资源的占用量低于目标阈值的状态;

s204,在检测到处于闲置状态的目标服务器资源的情况下,获取与离线业务对应的分片任务集,其中,离线业务与目标云业务相关联,分片任务集中包括按照离线业务的业务属性信息,对离线业务对应的离线任务进行切分后得到的多个分片任务;

s206,将目标服务器资源分配给分片任务集中待处理的目标分片任务。

可选地,在本实施例中,上述云服务器资源可以包括但不限于服务器中用于数据处理的处理资源,如服务器中图像处理器gpu的剩余处理资源。这里的云服务器资源可以包括但不限于多个服务器中各个服务器内的gpu的剩余处理资源、单个服务器中各个gpu的剩余处理资源、单个服务器中单个gpu的剩余处理资源。这里为示例,本实施例中对此不作限定。

需要说明的是,在本实施例中,在云业务服务器资源的占用量或者使用量低于预先设定的目标阈值的情况下,则确定云业务服务器资源处于闲置状态;在云业务服务器资源的占用量或者使用量高于预先设定的目标阈值的情况下,则确定云业务正在利用上述云业务服务器资源运行相关云业务,云业务服务器处于运行状态。此外,在本实施例中,还可以根据云业务服务器资源的占用率(即占用比例)与预定阈值的比对结果,来确定是否处于闲置状态。这里不再赘述。

可选地,在本实施例中,目标云业务非实时性业务,对交互实时性要求较高,而与目标云业务相关的离线业务是非实时性业务,对交互实时性要求相对较低。其中,这里的离线业务与目标云业务相关联。上述目标云业务可以包括但不限于:云游戏业务、云教育业务、云会议业务等。这里列出示例,对于通过云服务器实现的其他服务也可以包含在内,这里不做限定。

例如:在目标云业务是云游戏业务的情况下,上述离线业务可以但不限于是与云游戏业务相关的游戏中的机器学习训练业务或者游戏音视频转码业务。又例如,在目标云业务是云教育业务的情况下,上述离线业务可以但不限于是与云教育业务相关的教学学习训练业务或者课后批改作业业务。

可选地,在本实施例中,,上述离线业务对应的离线任务可以但不限于被切分为多个分片任务,得到分片任务集。其中,上述切分离线任务的依据可以包括但不限于不同离线业务的业务属性信息。例如,在离线业务为云游戏业务相关的游戏中的机器学习训练业务的情况下,可以基于机器学习中的运算矩阵作为切分单位进行切分,在离线业务为云游戏业务相关的游戏音视频转码业务的情况下,可以基于音视频帧中确定出的关键帧划分的图片组为切分单位进行切分。

具体这里目标云业务以云游戏业务,离线业务以游戏中的机器学习训练业务或者游戏音视频转码业务为例进行说明:

在运行云游戏的过程中,检测目标服务器集群中处于闲置状态的服务器资源,其中,目标服务器集群是为云游戏业务部署的服务器集群,闲置状态为服务器资源的占用量低于目标阈值的状态;在检测到处于闲置状态的目标服务器资源的情况下,获取与离线业务对应的分片任务集,其中,离线业务是与目标游戏业务相关联的游戏机器学习训练业务或者音视频转码业务,分片任务集中包括按照离线的游戏机器学习训练业务属性以及音视频转码业务属性进行切分后得到的多个分片任务,多个分片任务中包括但不限于游戏机器学习训练任务以及音视频转码任务;将目标服务器资源分配给分片任务集中待处理的目标游戏机器学习训练任务以及音视频转码任务,云游戏的各个模块是7*24小时提供服务的,在每个云游戏服务器有一定量空闲的时候,机器学习训练任务和音视频转码任务会见缝插针式运行。实现通过云游戏服务器来进行机器学习训练或者音视频转码,使得闲置的云游戏服务器资源充分利用,提高了云游戏服务器的利用率,使得成本较高的云游戏gpu服务器得以使用。上述仅为示例,并不构成对本实施例的限定。

可选地,在本实施例中,在运行目标云业务之前,还可以包括但不限于:为目标云业务的操作内核参数配置第一分配优先级,其中,操作内核参数中包括多个业务子参数;为离线业务的操作内核参数配置第二分配优先级,其中,第一分配优先级高于第二分配优先级。

可选地,为目标云业务、离线业务的操作内核参数配置优先级,可采用一键配置的方式,在为一个业务配置优先级后,其对应的一套操作参数中各个子参数将统一自动调整到与该优先级适配的区间内,其中,多个业务子参数包括但不限于进程调度优先级、磁盘io优先级、gpu计算提交量、网络io优先级、网络带宽占用量等。

需要说明的是,本实施例中通过预先区分配置不同业务的处理优先级,将实时性要求高的云业务的配置处理优先级设置高于非实时性要求低的离线业务,可以优先满足实时性云业务的运行需求,保证了目标云业务的流畅运行,如果存在云游戏业务与离线业务争抢资源,离线业务的资源会快速被剥夺,保障了云游戏业务始终有充分的资源可用。

在本申请实施例中,采用在运行目标云业务的过程中,检测目标服务器集群中处于闲置状态的服务器资源,其中,目标服务器集群是为目标云业务部署的服务器集群,闲置状态为服务器资源的占用量低于目标阈值的状态;在检测到处于闲置状态的目标服务器资源的情况下,获取与离线业务对应的分片任务集,其中,离线业务与目标云业务相关联,分片任务集中包括按照离线业务的业务属性信息,对离线业务对应的离线任务进行切分后得到的多个分片任务;将目标服务器资源分配给分片任务集中待处理的目标分片任务的方式,通过预先区分实时性高的云业务和非实时性离线业务,将运行云业务时存在闲置状态的服务器资源分配给云业务相关的非实时性离线业务,达到了运行实时性要求高的云业务的同时充分利用服务器中的闲置资源目的,从而实现了提高云应用服务器资源利用率的技术效果,进而解决了云应用服务器中存在的资源利用率低的技术问题

作为一种可选的方案,将目标服务器资源分配给分片任务集中待处理的目标分片任务包括:

在目标服务器资源指示服务器集群内存在闲置服务器的情况下,将闲置服务器中的全部资源分配给目标分片任务,以在闲置服务器中处理目标分片任务;

在目标服务器资源指示服务器集群内的第一服务器中存在闲置处理器的情况下,将第一服务器中闲置处理器的资源分配给目标分片任务,以在闲置处理器中处理目标分片任务;

在目标服务器资源指示服务器集群内的第二服务器的目标处理器中存在剩余资源的情况下,将第二服务器中目标处理器的剩余资源分配给目标分片任务,以在目标处理器中处理目标分片任务。

需要说明的是,在本实施例中,上述闲置服务器是指该服务器中的全部处理器均未被占用,是剩余处理资源为全量的服务器;上述第一服务器中的闲置处理器是指该处理器中的处理资源均未被占用,是剩余处理资源为全量的处理器;上述第二服务器的目标处理器是指第二服务器中的部分处理器,这里的目标处理器中的处理资源已被占用一部分,但仍存在剩余资源。

具体可以结合图3所示示例进行说明:

假设如图3所示,在服务器集群内存在闲置服务器300的情况下,则可以将闲置服务器300中的全部资源分配给目标分片任务,以在闲置服务器300中处理目标分片任务。

假设如图3所示,在服务器集群内的第一服务器302中存在闲置处理器(如图3所示存在四个闲置处理器,如闲置处理器302-1至闲置处理器302-4)的情况下,将上述第一服务器302中闲置处理器的资源分配给目标分片任务,以在上述闲置处理器中处理目标分片任务。

假设如图3所示,在服务器集群内的第二服务器304的目标处理器(如图中所示处理器3042)中存在剩余资源(如图3中所示处理器剩余资源p1和处理器剩余资源p2)的情况下,可以将第二服务器304中处理器3042的处理器剩余资源p1分配给目标分片任务,以在目标处理器中处理目标分片任务。

如图3所示目标分片任务可以包括分片任务1至分片任务n的多个分片任务。这里图中所示为示例,这里不做任何限定。

需要说明的是,在本实施例中,在将目标服务器资源分配给分片任务集中待处理的目标分片任务时,可以按照既定分配优先级进行分配。例如,若存在多个闲置服务器(这里的闲置服务器可以但不限于指剩余处理资源为全量的服务器,如全部gpu处理器均未被占用)的情况下,则可以优先向这些闲置服务器分配目标分片任务。若在一个服务器中存在多个闲置处理器(这里的闲置处理器可以但不限于指剩余处理资源为全量的gpu处理器),则将该服务器中的各个闲置gpu处理器中的处理资源分配给目标分片任务。若仅剩一个服务器中的一个gpu处理器的剩余处理资源,则将该一个服务器中的一个gpu处理器中的剩余处理资源分配给目标分片任务。也就是说,在分配过程中,闲置服务器的分配优先级,高于存在闲置处理器的服务器的分配优先级;闲置处理器分配优先级,高于只存在部分剩余处理资源的目标处理器的分配优先级。从而实现对完整的闲置资源优先进行利用,再对部分处理资源进行充分利用,以达到提高处理资源的利用率的效果。

例如,在云游戏业务情况下,当处于用户低峰期,闲置的云服务器较多,除了云游戏正在使用的服务器外,预留部分突然暴涨的调度需要的服务器,然后剩余的闲置服务器组全部分配给离线任务。当云游戏的用户数量变化不明显的阶段,资源的增加和资源的释放差不多等量,这个时候在部分云游戏的服务器上就会出现闲置单个云服务器或者单个gpu。这个时候再把闲置的单个云服务器或者单个gpu分配给离线任务使用。最后,在云游戏占用了绝大多数资源的情况下,根据实际的gpu占用率,将游戏在一个时间窗口内占用的最大资源作为可能消耗的资源。

例如:游戏进程在半小时内曾经占用的最大gpu为40%,则认为在半小时的时间窗口内,游戏需要占用gpu中资源40%,额外预留20%的处理资源给该gpu,则可以把gpu中剩余的40%的处理资源分配给离线任务。

在本申请实施例中,按照闲置服务器、闲置处理器及处理器中剩余处理资源的分配优先级,将处理资源分配离线的目标分片任务,从而实现对闲置设备或剩余处理资源的最大化利用,达到提高了闲置服务器资源的利用率的目的。

作为一种可选的方案,在目标分片任务包括多个分片任务的情况下,如图4所示,步骤s206,将目标服务器资源分配给分片任务集中待处理的目标分片任务,包括:

s402,确定用于处理目标分片任务所需的资源量;

s404,在目标服务器资源的资源量大于或等于目标分片任务所需的资源量的情况下,获取利用目标服务器资源对目标分片任务进行处理后所得到的任务处理结果;

s406,在目标时间段内将任务处理结果发送给目标云业务对应的应用服务器。

在本申请实施例中,若目标服务器资源的资源量足以处理离线分片任务,则可以实时获取利用目标服务器资源对目标分片任务进行及时处理后所得到的任务处理结果,从而实现及时上传分片处理结果,并将处理结果及时发送至目标云业务对应的应用服务器。采用分片处理、分片上传、分片保存的方式,使得离线任务可以随时中断、随时重入,提高了离线业务处理的灵活性。

作为一种可选的方案,如图5所示,在确定用于处理目标分片任务所需的资源量之后,还包括:

在目标服务器资源502的资源量小于目标分片任务所需的资源量的情况下,采用目标服务器资源502处理目标分片任务中的i个分片任务,其中,目标服务器资源502的资源量大于或等于i个分片任务所需的资源量,i为大于等于1,且小于等于n的整数,n为目标分片任务中包含的多个分片任务的数量;暂停处理目标分片任务中的第i+1个分片任务。

例如,如图5所示,假设目标服务器资源502包括服务器资源1至服务器资源m,其中m是正整数。进一步假设利用上述服务器资源来处理n个分片任务,n为整整整数。

在目标服务器资源502的资源量小于目标分片任务所需的资源量的情况下,则可以利用目标服务器资源502先处理i个分片任务。其中,这里的目标服务器资源502的资源量,大于或等于i个分片任务所需的资源量。进一步,对i+1至n的分片任务,则暂停处理。也就是说,在资源不足的情况下,则对未处理的目标分片任务,及时暂停处理,避免不必要的资源浪费。

在本申请实施例中,通过比对目标服务器资源的资源量和目标分片任务所需的资源量,来为目标分片任务精准分配目标服务器资源,提高了云业务服务器的利用率。

作为一种可选的方案,在暂停处理目标分片任务中的第i+1个分片任务之后,还包括:获取目标分片任务被暂停的暂停时长;在暂停时长达到目标时长阈值的情况下,销毁目标分片任务占用的全部进程,并释放目标分片任务占用的目标服务器资源,其中,在销毁目标分片任务占用的全部进程时,目标分片任务中的分片任务将被重新切分,以重新分配资源。

在本申请实施例中,由于离线任务被划分为很小的分片,分片在计算中如果因为资源不足被丢弃也不会浪费太多,并且在资源不足的情况下,离线任务会被暂停;如果长期被暂停,则会销毁进程,重新在闲置服务器资源上从头计算分片,通过精准匹配离线任务以及精准暂停及销毁分片任务,提高了云应用服务器的资源利用率。

作为一种可选的方案,在运行目标云业务的过程中,检测目标服务器集群中处于闲置状态的服务器资源包括:

在目标云业务为云游戏业务的情况下,获取云游戏业务在当前时刻之前的历史时间段内产生的云游戏资源占用记录;

根据云游戏资源占用记录确定出云游戏业务的用户在线特征,其中,用户在线特征用于指示在单位时间段内云游戏业务的资源占用情况;

在用户在线特征指示云游戏业务在单位时间段内的资源占用比例大于第一阈值的情况下,确定未检测到处于闲置状态的目标服务器资源;

在用户在线特征指示云游戏业务在单位时间段内的资源占用比例小于第二阈值的情况下,确定检测到处于闲置状态的目标服务器资源,其中,第一阈值大于第二阈值。

可选地,在本实施例中,上述用户在线特征可以但不限于包括:云游戏用户在线时间段、云游戏用户在线时长、云游戏用户在线阶段对云游戏业务的资源占用情况等用于体现用户活动规律的特征。这里的资源占用情况可以包括但不限于gpu占用率、gpu计算提交量、磁盘占用率、网络带宽占用量等。这里的参数为示例,还可以包括其他参数,本实施例中对此不作任何限定。

需要说明的是,上述第一阈值可以但不限于是云游戏业务运行高峰期的比例阈值,其中,高峰期指在该期间云游戏业务的在线用户量大于预定阈值;上述第二阈值可以但不限于是云游戏业务运行低峰期的比例阈值,其中,低峰期在该期间云游戏业务的在线用户量小于预定阈值。

在本申请实施例中,根据用户在线特征在单位时间段内的资源占用比例和第一阈值、第二阈值的比较结果,可精准确定目标服务器资源是否闲置,有效的提高了云服务器的资源利用率。

作为一种可选的方案,确定检测到处于闲置状态的目标服务器资源包括:

确定出云游戏业务在当前时刻已占用的第一云游戏资源;

根据云游戏资源占用记录确定出为云游戏业务在当前时刻之后的运行过程所预留的第二云游戏资源;

从服务器集群的全部资源中,确定出扣除第一云游戏资源和第二云游戏资源后得到的剩余服务器资源;

从剩余服务器资源中确定出目标服务器资源。

具体结合图6所示进行说明:如图6所示,云游戏业务的用户群体有自己的时间节律,通常每天的第一个用户在线高峰期出现于中午13点左右,第二个用户高峰期出现于晚上22点左右。如表1所示,表1是高峰期云游戏资源分配表,高峰期的占比约为:

表1

如表2所示,表2是低峰期云游戏资源分配表:

表2

需要说明的是,本实施例中的服务器资源可以包括但不限于:已占用的第一云游戏资源、预留的第二云游戏资源以及剩余的服务器资源。在云游戏的用户高峰期,全部的资源都会给云游戏业务使用,为了保障突发性的资源要求,即便在云游戏低峰期的情况下,也预留10%~20%的资源。因此,在白天,云游戏占据主要的服务器资源;在半夜到凌晨,离线任务占用主要的云服务器资源。

在本申请实施例中,根据合理计算剩余服务器资源,精准匹配了分片任务的闲置服务器资源,有效提高了云服务的利用率。

作为一种可选的方案,获取与离线业务对应的分片任务集包括以下至少之一:

1)在与云游戏业务相关联的离线业务为机器学习任务的情况下,根据机器学习任务中包含的运算矩阵来切分离线任务,以得到包括多个分片任务的分片任务集;

2)在与云游戏业务相关联的离线业务为音视频转码任务的情况下,根据音视频转码任务中从音视频数据中识别出的关键帧来切分离线任务,以得到包括多个分片任务的分片任务集。

在本申请实施例中,在与云游戏业务相关联的离线业务为机器学习任务的情况下,根据机器学习任务中包含的运算矩阵来切分离线任务,使用运算矩阵作为切分单元,以得到分片任务集中的多个以运算矩阵为最小单元的机器学习分片任务,在与云游戏业务相关联的离线业务为音视频转码任务的情况下,根据音视频转码任务中从音视频数据中识别出的关键帧来切分离线任务,使用根据音视频数据中的识别出的关键帧以及与其关联的差异帧组成图片组作为切分单元,以得到分片任务集中的多个以图片组为最小单元的音视频转码分片任务。

在本实施例中,可以但不限于使用容器化以及容器编排的技术体系来方便地在服务器上创建任务并隔离资源,例如linux平台上的docker,k8s等。具体的,机器学习训练模块一般使用安装了tensorflow2.0以及python3.6的容器;而音视频转码一般使用ffmpeg的容器,并且可以使用gpu来进行转码。并且本实施例采用运算矩阵作为机器学习任务的最小单位,以及采用音视频转码任务中从音视频数据中识别出的关键帧来进行离线任务切分,其中根据音视频数据中的识别出的关键帧以及与其关联的差异帧组成图片组作为最小单位进行音视频转码业务的分片集划分。采用图片组或者运算矩阵作为最小单位来对离线任务切分,与现有技术相比,颗粒划分度更加精细,更有利于随时中断和重入,不影响离线业务。

假设仍以云游戏业务为例,目标服务器集群以云游戏gpu服务器群集为例,具体结合图7所示分配系统的架构来进行说明,该系统可以包括:云游戏gpu服务器群集702、边缘接入点704、云游戏调度模块706、离线任务池708、音视频数据存储库710。通过该系统中的上述功能模块完成以下分配过程:

云游戏gpu服务器群集702中的云游戏gpu服务器,是安装有很多个高性能gpu的高性能服务器,用于提供云游戏的运行环境;

边缘接入点704,被部署在靠近用户(如图所示游戏玩家)的网络节点上,一边连接云游戏gpu服务器,一边连接着用户;通过边缘接入点704中的服务器程序,为云游戏提供高吞吐量低延迟且抗网络抖动的视频下行能力;

云游戏调度模块706,负责统计云游戏环境中的gpu、cpu、带宽等资源,为用户所打开的游戏分配需要的资源。

离线任务池708,存储有各个待处理的离线任务,并负责记录各种离线任务的种类,相关运行配置,优先级等信息。然后在非繁忙时段提交给gpu服务器群集处理。

其中,该离线任务可以包括但不限于:

在云游戏业务中使用到机器学习网络模型的情况下,这里的机器学习网络模型对应的机器学习训练任务7082,该机器学习训练任务可以通过训练任务管理模块提交到上述离线任务池中。其中,上述用于参与训练任务的训练数据集700可以通过云游戏服务器进行数据交换(将服务器训练后的数据存储至训练数据集中,并从该训练数据集中读取数据进行训练),这里的训练数据集存储在训练数据集存储系统,该存储系统负责提供高吞吐量高存储量的机器学习训练数据的下载和上传。

在云游戏业务中使用到音视频数据的情况下,这里的音视频数据对应的音视频转码任务7084可以通过转码管理模块把音视频转码任务的配置提交到离线任务池。其中,音视频数据存储库710,负责音视频原始文件的下载,和转码后的文件上传。可供云游戏gpu服务器集群中的服务器拉取文件或上传结果。

需要说明的是,上述各个模块可以但不限于是7*24小时提供服务的,而机器学习训练任务和音视频转码任务会见缝插针式的在每个gpu服务器有一定量空闲的时候,就有离线任务池的对应模块来在gpu服务器上开启离线任务,实现通过gpu来进行机器学习训练或者音视频转码。

此外,在本实施例中在利用了基于容器的服务器虚拟化技术之外,还包括以下特点:

在本实施例中的对操作内核参数进行了调校。具体就是区分云游戏应用和离线应用。离线应用在进程调度优先级、磁盘io优先级、gpu计算提交量、网络io优先级、网络带宽占用量等方面的数据都很低。如果存在云游戏应用于离线应用争抢资源,离线应用的资源会快速被剥夺,保障云游戏应用始终有充分的资源可用。因而,在本实施例中,会通过配置操作内核参数的数值,以区分云游戏应用和离线应用,从而保证云游戏应用可以优先使用服务器中的处理资源。

在本实施例中的离线任务都可以但不限于随时中断,随时重入。这里的离线任务可以但不限于被划分为很小的分片,分片在计算中如果因为资源不足被丢弃也不会浪费太多;离线任务在计算完成每个分片后,会立即上传到对应的服务器上保存结果。例如,对于音视频转码,这里的分片任务可以是对一个视频片段(如一组视频帧(groupofpicture,gop))进行转码,对于机器学习的训练任务,这里的分片任务可以是对神经网络的部分网络结构数据进行训练。

需要说明的是,在服务器的处理资源不足的情况下,离线任务会被暂停;如果长期被暂停,则会销毁进程,重新在有空余资源的服务器上从头计算分片。而在云游戏的用户高峰期,全部的服务器的处理资源都会优先给云游戏使用。

此外,在本实施例中,对于服务器的处理资源的分配粒度,可以但不限于按照以下分配优先级来处理:先按照整服务器划分,然后再按照整gpu划分,最后在云游戏未能占满的gpu上划分部分资源给离线任务。

例如,在云游戏的用户低峰期,闲置的服务器较多,除了云游戏正在使用的服务器外,预留部分突然暴涨的调度需要的服务器,然后,剩余的闲置服务器可以整台的分给离线任务。当云游戏的用户数量变化不明显的阶段,在部分云游戏的服务器上就会出现闲置的gpu。这里就可以把闲置的gpu分给离线任务使用。在云游戏占用了绝大多数资源的情况下,还可以根据实际的gpu占用率,将在一个时间窗口内占用的最大资源为可能消耗的资源进行资源分配。

上述结合图7所示过程为示例,本实施例中对此不作限定。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

根据本申请实施例的另一个方面,还提供了一种用于实施上述服务器资源分配方法的服务器资源分配装置。如图8所示,该装置包括:

检测单元802,用于在运行目标云业务的过程中,检测目标服务器集群中处于闲置状态的服务器资源,其中,目标服务器集群是为目标云业务部署的服务器集群,闲置状态为服务器资源的占用量低于目标阈值的状态;

获取单元804,用于在检测到处于闲置状态的目标服务器资源的情况下,获取与离线业务对应的分片任务集,其中,离线业务与目标云业务相关联,分片任务集中包括按照离线业务的业务属性信息,对离线业务对应的离线任务进行切分后得到的多个分片任务;

分配单元806,用于将目标服务器资源分配给分片任务集中待处理的目标分片任务。

需要说明的是,这里的服务器资源分配装置的实施例可以参考上述服务器资源分配方法的实施例,这里不再赘述。

作为一种可选的方案,分配单元包括:

第一分配模块,用于在目标服务器资源指示服务器集群内存在闲置服务器的情况下,将闲置服务器中的全部资源分配给目标分片任务,以在闲置服务器中处理目标分片任务;

第二分配模块,用于在目标服务器资源指示服务器集群内的第一服务器中存在闲置处理器的情况下,将第一服务器中闲置处理器的资源分配给目标分片任务,以在闲置处理器中处理目标分片任务;

第三分配模块,用于在目标服务器资源指示服务器集群内的第二服务器的目标处理器中存在剩余资源的情况下,将第二服务器中目标处理器的剩余资源分配给目标分片任务,以在目标处理器中处理目标分片任务。

需要说明的是,这里的服务器资源分配装置的实施例可以参考上述服务器资源分配方法的实施例,这里不再赘述。

作为一种可选的方案,在目标分片任务包括多个分片任务的情况下,分配单元包括:

第一确定模块,用于确定用于处理目标分片任务所需的资源量;

第一获取模块,用于在目标服务器资源的资源量大于或等于目标分片任务所需的资源量的情况下,获取利用目标服务器资源对目标分片任务进行处理后所得到的任务处理结果;

发送模块,用于在目标时间段内将任务处理结果发送给目标云业务对应的应用服务器。

需要说明的是,这里的服务器资源分配装置的实施例可以参考上述服务器资源分配方法的实施例,这里不再赘述。

作为一种可选的方案,还包括:

第一处理模块,用于在确定用于处理目标分片任务所需的资源量之后,在目标服务器资源的资源量小于目标分片任务所需的资源量的情况下,采用目标服务器资源处理目标分片任务中的i个分片任务,其中,目标服务器资源的资源量大于或等于i个分片任务所需的资源量,i为大于等于1,且小于等于n的整数,n为目标分片任务中包含的多个分片任务的数量;

第二处理模块,用于暂停处理目标分片任务中的第i+1个分片任务。

需要说明的是,这里的服务器资源分配装置的实施例可以参考上述服务器资源分配方法的实施例,这里不再赘述。

作为一种可选的方案,还包括:

第二获取模块,用于在暂停处理目标分片任务中的第i+1个分片任务之后,获取目标分片任务被暂停的暂停时长;

第三处理模块,用于在暂停时长达到目标时长阈值的情况下,销毁目标分片任务占用的全部进程,并释放目标分片任务占用的目标服务器资源,其中,在销毁目标分片任务占用的全部进程时,目标分片任务中的分片任务将被重新切分,以重新分配资源。

需要说明的是,这里的服务器资源分配装置的实施例可以参考上述服务器资源分配方法的实施例,这里不再赘述。

作为一种可选的方案,检测单元包括:

第三获取模块,用于在目标云业务为云游戏业务的情况下,获取云游戏业务在当前时刻之前的历史时间段内产生的云游戏资源占用记录;

第二确定模块,用于根据云游戏资源占用记录确定出云游戏业务的用户在线特征,其中,用户在线特征用于指示在单位时间段内云游戏业务的资源占用情况;

第三确定模块,用于在用户在线特征指示云游戏业务在单位时间段内的资源占用比例大于第一阈值的情况下,确定未检测到处于闲置状态的目标服务器资源;

第四确定模块,用于在用户在线特征指示云游戏业务在单位时间段内的资源占用比例小于第二阈值的情况下,确定检测到处于闲置状态的目标服务器资源,其中,第一阈值大于第二阈值。

需要说明的是,这里的服务器资源分配装置的实施例可以参考上述服务器资源分配方法的实施例,这里不再赘述。

作为一种可选的方案,第四确定模包括:

第一确定子模块,用于确定出云游戏业务在当前时刻已占用的第一云游戏资源;

第二确定子模块,用于根据云游戏资源占用记录确定出为云游戏业务在当前时刻之后的运行过程所预留的第二云游戏资源;

第三确定子模块,用于从服务器集群的全部资源中,确定出扣除第一云游戏资源和第二云游戏资源后得到的剩余服务器资源;

第四确定子模块,用于从剩余服务器资源中确定出目标服务器资源。

需要说明的是,这里的服务器资源分配装置的实施例可以参考上述服务器资源分配方法的实施例,这里不再赘述。

作为一种可选的方案,获取单元包括以下至少之一:

第一切分模块,用于在与云游戏业务相关联的离线业务为机器学习任务的情况下,根据机器学习任务中包含的运算矩阵来切分离线任务,以得到包括多个分片任务的分片任务集;

第二切分模块,用于在与云游戏业务相关联的离线业务为音视频转码任务的情况下,根据音视频转码任务中从音视频数据中识别出的关键帧来切分离线任务,以得到包括多个分片任务的分片任务集。

需要说明的是,这里的服务器资源分配装置的实施例可以参考上述服务器资源分配方法的实施例,这里不再赘述。

作为一种可选的方案,还包括:

第一配置单元,用于在运行目标云业务之前,为目标云业务的操作内核参数配置第一分配优先级,其中,操作内核参数中包括多个业务子参数;

第二配置单元,用于为离线业务的操作内核参数配置第二分配优先级,其中,第一分配优先级高于第二分配优先级。

需要说明的是,这里的服务器资源分配装置的实施例可以参考上述服务器资源分配方法的实施例,这里不再赘述。

根据本申请实施例的又一个方面,还提供了一种用于实施上述服务器资源分配方法的电子设备,该电子设备可以是图9所示的终端设备或所示服务器。本实施例以该电子设备为服务器为例来说明。如图9所示,该电子设备包括存储器902和处理器904,该存储器902中存储有计算机程序,该处理器904被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,在运行目标云业务的过程中,检测目标服务器集群中处于闲置状态的服务器资源,其中,目标服务器集群是为目标云业务部署的服务器集群,闲置状态为服务器资源的占用量低于目标阈值的状态;

s2,在检测到处于闲置状态的目标服务器资源的情况下,获取与离线业务对应的分片任务集,其中,离线业务与目标云业务相关联,分片任务集中包括按照离线业务的业务属性信息,对离线业务对应的离线任务进行切分后得到的多个分片任务;

s3,将目标服务器资源分配给分片任务集中待处理的目标分片任务。

可选地,本领域普通技术人员可以理解,图9所示的结构仅为示意,电子装置电子设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图9其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图9中所示更多或者更少的组件(如网络接口等),或者具有与图9所示不同的配置。

其中,存储器902可用于存储软件程序以及模块,如本申请实施例中的服务器资源分配方法和装置对应的程序指令/模块,处理器904通过运行存储在存储器902内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的服务器资源分配方法。存储器902可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器902可进一步包括相对于处理器904远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器902具体可以但不限于用于存储物品的样本特征与目标虚拟资源账号等信息。作为一种示例,如图9所示,上述存储器902中可以但不限于包括上述服务器资源分配装置中的检测单元802、获取单元804及分配单元806。此外,还可以包括但不限于上述服务器资源分配装置中的其他模块单元,本示例中不再赘述。

可选地,上述的传输装置906用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置906包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置906为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

此外,上述电子设备还包括:显示器908,用于显示上述待处理的订单信息;和连接总线910,用于连接上述电子设备中的各个模块部件。

在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peertopeer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述服务器资源分配方面各种可选实现方式中提供的服务器资源分配方法,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,在运行目标云业务的过程中,检测目标服务器集群中处于闲置状态的服务器资源,其中,目标服务器集群是为目标云业务部署的服务器集群,闲置状态为服务器资源的占用量低于目标阈值的状态;

s2,在检测到处于闲置状态的目标服务器资源的情况下,获取与离线业务对应的分片任务集,其中,离线业务与目标云业务相关联,分片任务集中包括按照离线业务的业务属性信息,对离线业务对应的离线任务进行切分后得到的多个分片任务;

s3,将目标服务器资源分配给分片任务集中待处理的目标分片任务。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1