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

文档序号:32483651发布日期:2022-12-10 00:07阅读:49来源:国知局
一种服务资源的分配方法、装置、电子设备及存储介质与流程

1.本技术涉及通信技术领域,尤其涉及一种服务资源的分配方法、装置、电子设备及存储介质。


背景技术:

2.随着云计算及虚拟化技术的长期发展,各gpu厂商都有相对成熟的gpu虚拟化技术,例如nvidia grid vgpu与intel的gvt-g以及sriov,gpu passthrough等可以从分片的角度实现一虚多,为云环境中的虚拟机以设备的形式提供gpu资源。
3.安卓操作系统受限于接口类型,无法直接调用服务器使用的gpu,为此云手机方案中会使用一个软件实现层提供gpu资源。一般会采用标准的x窗口系统实现(原用于为图形用户程序提供统一接口层),但这种方案无法满足云手机场景中gpu资源的服务质量保障。并且现有的x协议实现无法并行执行多任务,不能充分利用服务器资源。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本技术提供了一种服务资源的分配方法、装置、电子设备及存储介质。
5.根据本技术实施例的一个方面,提供了一种服务资源的分配方法,应用于服务器,所述方法包括:
6.接收客户端发送的服务处理请求,其中,所述服务处理请求包括至少一个待处理服务;
7.获取所述待处理服务对应的目标优先级,并按照所述目标优先级将所述待处理服务依次插入主队列;
8.在根据所述目标优先级确定所述待处理服务满足预设处理条件的情况下,查询所述服务器中各个工作进程对应的工作状态,并将所述工作状态为空闲状态的工作进程确定为所述目标工作进程;
9.基于所述目标工作进程调用相应的服务资源处理所述待处理服务,并将得到的处理结果反馈至所述客户端,其中,所述服务资源为图形处理器对应的资源。
10.进一步的,所述获取待处理服务对应的目标优先级,包括:
11.获取所述待处理服务的原始优先级以及服务类型;
12.查询当前各个图形处理器对应的负载指标;
13.基于所述服务类型、原始优先级以及所述负载指标计算所述待处理服务的目标优先级。
14.进一步的,在按照所述目标优先级将所述待处理服务依次插入主队列之后,所述方法还包括:
15.检测所述主队列中已插入的至少一个历史服务,并查询各个历史服务对应的等待时长;
16.基于所述等待时长确定所述主队列中是否存在超时服务,其中,所述超时服务为所述等待时长超过预设时长的服务;
17.在所述主队列中不存在超时服务的情况下,按照所述主队列中各个服务对应的优先级执行服务资源分配操作。
18.进一步的,在所述主队列中存在超时服务的情况下,所述方法还包括:
19.将所述超时服务插入超时队列,其中,所述超时队列对应的优先级高于所述主队列;
20.按照所述超时队列中各个超时服务对应的优先级执行服务资源分配操作。
21.进一步的,所述将所述超时服务插入超时队列,包括:
22.获取所述超时服务对应的服务信息;
23.在所述服务信息中携带所述超时服务对应指纹的情况下,将所述超时服务插入超时队列。
24.进一步的,所述按照所述主队列中各个服务对应的优先级执行服务资源分配操作,包括:
25.对比所述待处理服务对应的目标优先级以及所述历史服务对应的优先级,得到对比结果;
26.在所述对比结果用于指示目标优先级高于所述优先级的情况下,确定所述目标优先级满足预设处理条件,并对所述待处理服务执行服务资源分配操作。
27.进一步的,所述方法还包括:
28.在所述对比结果用于指示目标优先级低于所述优先级的情况下,确定所述目标优先级不满足预设处理条件,并对所述主队列中优先级最高的服务执行服务资源分配操作。
29.根据本技术实施例的再一个方面,还提供了一种一种服务资源的分配装置,包括:
30.接收模块,用于接收客户端发送的服务处理请求,其中,所述服务处理请求包括至少一个待处理服务;
31.获取模块,用于获取所述待处理服务对应的目标优先级,并按照所述目标优先级将所述待处理服务依次插入主队列;
32.查询模块,用于在根据所述目标优先级确定所述待处理服务满足预设处理条件的情况下,查询所述服务器中各个工作进程对应的工作状态,并将所述工作状态为空闲状态的工作进程确定为所述目标工作进程;
33.处理模块,用于基于所述目标工作进程调用相应的服务资源处理所述待处理服务,并将得到的处理结果反馈至所述客户端,其中,所述服务资源为图形处理器对应的资源。
34.根据本技术实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
35.根据本技术实施例的另一方面,还提供了一种电子装置,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述方法中的步骤。
36.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行
时,使得计算机执行上述方法中的步骤。
37.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术实施例提供的方法,在服务器接收到至少一个待处理服务后,会确定待处理服务对应的目标优先级,然后通过目标优先级确定待处理服务示范满足处理条件。如果待处理服务满足处理条件,则为待处理服务分配空闲状态的工作进程,通过工作进程调用相应的图形处理器对待处理服务进行处理。以此充分利用了服务器中的服务资源,实现多个待处理服务进行并发处理,且提高了服务处理效率。
附图说明
38.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
39.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
40.图1为本技术实施例提供的一种服务资源的分配方法的流程图;
41.图2为本技术实施例提供的一种服务资源的分配装置的框图;
42.图3为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
43.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
44.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个类似的实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
45.本技术实施例提供了一种服务资源的分配方法、装置、电子设备及存储介质。本发明实施例所提供的方法可以应用于任意需要的电子设备,例如,可以为服务器、终端等电子设备,在此不做具体限定,为描述方便,后续简称为电子设备。
46.根据本技术实施例的一方面,提供了一种服务资源的分配方法的方法实施例。图1为本技术实施例提供的一种服务资源的分配方法的流程图,如图1所示,该方法包括:
47.步骤s11,接收客户端发送的服务处理请求,其中,服务处理请求包括至少一个待处理服务。
48.本技术实施例提供的方法应用于服务器,服务器用于接收客户端发送的服务处理
请求,客户端可以是云手机。服务处理请求可以是图像绘制请求、图像打码等等,服务处理请求中携带相应的待处理服务。
49.步骤s12,获取待处理服务对应的目标优先级,并按照目标优先级将待处理服务依次插入主队列。
50.在本技术实施例中,获取待处理服务对应的目标优先级,包括以下步骤a1-a3:
51.步骤a1,获取待处理服务的原始优先级以及服务类型。
52.步骤a2,查询当前各个图形处理器对应的负载指标。
53.步骤a3,基于服务类型、原始优先级以及负载指标计算待处理服务的目标优先级。
54.在本技术实施例中,服务器可以从服务处理请求中获取待处理服务的相关信息,相关信息可以是客户端预先添加在服务处理请求中的。相关信息中包括:待处理服务对应的原始优先级以及服务类型。由于服务器中各个图形处理器对应的负载会动态发生变化。因此服务器在获取到待处理服务后,会重新确定待处理服务的优先级。
55.具体的,服务器首先查询内部各个图形处理器对应的负载指标。然后基于服务类型、原始优先级以及负载指标,共同计算出待处理服务的目标优先级。其中,服务类型可以是重要类型、非重要类型。原始优先级可以是客户端依据待处理服务的创建时间设置的,或者是依据待处理服务的服务类型设置的。计算过程可以是:(1)获取服务类型与分值之间的第一对应关系,基于第一对应关系确定当前的服务类型对应的第一分值。(2)确定原始优先级所处的优先级范围,并获取优先级范围与分值之间的第二对应关系,基于第二对应关系,确定当前的优先级范围对应的第二分值。(3)获取负载指标与分值之间的第三对应关系,基于第三对应关系确定当前的负载指标对应的第三分值。最终通过第一分值、第二分值以及第三分值求和,得到目标优先级。
56.步骤s13,在根据目标优先级确定待处理服务满足预设处理条件的情况下,查询服务器中各个工作进程对应的工作状态,并将工作状态为空闲状态的工作进程确定为目标工作进程。
57.在本技术实施例中,对比目标优先级与预设优先级,如果目标优先级大于或等于预设优先级,则确定待处理服务当前满足预设处理条件。如果目标优先级小于预设优先级,则确定待处理服务当前不满足预设处理条件。
58.在本技术实施例中,在待处理服务当前满足预设处理条件的情况下,查询服务器中各个工作进程对应的工作状态,确定是否存在空闲状态的工作进程,如果存在空闲状态的工作进程,则将工作状态为空闲状态的工作进程确定为目标工作进程。
59.步骤s14,基于目标工作进程调用相应的服务资源处理待处理服务,并将得到的处理结果反馈至客户端,其中,服务资源为图形处理器对应的资源。
60.在本技术实施例中,服务器内部会基于目标工作进程调用相应的服务资源处理待处理服务。其中,服务资源可以是图形处理器的资源。具体的,目标工作进程会查询服务器中各个图形处理器对应的状态,例如通过图形处理器对应的服务资源是否被占用,确定图形处理器对应的状态。
61.如果当前存在闲置状态的图形处理器,目标工作进程会建立自身与该图形处理器之间的绑定关系。然后目标工作进程会将待处理服务发送至图形处理器,由图形处理器对待处理服务进行处理,并将得到处理结果反馈给目标工作进程。目标工作进程在得到处理
结果后,将得到的处理结果反馈至客户端。
62.在本技术实施例中,在按照目标优先级将待处理服务依次插入主队列之后,方法还包括以下步骤b1-b3:
63.步骤b1,检测主队列中已插入的至少一个历史服务,并查询各个历史服务对应的等待时长。
64.步骤b2,基于等待时长确定主队列中是否存在超时服务,其中,超时服务为等待时长超过预设时长的服务。
65.步骤b3,在主队列中不存在超时服务的情况下,按照主队列中各个服务对应的优先级执行服务资源分配操作。
66.在本技术实施例中,为了保证服务处理效率,服务器还会周期性检测主队列中已插入的至少一个历史服务,并确定每个历史服务对应的等待时长。然后对比等待时长与预设时长,如果等待时长超过预设时长,则确定该历史服务为超时服务。如果等待时长未超过预设时长,则确定该历史服务为正常服务。
67.在本技术实施例中,当主队列中不存在超时服务的情况下,按照主队列中各个服务对应的优先级执行服务资源分配操作。具体的,服务器可以按照优先级的顺序为当前主队列中的各个服务分配工作进程,再通过工作进程调度相应的图形处理器处理服务。
68.在本技术实施例中,在主队列中存在超时服务的情况下,方法还包括以下步骤c1-c2:
69.步骤c1,将超时服务插入超时队列,其中,超时队列对应的优先级高于主队列。
70.步骤c2,按照超时队列中各个超时服务对应的优先级执行服务资源分配操作。
71.在本技术实施例中,当主队列中存在超时服务的情况下,服务器会将超时服务插入超时队列。由于超时队列的队列优先级高于主队列的优先级,因此服务器为主队列中的服务分配资源之前,优先对超时服务队列中的超时服务进行服务资源分配。
72.需要说明的是,本技术实施例在主队列插入待处理服务的同时,通过检测主队列中是否存在超时服务,如果存在超时服务,则将超时服务从主队列中剔除,并将超时服务插入超时队列。优先处理超时队列中的超时服务,不会出现长时间的等待,实现了对超时服务的优先处理。且即使在超时服务的优先级靠后时,优先处理超时队列中的服务,避免出现长时间未处理的情况。解决了超时服务因优先级落后导致长时间未处理的问题。
73.在本技术实施例中,将超时服务插入超时队列,包括以下步骤d1-d2:
74.步骤d1,获取超时服务对应的服务信息。
75.步骤d2,在服务信息中携带超时服务对应指纹的情况下,将超时服务插入超时队列。
76.在本技术实施例中,服务器在将超时服务插入超时队列时,会先获取超时服务对应的服务信息。查询服务信息中是否存在超时服务对应的指纹。需要说明的是,指纹是超时队列对应的客户端在连接服务器时获取的。具体的,客户端首先向服务器发送连接请求,连接请求中携带客户端的身份信息。服务器接收到客户端的身份信息后,会基于该身份信息对客户端进行认证,如果认证通过的情况下,则服务器会向客户端下发指纹。后续客户端在向服务器发送服务处理请求时,会将指纹携带于服务信息,并将服务信息以及待处理服务携带于服务处理请求。
77.需要说明的是,本技术实施例通过向客户端下发指纹,便于后续服务器在处理客户端的服务时进行识别,当服务信息中不存在指纹的情况下,服务器则认为该服务是未经认证的客户端发送的。以此避免服务器在无效的服务上浪费资源。
78.在本技术实施例中,按照主队列中各个服务对应的优先级执行服务资源分配操作,包括:对比待处理服务对应的目标优先级以及历史服务对应的优先级,得到对比结果;在对比结果用于指示目标优先级高于优先级的情况下,确定目标优先级满足预设处理条件,并对待处理服务执行服务资源分配操作。
79.在本技术实施例中,当服务器中的主队列不存在超时服务的情况下,服务器会对主队列执行服务资源分配操作。具体的分配过程:首先对比待处理服务与各个历史服务之间的优先级大小。如果待处理服务的优先级高于历史服务的优先级,则优先为待处理服务分配空闲状态的工作进程,通过该工作进程调用相应的图形处理器处理待处理服务。
80.在本技术实施例中,方法还包括:在对比结果用于指示目标优先级低于优先级的情况下,确定目标优先级不满足预设处理条件,并对主队列中优先级最高的服务执行服务资源分配操作。
81.本技术实施例提供的方法,在服务器接收到至少一个待处理服务后,会确定待处理服务对应的目标优先级,然后通过目标优先级确定待处理服务示范满足处理条件。如果待处理服务满足处理条件,则为待处理服务分配空闲状态的工作进程,通过工作进程调用相应的图形处理器对待处理服务进行处理。以此充分利用了服务器中的服务资源,实现多个待处理服务进行并发处理,且提高了服务处理效率。
82.图2为本技术实施例提供的一种服务资源的分配装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图2所示,该装置包括:
83.接收模块21,用于接收客户端发送的服务处理请求,其中,服务处理请求包括至少一个待处理服务。
84.获取模块22,用于获取待处理服务对应的目标优先级,并按照目标优先级将待处理服务依次插入主队列。
85.查询模块23,用于在根据目标优先级确定待处理服务满足预设处理条件的情况下,查询服务器中各个工作进程对应的工作状态,并将工作状态为空闲状态的工作进程确定为目标工作进程。
86.处理模块24,用于基于目标工作进程调用相应的服务资源处理待处理服务,并将得到的处理结果反馈至客户端,其中,服务资源为图形处理器对应的资源。
87.在本技术实施例中,获取模块22,用于获取待处理服务的原始优先级以及服务类型;查询当前各个图形处理器对应的负载指标;基于服务类型、原始优先级以及负载指标计算待处理服务的目标优先级。
88.在本技术实施例中,服务资源的分配装置还包括:检测模块,用于检测主队列中已插入的至少一个历史服务,并查询各个历史服务对应的等待时长;基于等待时长确定主队列中是否存在超时服务,其中,超时服务为等待时长超过预设时长的服务;在主队列中不存在超时服务的情况下,按照主队列中各个服务对应的优先级执行服务资源分配操作。
89.在本技术实施例中,服务资源的分配装置还包括:调度模块,用于将超时服务插入超时队列,其中,超时队列对应的优先级高于主队列;按照超时队列中各个超时服务对应的
优先级执行服务资源分配操作。
90.在本技术实施例中,调度模块,用于获取超时服务对应的服务信息;在服务信息中携带超时服务对应指纹的情况下,将超时服务插入超时队列。
91.在本技术实施例中,处理模块24,用于对比待处理服务对应的目标优先级以及历史服务对应的优先级,得到对比结果;在对比结果用于指示目标优先级高于优先级的情况下,确定目标优先级满足预设处理条件,并对待处理服务执行服务资源分配操作。
92.在本技术实施例中,处理模块24,还用于在对比结果用于指示目标优先级低于优先级的情况下,确定目标优先级不满足预设处理条件,并对主队列中优先级最高的服务执行服务资源分配操作。
93.本技术实施例还提供一种电子设备,如图3所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
94.存储器1503,用于存放计算机程序;
95.处理器1501,用于执行存储器1503上所存放的计算机程序时,实现上述实施例的步骤。
96.上述终端提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
97.通信接口用于上述终端与其他设备之间的通信。
98.存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
99.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
100.在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的服务资源的分配方法。
101.在本技术提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的服务资源的分配方法。
102.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机
指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk)等。
103.以上所述仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。
104.以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1