线程处理方法、调度组件、监测组件、服务器和存储介质与流程

文档序号:32987485发布日期:2023-01-17 22:57阅读:28来源:国知局
线程处理方法、调度组件、监测组件、服务器和存储介质与流程

1.本发明涉及通信技术领域,尤其涉及一种线程处理方法、调度组件、监测组件、服务器和存储介质。


背景技术:

2.随着网络功能虚拟化(network function virtualization,简称nfv)的发展,越来越多的功能实例可以通过部署在服务器中的软件程序来实现其对应的功能,从而可以换降低硬件成本,实现灵活部署。更具体来说,服务器中的工作线程利用服务器的计算资源执行功能实例生成的各种任务,以实现功能实例对应的功能。其中,功能实例可以是以软件程序形式部署在服务器中的接入网中的基站、核心网的各种功能网元,或者与功能实例所提供的功能相关的其他第三方应用程序等等。
3.但现有技术中,由于服务器计算资源的隔离分配会导致计算资源利用率大大降低,因此,往往需要对服务器的计算资源进行调度以提高计算资源的利用率,并且资源调度的频率也会直接计算资源利用率的调度效果。
4.基于上述描述,如何合理地进行计算资源的调度以提高计算资源利用率就成为一个亟待解决的问题。


技术实现要素:

5.有鉴于此,本发明实施例提供一种线程处理方法、调度组件、监测组件、服务器和存储介质,用以合理地进行计算资源调度以提高计算资源利用率。
6.第一方面,本发明实施例提供一种线程处理方法,应用于服务器中的调度组件,包括:确定所述服务器中工作线程处于阻塞状态的持续时间,在执行完所述服务器中功能实例产生的上一个任务之后且在获取所述功能实例产生的下一个任务之前,所述工作线程处于所述阻塞状态;根据所述工作线程处于所述阻塞状态的持续时间,确定所述工作线程的工作负载指标参数;根据所述工作负载指标参数生成资源调度策略,以由所述服务器的内核根据所述调度策略重新分配所述服务器的计算资源。
7.第二方面,本发明实施例提供一种线程处理方法,应用于运行有5g专网的云服务器,包括:确定所述云服务器中工作线程处于阻塞状态的持续时间,在执行完所述服务器中功能实例产生的上一个任务之后且在获取所述功能实例产生的下一个任务之前,所述工作线程处于所述阻塞状态;根据所述工作线程处于所述阻塞状态的持续时间,确定所述工作线程的工作负载指标参数,所述功能实例包括所述5g专网中的功能网元;
根据所述工作负载指标参数生成资源调度策略,以由所述服务器的内核根据所述调度策略重新分配所述服务器的计算资源。
8.第三方面,本发明实施例提供一种线程处理方法,应用于服务器中的监测组件,包括:在到达所述监测组件的工作周期时,确定所述服务器中工作线程处于阻塞状态的持续时间,在执行完所述服务器中功能实例产生的上一个任务之后且在获取所述功能实例产生的下一个任务之前,所述工作线程处于所述阻塞状态;根据所述工作线程处于所述阻塞状态的持续时间,确定所述工作线程的工作负载指标参数,所述工作周期的长度的数量级为微秒。
9.第四方面,本发明实施例提供一种调度组件,运行于服务器中,包括:时长监测子组件、指标监测子组件和策略生成子组件;所述时长监测子组件,用于确定所述服务器中工作线程处于阻塞状态的持续时间,在执行完所述服务器中功能实例产生的上一个任务之后且在获取所述功能实例产生的下一个任务之前,所述工作线程处于所述阻塞状态;所述指标监测子组件,用于根据所述工作线程处于阻塞状态的持续时间,确定所述工作线程的工作负载指标参数;所述策略生成子组件,用于根据所述工作负载指标参数生成资源调度策略,以由所述服务器的内核根据所述调度策略重新分配所述服务器的计算资源。
10.第五方面,本发明实施例提供一种监测组件,运行于服务器中,包括:时段监测子组件和指标监测子组件;所述时段监测子组件,用于在到达所述监测组件的工作周期时,确定所述服务器中工作线程处于阻塞状态的持续时间,在执行完所述服务器中功能实例产生的上一个任务之后且在获取所述功能实例产生的下一个任务之前,所述工作线程处于所述阻塞状态;所述指标监测子组件,用于根据所述工作线程处于阻塞状态的持续时间,确定所述工作线程的工作负载指标参数,所述工作周期的长度的数量级为微秒。
11.第六方面,本发明实施例提供一种服务器,包括:调度组件、内核、功能实例以及计算资源;所述调度组件用于,确定所述服务器中工作线程处于阻塞状态的持续时间,在执行完所述服务器中功能实例产生的上一个任务之后且在获取所述功能实例产生的下一个任务之前,所述工作线程处于所述阻塞状态;根据所述工作线程处于所述阻塞状态的持续时间,确定所述工作线程的工作负载指标参数;根据所述工作负载指标参数生成资源调度策略;所述内核,用于根据所述资源调度策略重新分配所述服务器的计算资源。
12.第七方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如第一方面至所述第三方面中任一所述的线程处理方法。
13.服务器中部署有功能实例,该功能实例生成的任务可以被缓存到任务队列中。服务器中创建的工作线程可以从任务队列中获取任务并执行该任务。当工作线程执行完功能实例生成的上一个任务且还未获取到下一个任务之前,工作线程处于阻塞状态。容易理解
的,工作线程的执行任务的过程中可以多次处于阻塞状态,每次阻塞状态会维持一定时长。
14.则利用本发明实施例提供的线程处理方法,服务器中的调度组件可以确定工作线程每次处于阻塞状态的持续时间,并根据此持续时间确定工作线程的工作负载指标参数,并进一步根据工作负载指标参数生成资源调度策略。此资源调度策略可以由服务器的内核执行以重新分配服务器的计算资源。
15.可见,上述过程中,工作线程每执行完一个任务调度组件都可以计算出该工作线程的工作负载指标参数并进一步进行服务器计算资源的调度,将进行计算资源调度的周期缩短到与任务执行时长相同的数量级,使得计算资源能够及时调度,从而提高服务器计算资源的利用率。并且资源调度是在两个任务之间进行的,因此也不会影响工作线程正常执行任务。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1为本发明实施例提供的一种任务处理方法的流程图;图2为本发明实施例提供的工作线程的工作流程的示意图;图3为本发明实施例提供的另一种线程处理方法的流程图;图4为本发明实施例提供的又一种线程处理方法的流程图;图5a为本发明实施例提供的一种确定工作线程的工作负载指标参数的流程图;图5b为本发明实施例提供的另一种确定工作线程的工作负载指标参数的流程图;图5c为本发明实施例提供的又一种确定工作线程的工作负载指标参数的流程图;图6为本发明实施例提供的又一种线程处理方法的流程图;图7为本发明实施例提供的一种调度组件的结构示意图;图8为本发明实施例提供的一种监测组件的结构示意图;图9为本发明实施例提供的一种服务器的结构示意图;图10为本发明实施例提供的另一种服务器的结构示意图;图11为本发明实施例提供的线程处理方法、调度组件应用在5g专网中的示意图;图12为本发明实施例提供的一种电子设备的结构示意图;图13为本发明实施例提供的另一种电子设备的结构示意图;图14为本发明实施例提供的又一种电子设备的结构示意图。
具体实施方式
18.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制
本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
20.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
21.取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于识别”。类似地,取决于语境,短语“如果确定”或“如果识别(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当识别(陈述的条件或事件)时”或“响应于识别(陈述的条件或事件)”。
22.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
23.下面再结合附图对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
24.随着第五代移动通信技术(5th generation mobile communication technology,简称5g)的发展,5g通信网络的应用场景越来越广,比如可以为用户提供自动驾驶、视频直播等多种服务。再结合背景技术中提及的,功能实例可以以软件程序的形式部署在服务器中,因此,5g通信网络可以利用软件程序形式的功能实例进行创建。
25.可选地,5g通信网络一种更具体的使用场景,该网络还可以作为5g专网部署于某一工业园区或者工业流水线中,用以对园区或者流水线进行视频监测等等,则此5g专网中的各功能实例可以以软件程序的形式部署在云服务器中。
26.此种场景下,5g专网中接入网包含的基站(gnb)以及核心网包含的各控制面功能(control plane function,简称cpf)网元、用户面功能网元(user plane function,简称upf)均可以认为是功能实例,则将其以软件程序的形式部署在服务器中即可完成5g通信网络的创建。其中,cpf网元可以是通用5g核心网中的各种控制面功能网元,比如接入和移动性管理功能(access and mobility management function,简称amf)网元、会话管理功能(session management function,简称smf)等等,具体网元内容在此不再详细说明。
27.并且在作为5g通信网络运行载体的服务器正常工作时,服务器中的各功能实例可以不断生成任务,并将任务添加到相应的任务队列中。服务器又可以创建工作线程并将自己的计算资源分配给工作线程,使得工作线程可以获取并执行任务队列中的任务。其中,工作线程也可以称为worker thread。并且服务器可以采用隔离部署的方式为工作线程分配计算资源,即工作线程可以独占被分配到的计算资源。其中,工作线程被分配到的计算资源具体可以包括cpu资源、内存资源和硬盘资源等等。可选地,服务器可以配置有多核cpu,则每个工作线程被分配到的可以是某一cpu内核具有的计算资源。
28.可选地,服务器中还可以安装有与上述功能实例所提供功能关联的第三方应用程
序。对于部署于某一工业园区或者工业流水线中的5g专网,与此关联的第三方应用程序可以包括各种视频采集软件,比如摄像头软件、增强现实(augmented reality,简称ar)软件、虚拟现实 (virtual reality,简称vr)软件等等。可选地,第三方应用程序还可以包括用于检测并维护上述这些视频采集软件正常运行的运维软件。这些第三方应用程序在运行过程中也会产生任务,则服务器同样可以建立相应的工作线程并分配自身的计算资源。
29.在实际中,当工作线程的工作量饱和即工作线程可以不断获取并执行任务时,由于服务器通常采用异步调度机制为工作线程分配任务,因此,使得工作线程需要经过一定的等待时间后才能获取到任务。而在此等待时间期间,工作线程被分配到的计算资源处于空闲状态,这部分计算资源是被浪费的,从而导致服务器的计算资源的利用率不高。另一种情况,当工作线程的工作量不饱和时,由于计算资源是隔离部署的,因此,这部分被工作线程独占的计算资源同样处于空闲状态,计算资源的利用率依旧不高。
30.因此,为了提高服务器计算资源的利用率就需要进行资源调度。并且为了进一步提高计算资源利用率,在进行资源调度时还要考虑资源调度的周期。具体来说,使用较大的调度周期并不能及时将空闲的计算资源调度给其他工作线程即提高资源利用率的效果并不明显;使用较小的调度周期又会影响工作线程的工作稳定性。
31.另外,在部署有5g通信网络的服务器中,工作线程处理的任务大部分是核心网中各功能网元或者接入网中gnb产生的任务。这些任务对执行的时序性以及时效性有较高要求,执行时序性的破坏会影响5g通信网络的运行甚至会造成网络瘫痪。因此,在进行资源调度的过程中还不能破坏任务的正常执行。
32.基于上述描述的实际情况,便可以使用本发明下述各实施例中提供的线程处理方法,在以恰当的调度周期进行资源调度的同时保证任务的时序执行。
33.图1为本发明实施例提供的一种线程处理方法的流程图。本发明实施例提供的该线程处理方法可以由服务器中部署的调度组件执行。其中,调度组件可以在服务器的操作系统处于用户态时运行。
34.如图1所示,该方法可以包括如下步骤:s101,确定服务器中工作线程处于阻塞状态的持续时间,在执行完服务器中功能实例产生的上一个任务之后且在获取功能实例产生的下一个任务之前,工作线程处于阻塞状态。
35.根据上述描述可知,服务器中部署的功能实例具体可以是gnb、核心网的功能网元,也可以是其他4g网络中的各功能网元等等。这些功能实例生成的任务可以缓存到该功能实例对应的至少一个任务队列中。同时,服务器还可以创建工作线程,以由创建的工作线程从功能实例对应的至少一个任务队列中获取任务并执行该任务。并且对于一个正常工作的工作线程,其可以不断在运行状态和阻塞状态之间切换,则服务器中的调度组件可以获取工作线程处于阻塞状态的持续时间。下面可以结合工作线程的工作流程和工作状态对工作线程的阻塞状态及其持续时间进行说明:工作线程的工作流程具体可以包括4个阶段:任务轮询—任务执行—结果上报—任务退出。工作线程不断循环上述的4个阶段直至工作线程被挂起,即服务器回收为工作线程被分配的计算资源。上述过程也可以参见图2理解。
36.在任务轮询阶段,若轮询成功,则工作线程可以从任务队列中获取任务。再依次进
入任务执行阶段和结果上报阶段。在这两个阶段中工作线程分别用于执行从任务队列中获取到的任务以及上报执行结果。在上述几个阶段,工作线程均处于运行状态,工作线程在服务器操作系统的用户态下实现任务的获取、执行以及执行结果上报。执行结果上报后工作线程即可进入任务退出阶段。若轮询失败,工作线程没有从任务队列中获取任务,则工作线程直接接入任务退出阶段。在该任务退出阶段中工作线程处于刚执行完功能实例生成的上一个任务并且还未获取到下一个任务的状态,此时,工作线程处于阻塞状态。并且在工作线程获取到下一个任务之前会一直维持阻塞状态。可选地,阻塞状态的持续时间可以是微秒级的。
37.s102,根据工作线程处于阻塞状态的持续时间,确定工作线程的工作负载指标参数。
38.由于阻塞状态的持续时间即为工作线程执行完上一个任务且未获取到下一个任务之前的时间,因此,该持续时间的长度可以反映工作线程的工作负载大小。则一种可选地方式,调度组件可以将该持续时间的长度确定为该工作线程的工作负载指标参数,并根据此指标参数生成资源调度策略。其中,调度策略可以包括创建工作线程和回收工作线程。
39.具体来说,若持续时间的长度超过预设时长,表明工作线程在执行完上一个任务之后需要等待较长时间才能获取到下一个任务,表明此工作线程的工作量不饱和,工作线程的工作负载较小,则调度组件生成的资源调度策略为回收此工作线程,即回收此工作线程被分配到的计算资源,使得该工作线程被挂起。反之表明工作线程的工作量饱和,工作线程的工作负载较大,则调度组件生成的资源调度策略为创建工作线程,并为新建的工作线程分配服务器的计算资源。
40.容易理解的,一个工作线程在连续执行多个任务的过程中可以多次处于阻塞状态,即工作线程每执行完一个任务后都会进入阻塞状态,为了进一步保证确定出的工作负载指标参数能够准确反映工作线程的负载大小,另一种可选地方式,调度组件还可以监测该工作线程连续多次处于阻塞状态时,每个阻塞状态的持续时间。调度组件可以将多个持续时间各自的长度确定为该工作线程的工作负载指标参数。若连续的多个持续时间的长度均超越预设时长,表明该工作线程的工作负载较小,则生成的资源调度策略为回收线程;反之调度组件生成的资源调度策略为创建线程。
41.s103,根据工作负载指标参数生成资源调度策略,以由服务器的内核根据调度策略重新分配服务器的计算资源。
42.最终,调度组件还可以将此资源调度策略发送至服务器的内核,以由内核在服务器操作系统处于内核态时执行资源调度策略。
43.本实施例中,服务器中的调度组件可以确定工作线程处于阻塞状态的持续时间,并根据此持续时间确定工作线程的工作负载指标参数,并进一步根据工作负载指标参数生成资源调度策略,以由服务器的内核利用此资源调度策略重新分配服务器的计算资源。
44.上述过程中,工作线程每执行完一个任务,调度组件都可以计算出工作线程的工作负载指标参数并进一步进行服务器计算资源的调度,也即是将进行计算资源调度的周期缩短到与任务执行时长相同的数量级,计算资源的及时调度也可以提高服务器计算资源的利用率。并且阻塞状态的维持时长即为工作线程连续任务的间歇期,即使得资源调度是在两个任务之间进行的,因此,也不会影响工作线程正常执行任务。
45.根据上述描述可知,5g通信网络具体可以为运行于云服务器中的5g专网,则此云服务器中也可以执行图1所示实施例中的方法,以实现资源调度。则图3为本发明实施例提供的另一种线程处理方法的流程图。本发明实施例提供的该线程处理方法可以由云服务器执行。如图3所示,该方法可以包括如下步骤:s201,确定云服务器中工作线程处于阻塞状态的持续时间,在执行完服务器中功能实例产生的上一个任务之后且在获取功能实例产生的下一个任务之前,工作线程处于阻塞状态。
46.s202, 根据工作线程处于阻塞状态的持续时间,确定工作线程的工作负载指标参数,功能实例包括5g专网中的功能网元。
47.s203,根据工作负载指标参数生成资源调度策略,以由服务器的内核根据调度策略重新分配服务器的计算资源。
48.上述方法具体可以由云服务器中部署的调度组件执行,而本实施例中各步骤的具体执行过程以及未详细描述的内容以及所能实现的技术效果均可以参见上述各实施例中的相关描述,在此不再赘述。
49.需要说明的有,在5g专网中,对于gnb以及核心网中的功能网元等功能实例,工作线程处于阻塞状态的持续时间通常是微秒级的,因此,上述实施例中计算资源的调度周期即调度组件的工作周期也是微秒级的。同时,gnb和功能网元产生任务的数量往往还具有突发性,这种突发也可以是毫秒或者微妙级的,此时,采用上述微秒级的线程处理方法同样能够应对此微秒级的任务突发。
50.并且上述实施例中,当工作线程每执行完一个任务即每产生一个持续时间后即进行资源调度,但每个任务的执行时间不同比如可以是几微秒或者十几微秒,这使得资源的调度周期也不固定。则为了使调度组件能够更及时确定出工作线程是否处于阻塞状态并及时进行计算资源调度,调度组件的工作周期还可以设置得更小,比如1微秒。即调度组件每1微秒就执行一次工作线程是否处于阻塞状态的判断。
51.需要说明的还有,常用工作负载指标参数为任务队列的队列长度,但该指标参数需要修改功能实例的底层代码才能得到,指标参数的获取方式复杂。同时考虑到调度组合和功能实例来源于不同的开发方,由于权限原因,因此,更加增大了修改功能实例低层代码的难度,则指标参数的获取也更为困难。相比于将任务队列的队列长度作为指标参数,上述实施例中是将工作线程处于阻塞状态的持续时间作为工作负载指标参数来生成资源调度策略的,这种指标参数无需修改功能实例的底层代码即可得到,即获取更为容易。
52.图1和图3所示实施例中,在工作线程执行完任务并将执行结果上报完毕后,工作线程即进行任务退出阶段。可选地,工作线程可以通过执行调度组件中设置的延迟函数来使自身进入任务退出阶段。则调度组件可以响应于延迟函数的执行,记录该函数执行的起止时间,该延迟函数执行的起始时间点和终止时间点构成的时间段即为工作线程处于阻塞状态的持续时间。可选地,延迟函数比如可以是sleep函数、sem-wait函数等等。
53.需要说明的有,在实际中,表现为软件程序形式的功能实例中也可以设置有延迟函数,因此,工作线程在执行结果上报完毕后,也可以去执行功能实例中设置的延迟函数。但由于服务器运行的调度组件和功能实例往往来源于不同的开发方,同样考虑到权限问题,在无法修改功能实例的低层代码的情况下,调度组件无法知晓功能实例执行延迟函数
的起止时间。则为了使调度组件能够知晓延迟函数执行的起止时间,可以在调度组件中也设置延迟函数,并借助重定向机制使在工作线程上报执行结果之后主动执行调度组件中的延时函数。
54.利用上述图1和图3所示实施例能够对计算资源实现微秒级的调度,并且调度组件又是在获取工作线程的工作负载指标参数之后,根据此指标参进行资源调度的,因此,此工作负载指标参数的计算周期也是以微秒级的。
55.则图4为本发明实施例提供的又一种线程处理方法的流程图。本发明实施例提供的该线程处理方法实际上一种工作负载指标参数监测方法,该方法可以由服务器中的监测组件执行。如图4所示,该方法可以包括如下步骤:s301,在到达监测组件的工作周期时,确定服务器中工作线程处于阻塞状态的持续时间,在执行完服务器中功能实例产生的上一个任务之后且在获取功能实例产生的下一个任务之前,工作线程处于阻塞状态。
56.s302, 根据工作线程处于阻塞状态的持续时间,确定工作线程的工作负载指标参数,工作周期的长度的数量级为微秒。
57.在到达监测组件的工作周期时,监测组件开始确定服务器中工作线程处于阻塞状态的持续时间,并根据此持续时间确定工作线程的工作负载指标参数。持续时间和工作负载指标参数的具体确定过程可以参见上述图1所示实施例中的相关描述,在此不再赘述。可选地,工作负载指标参数的具体确定过程还可以参见下述图5a~图5c所示的实施例。
58.其中,工作周期的长度为微秒级的。根据上述描述可知,可选地,监测组件的工作周期可以1微秒或几微秒。监测组件可以包含于调度组件中。
59.本实施例中,服务器中的监测组件在达到自身的工作周期后便可以确定工作线程处于阻塞状态的持续时间,并根据此持续时间确定工作线程的工作负载指标参数。上述过程中,由于监测组件的工作周期为微秒级并且工作线程执行完一个任务的时长也是微秒级,因此,监测组件计算出工作线程的工作负载指标参数的过程也是微秒级的,从而缩短了工作线程的工作负载监测的周期,即能够更及时地监测工作负载的工作状态。另外,本实施例中未详细描述以及所能够达到的效果均可以参见上述各实施例中的相关描述,在此不再赘述。
60.根据上述描述可知,服务器中的任意一个功能实例产生的任务可以由服务器中的至少一个工作线程执行。
61.一种简单的情况,一个功能实例产生的任务可以由服务器中的一个工作线程执行。此时,按照图1和图3所示实施例中的描述,调度组件可以先获取此工作线程工作负载指标参数,再根据此工作负载指标参数生成对应的资源调度策略,以使服务器的内核执行此资源调度策略。此种情况下,该工作线程的工作负载指标参数可以是该工作线程对应的至少一个持续时间。
62.另一种复杂的情况,一个功能实例产生的任务可以由服务器中的多个工作线程执行。此时,可选地,调度组件可以根据该工作实例对应的每个工作线程的工作负载指标参数确定是否进行计算资源的调度,即以一个工作线程的工作负载为依据进行资源调度。可选地,调度组件还可以先根据每个工作线程的工作负载参数指标确定该功能实例对应的多个工作线程的整体工作负载指标参数,再根据此整体工作负载指标参数确定是否进行资源调
度,即以一个功能实例对应的所有工作线程的工作负载为依据进行资源调度。
63.当调度组件可以根据每个工作线程的工作负载指标参数确定是否进行计算资源的调度时,仍然可以按照图1和图3所示实施例中的方式进行调度。此种情况下,每个工作线程的工作负载指标参数可以是该工作线程对应的至少一个持续时间。
64.当调度组件可以根据每个工作线程的工作负载指标参数确定是否进行计算资源的调度时,对于工作负载指标参数,除了图1和图3给出的方式,可选地,还可以按照以下方式确定。以下方式还可以结合图5a所示的流程图理解。
65.对于多个工作线程中的任一工作线程,即目标工作线程,调度组件先获取该目标工作组件两次相邻的阻塞状态的持续时间。这两个持续时间可以分别由第一起始时间点和第一终止时间点构成,由第二起始时间点和第二终止时间点构成。则调度组件可以进一步确定第一起始时间点和第二起始时间点之间的时间间隔,并将此时间间隔直接确定为此目标工作线程的工作负载指标参数。但与图1所示实施例中的持续时间相反的,时间间隔越长,表明目标工作线程执行任务花费的时间越多,目标工作线程的工作负载越大;反之,目标工作线程的工作负载越大。
66.进一步地,将时间间隔作为工作负载指标参数进行计算资源调度的过程为:若时间间隔大于第一预设间隔,表明目标工作线程的工作负载较大,则调度组件生成的调度策略为创建工作线程。新创建的工作线程和目标工作线程共同执行同一个功能实例生成的任务,从而降低目标工作线程的工作负载。可选地,第一预设间隔可以为服务器预设数量的机器周期,预设数量的机器周期可以认为是一个时间上限,比如可以是2500个cpu周期。
67.若时间间隔小于第一预设间隔,表明目标工作线程的工作负载较小,则调度组件生成的调度策略为回收为此目标工作线程分配的计算资源。回收的计算资源可以调度至服务器中的其他工作负载较大的工作线程中,该其他工作线程可以与被回收的目标工作线程对应于相同的功能实例,也可以对应于不同的工作实例。回收的计算资源也可以供服务器将其分配给为其他功能实例新建的工作线程。
68.在实际中,当调度组件生成资源调度策略后,该策略会立即发送至服务器的内核并由其执行,以实现微秒级的资源调度。并且当资源调度策略为回收工作线程的计算资源时,内核可以在目标工作线程处于阻塞状态执行此资源调度策略,以保证在任务执行不间断的同时实现资源调度。
69.可选地,为了进一步保证确定出的工作负载指标参数能够准确反映工作线程的负载大小,调度组件还可以按照以下方式确定目标工作线程的工作负载指标参数。以下方式还可以结合图5b所示的流程图理解。
70.调度组件可以先按照图5a所示的方式得到目标工作线程中两个第一起始时间点之间的时间间隔。若时间间隔小于第一预设间隔,表明目标工作线程两次开始阻塞状态之间的时间间隔很小,则调度组件可以在此时间间隔中确定一时间点,并将此时间点作为该目标工作线程的空闲时间点。在此空闲时间点时目标工作线程的负载较小。由于目标工作线程会多次处于阻塞状态,调度组件可以得到多个持续时间,因此,按照上述方式调度组件还可以计算出此目标工作线程出现的多个空闲时间点。调度组件可以根据此多个空闲时间点确定目标工作线程出现空闲时间点的第一频率,并可以直接将此第一频率确定为目标工
作线程的工作负载指标参数。频率越高,目标工作线程的工作负载越小。
71.可选地,调度组件可以将时间间隔中的任一时间,比如时间间隔中的中间时间点或者结束时间点确定为目标工作线程的空闲时间点。其中,时间间隔的结束时间点即为上述的第二起始时间点。其中,可以将目标工作线程中相邻空闲时间点之间的时间间隔的倒数确定为目标工作线程的第一频率。
72.进一步地,将第一频率作为工作负载指标参数进行计算资源调度的过程为:若第一频率小于预设最小频率,表明目标工作线程的工作负载较大,则调度组件生成的资源调度策略为创建线程,并为此新建的工作线程分配服务器的计算资源。若第一频率大于预设最大频率,表明目标工作线程的工作负载较小,则调度组件生成的资源调度策略为回收为工作线程分配的计算资源。并且与上述过程类似的,当资源调度策略为回收工作线程的计算资源时,内核可以在目标工作线程处于阻塞状态执行此资源调度策略,以保证在任务执行不间断的同时实现资源调度。
73.当调度组件可以根据同一功能实例对应的多个工作线程的整体工作负载指标参数确定是否进行资源调度时,调度组件还可以按照以下方式确定多个工作线程的整体工作负载指标参数。以下方式还可以结合图5c所示的流程图理解。
74.调度组件可以先利用图5b所示的方式得到多个工作线程各自的空闲时间点。容易理解的,由于该功能实例产生的任务被缓存于至少一个任务队列中,该功能实例对应的多个工作线程可以从至少一个任务队列中获取任务并执行,因此,各工作线程之间的任务执行进度并不相同,这也就导致了调度组件计算出的多个工作线程的各自空闲时间点在时序上也有先后顺序。则调度组件可以按照时序对至少一个工作线程出现的空闲时间点进行排序。根据排序结果中相邻的空闲时间点确定多个工作线程出现空闲时间点的第二频率。其中,可以将排序结果中相邻空闲时间点之间的时间间隔的倒数确定为第二频率。调度组件可以进一步根据此第二频率确定多个工作线程整体的工作负载指标参数。
75.一种可选地方式,调度组件可以直接将此第二频率确定为多个工作线程整体的负载指标参数。另一种可选地方式,当多个工作线程的空闲时间点总量为3个及以上时,即可出现多个第二频率,则调度组件也可以对多个第二频率进行求平均或者取中位数的处理方式,并将处理结果作为多个工作线程整体的负载指标参数。
76.举例来说,假设5g专网的核心网中amf网元生成的任务被缓存至任务队列中,服务器中的工作线程1和工作线程2可以分从任务队列中获取该网元产生的任务。按照图5c所示的方式,调度组件可以计算出工作线程1在t1时间和t3时间出现空闲时间点,工作线程2在t2时间和t4时间出现空闲时间点。空闲时间点的排序结果为:t1—t2—t3—t4。则调度组件计算出的第二频率包括1/(t2-t1)、1/(t3-t3)以及1/(t4-t3)。此时,可选地,调度组件可以将上述任一第二频率确定为多个工作线程整体的负载指标参数,或者对上述3个第二频率进行求均值或者取中位数的处理,将处理结果确定为多个工作线程整体的负载指标参数。
77.进一步地,将第二频率作为工作负载指标参数进行计算资源调度的过程为:若第二频率小于预设最小频率,表明多个工作线程整体的工作负载较大,则调度组件生成的资源调度策略为创建线程,并为该新建的工作线程分配计算资源。若第二频率大于预设最大频率,表明多个工作线程整体的工作负载较小,则调度组件生成的资源调度策略为回收工作线程的计算资源。可选地,回收计算资源的工作线程可以是同一功能实例
对应的多个工作线程中的任一个。并且当资源调度策略为回收工作线程的计算资源时,内核可以在多个工作线程中的某一工作线程处于阻塞状态时回收该工作线程的计算资源,以保证在任务执行不间断的同时实现资源调度。
78.需要说明的有,上述图5b和图5c所示实施例中,调度组件可以基于空闲时间点确定工作线程的工作负载指标参数并进一步进行资源调度。而空闲时间点又是通过与第一预设间隔进行比对后得到的。当第一预设间隔为预设数量的机器周期时,对于机器周期数量的设置原则还可以结合以下内容理解:由于上述描述已经提及,功能实例生成任务的数量往往存在突发性,为了应对此突发性即为了使在出现任务突然激增时工作线程仍有足够的计算资源进行处理,因此在实际中,可以设置一个较大数量的机器周期,使得工作线程的工作负载大小与需要进行资源调度的临界点之间存在一定距离,即使得该工作线程被分配到的计算资源具有一定的空闲程度,从而能够应对任务激增。
79.上述各实施例中提及了多种可以作为工作负载指标参数的数据,比如图1所示实施例中的工作线程处于阻塞状态的至少一个持续时间、图5a所示实施例中的时间间隔,图5b所示实施例中的第一频率、图5b所示实施例中的第二频率等等。在实际中,当功能实例具体为5g专网中的gnb或者功能网元时,工作线程处于阻塞状态的持续时间为微秒级别,则上述的时间间隔、第一频率、第二频率也都是微秒级的。
80.另外,在实际中,工作线程使用被分配到的计算资源处理任务后,会有一些中间数据缓存在计算资源(比如内存资源)中,这些缓存的中间数据能够加速此工作线程处理同一功能实例产生的其他任务。若在资源调度时参考缓存的中间数据,则调度组件就需要执行相应的计算过程,以计算出应该为工作线程分配哪些计算资源,此计算过程显然会增加资源调度的周期。并且在以中间数据为依据进行资源调度时,还容易造成计算资源调度的不充分,即一部分计算资源只会分配给某些功能实例对应的工作线程,这样也不能很好地提高计算资源的利用率。
81.而在本发明上述各实施例提供的方法中,资源调度是并不参考缓存的中间数据,这样使得计算资源能够被分配至不同功能实例对应的工作线程中,资源调度更加充分。并且由于在发明各实施例提供的方法中,功能实例通常为5g专网中的gnb或者功能网元,由于这些功能实例的特性,即使不参考中间数据进行资源调度也不会降低任务的执行速度。
82.根据上述描述可知,服务器中除了安装有软件程序形式的功能实例还安装有与功能实例所提供功能关联的第三方应用程序。第三方应用程序生成的任务同样由服务器中的至少一个工作线程执行。则调度组件在为功能实例对应的工作线程进行资源调度的同时,还可以一并对第三方应用程序对应的工作线程进行资源调度。
83.相比于功能实例产生的任务,第三方应用程序产生的任务的执行时效性以及执行时序性要求都不高,因此,调度组件在按照上述各实施例提供的方法确定出适用于功能实例对应的工作线程的资源调度策略后,可以将服务器剩余的计算资源直接分配给第三方应用程序对应的至少一个工作线程。可选地,可以将服务器剩余的计算资源平均分配给这至少一个工作线程,也可以选择性的分配给至少一个工作线程中的部分工作线程。
84.调度组件在使用上述任一种工作负载指标参数生成调度策略之后,即可按照此调度策略进行调度。为了尽可能避免计算资源的频繁调度,可选地,图6为本发明实施例提供
的又一种线程处理方法的流程图,如图6所示,该方法可以包括如下步骤:s401, 确定服务器中工作线程处于阻塞状态的持续时间,在执行完服务器中功能实例产生的上一个任务之后且在获取功能实例产生的下一个任务之前,工作线程处于阻塞状态。
85.s402, 根据工作线程处于阻塞状态的持续时间,确定工作线程的工作负载指标参数。
86.s403,根据工作负载指标参数生成资源调度策略。
87.步骤s401~步骤403的具体实现过程可以参见图1所示实施例中相关步骤的具体描述,在此不再赘述。
88.s404,获取资源调度策略的生成时间,以及上一个资源调度策略的生成时间。
89.s405, 若两个生成时间之间的时间间隔小于第二预设间隔,则丢弃资源调度策略。
90.s406,若两个生成时间之间的时间间隔大于第二预设间隔,则发送资源调度策至服务器的内核,以由内核根据调度策略重新分配服务器的计算资源。
91.按照上述各实施例提供的方法调度组件可以在t1时间生成资源调度策略。但此资源调度策略并不直接发送至服务器的内核。调度组件可以进一步获取自身上一次生成资源调度策略的时间即t2时间,并对二者进行比对,根据比对结果确定如何在t1时间生成的调度资源策略。其中,t1时间和t2时间生成的资源调度策略作用于服务器中同一功能实例。
92.具体来说,若t1时间和t2时间之间的时间间隔小于预设间隔,表明资源调度过于频繁,则调度组件可以直接丢弃,此时,服务器的内核也就不会进行资源调度。若t1时间和t2时间之间的时间间隔大于预设间隔,则调度组件会将在t1时间生成的资源调度策略发送至内核,以由内核执行。
93.可选地,若t1时间和t2时间生成的资源调度策略作用于服务器中不同的功能实例,即使二者之间的时间间隔小于第二预设间隔,在t1时间生成的资源调度策略同样会被内核执行。
94.本实施例中,调度组件在当前时间生成资源调度策略后,还可以获取上一次生成资源调度策略的时间,若这两个调度策略对应于同一功能实例且两个生成时间之间的时间间隔较小,则直接丢弃当前时间生成的资源调度策略,以尽可能避免计算资源的频繁调度。另外,本实施例中未详细描述的内容以及所能实现的技术效果均可以参见上述各实施例中的相关描述,在此不再赘述。
95.在上述图1~图4所述实施例中是将调度组件作为一个整体来描述其工作过程的。在此基础上,还可以对调度组件中各子组件的具体工作过程进行描述。则图7为本发明实施例提供的一种调度组件的结构示意图。该组件具体可以包括时段监测子组件、指标监测子组件和策略生成子组件。
96.调度组件中各子组件的工作过程及其子组件之间的交互过程可以描述为:时段监测子组件确定服务器中工作线程处于阻塞状态的持续时间。其中,阻塞状态的含义以及确定方式均可以参见上述图1所示实施例中的相关描述。当功能实例对应于至少一个工作线程时,该持续时间即为至少一个工程线程各自处于阻塞状态的持续时间。并且每个工作线程还可以多次处于阻塞状态,则每个阻塞状态都会对应于一个持续时间。
97.每个工作线程的每个持续时间都可以输出给指标监测子组件。之后,该指标监测子组件可以进一步根据此持续时间,确定工作线程的工作负载指标参数。可选地,工作负载指标参数可以是图1、图5a~图5c所示实施例中给出的相关数据,具体确定过程在此不再赘述。
98.策略生成子组件在得到指标监测子组件输出的工作负载指标参数以及时段监测子组件输出的持续时间后,即可根据二者确定资源调度策略,以由服务器中的内核执行此资源调度策略实现服务器计算资源的重新分配。
99.本实施例中,调度组件中的时段监测子组件可以确定工作线程处于阻塞状态的持续时间,再由指标监测子组件可以根据此持续时间确定工作线程的工作负载指标参数,最终策略生成子组件可以进一步根据工作负载指标参数生成资源调度策略,以由服务器的内核执行此资源调度策略,实现重新分配服务器的计算资源。
100.上述过程中,工作线程每执行完一个任务后策略生成子组件生成资源调度策略,并进一步由内核进行服务器计算资源的调度,也即是调度子组件将进行计算资源调度的周期缩短到与任务执行时长相同的数量级,缩短了计算资源的调度周期,计算资源的及时调度也可以提高服务器计算资源的利用率。并且资源调度是在两个任务之间进行的,因此,也不会影响工作线程正常执行任务。另外,本实施例中未详细描述的内容以及所能实现的技术效果也可以参见上述各实施例中的相关描述,在此不再赘述。
101.对于上述实施例提供的调度组件,各子组件之间具有单向数据传输过程,不存在双向的数据同步过程,使得各组件能够快速获取相应数据,从而能够加快资源调度策略的生成,进一步缩短资源调度周期。
102.可选地,服务器还提供共享内存,则时段监测子组件确定出的持续时间以及指标监测子组件确定出的工作负载指标参数均可以存储于此共享内存中,以便指标监测子组件快速从中读取出持续时间,以便调度子组件快速从中读取出持续时间和工作负载指标参数。因此,共享内存的设置还可以进一步缩短资源调度周期。
103.可选地,图6所示实施例中,判断资源调度策略是丢弃还是发送至服务器内核的过程也可以由调度组件中的策略生成子组件执行。
104.另外,本实施例中未详细描述的内容以及所能实现的技术效果也可以参见上述各实施例中的相关描述,在此不再赘述。
105.根据上述图4所示实例中又具体描述了监测组件的工作过程,并且该监测组件可以包含于调度组件中,则在此基础上,还可以对监测组件的具体工作过程进行描述。则图8为本发明实施例提供的一种监测组件的结构示意图。该组件具体可以包括时段监测子组件和指标监测子组件。
106.监测组件中各子组件的工作过程及其子组件之间的交互过程可以描述为:在达到监测组件的工作周期后,时段监测子组件确定服务器中工作线程处于阻塞状态的持续时间。其中,阻塞状态的含义以及确定方式均可以参见上述图1所示实施例中的相关描述。其中,工作周期的长度为微秒级,该工作周期具体可以是时段监测子组件的工作周期。
107.当功能实例对应于至少一个工作线程时,该持续时间即为至少一个工程线程各自处于阻塞状态的持续时间。并且每个工作线程还可以多次处于阻塞状态,则每个阻塞状态
都会对应于一个持续时间。每个工作线程的每个持续时间都可以输出给指标监测子组件。之后,指标监测子组件还可以进一步根据此持续时间,确定工作线程的工作负载指标参数。可选地,工作负载指标参数可以是图1、图5a~图5c所示实施例中给出的相关数据,具体确定过程在此不再赘述。
108.本实施例中,在达到监测组件的工作周期后,监测组件中的时段监测子组件可以确定工作线程处于阻塞状态的持续时间,再由指标监测子组件可以根据此持续时间确定工作线程的工作负载指标参数。上述过程中,由于监测组件的工作周期为微秒级并且工作线程执行完一个任务的时长也是微秒级,因此,监测组件计算出工作线程的工作负载指标参数的过程也是微秒级的,从而缩短了工作线程的工作负载监测的周期,即能够更及时地监测工作负载的工作状态。另外,本实施例中未详细描述的内容以及所能实现的技术效果也可以参见上述各实施例中的相关描述,在此不再赘述。
109.对于上述实施例提供的监测组件,由于各子组件之间具有单向数据传输过程,不存在双向的数据同步过程,因此,使得各组件能够快速获取相应数据,从而能够缩短工作负载指标参数的获取周期。
110.可选地,运行有监测组件的服务器也提供共享内存,则时段监测子组件确定出的持续时间可以存储于此共享内存中,以便指标监测子组件快速从中读取出持续时间,以进一步缩短工作负载指标参数的获取周期。
111.根据上述各实施例中的描述可知,调度组件(包含有监测组件)、功能实例都可以运行于服务器中,则图9为本发明实施例提供的一种服务器的结构示意图。该服务器可以包括:调度组件、内核、功能实例以及计算资源。
112.调度组件先确定服务器中工作线程处于阻塞状态的持续时间,并根据工作线程处于阻塞状态的持续时间,确定工作线程的工作负载指标参数。可选地,确定工作负载指标参数的具体过程可以参见图1、图5a~图5c所示实施例中详细描述,在此不再赘述。接着,调度组件还可以根据工作负载指标参数生成资源调度策略。最终,服务器中的内核此资源调度策略可以获取并执行调度组件输出的资源调度策略。
113.上述过程中,调度组件相当于决策者,用于确定资源调度策略。内核相当于执行者,用于执行此资源调度策略以实现服务器计算资源的重新分配。其中,调度组件、功能实例、第三方应用程序都可以运行于服务器的操作系统中。调度组件和功能实例可以运行于操作系统的用户态下。内核可以借助内部设置的、运行于操作系统内核态下的调度类函数获取资源调度策略,并继续在内核态下执行此资源调度策。
114.本实施例中,服务器中的调度组件可以确定工作线程处于阻塞状态的持续时间,并根据此持续时间确定工作线程的工作负载指标参数,并进一步根据工作负载指标参数生成资源调度策略。此资源调度策略可以被服务器的内核获取并执行,以重新分配服务器的计算资源。
115.上述过程中,工作线程每执行完一个任务调度组件都可以计算出工作线程的工作负载指标参数并由内核进行服务器计算资源的调度,也即是将进行计算资源调度的周期缩短到与任务执行时长相同的数量级,缩短了计算资源的调度周期,计算资源的及时调度也可以提高服务器计算资源的利用率。并且阻塞状态的维持时长即为工作线程连行任务的间歇期,使得资源调度是在两个任务之间进行的,因此,也不会影响工作线程正常执行任务。
另外,本实施例中未详细描述的内容以及所能实现的技术效果也可以参见上述实施例中的相关描述,在此不再赘述。
116.在资源调度的过程中为了保证任务执行不间断,当资源调度策略为回收工作线程的计算资源时,可选地,内核可以在该工作线程处于阻塞状态时进行回收。
117.可选地,本实施例中服务器内部署的调度组件的结构示意图可以如图7所示,并且服务器中还可以安装有第三方应用程序,则图10为另一种服务器的结构示意图。
118.另外,本实施例中未详细描述的内容以及所能实现的技术效果也可以参见上述各实施例中的相关描述,在此不再赘述。
119.下面以借助5g车联网场景为例,说明上述各实施例提供的线程处理方法、调度组件、服务器的具体工作过程。下述过程也可以结合图11理解。
120.5g车联网可以包括云服务器1、车载终端以及服务器2。其中,云服务器1中运行有5g专网,即该专网中的gnb以及核心网中的各种功能网元都以软件形式部署在云服务器中,车载终端能够采集车辆的行驶数据,比如行驶速度、车辆行驶方向等等。服务器2用于根据行驶数据确定适用于车辆的自动驾驶策略。
121.则对于启动自动驾驶功能的车载终端,其采集到的行驶数据通常需要由以软件形式部署的gnb和upf网元传输至服务器2,也即是gnb和upf网元都可以产生行驶数据的传输任务。具体的,gnb产生的传输任务比如为将车辆行驶数据转发给upf网元;upf网元产生的任务为将车辆行驶数据转发给服务器2。二者产生的传输任务可以分别缓存与任务队列1和任务队列2中。云服务器1还可以创建工作线程1~4,其中,工作线程1和2用于执行任务队列1中的传输任务,工作线程3和4用于执行任务队列2中的传输任务。其中,每一个工作线程被分配到的计算资源可以认为是多核的云服务器1中一个内核具有的计算资源。
122.则以gnb对应的工作线程1和2为例说明资源调度的过程:在工程线程1连续执行任务队列1中的传输任务时,服务器1中的调度组件可以获取工作线程1至少一次处于阻塞状态时的至少一个持续时间,然后以此至少一个持续时间为依据确定该工作线程1的工作负载指标参数。其中,指标参数的具体内容以及确定方式均可以参见上述相关实施例中的描述,在此不再赘述。同样的,调度组件也可以获取工作线程2的工作负载指标参数。
123.进一步的,一种方式,若工作负载指标参数表明工作线程1和/或2的工作负载较大,则调度组件生成的资源调度策略为创建工作线程,即为gnb创建工作线程5,该工作线程也用于执行任务队列1中的任务。相反的,若调度组件确定工作线程1的工作负载较小,则调度组件生成的资源调度策略为回收工作线程1的计算资源,其的计算其余可以被分配给服务器中的其他工作线程。
124.另一种方式,如图5c所示,调度组件可以根据工作线程1和2各自的工作负载指标参数,确定表明二者整体工作负载大小的指标参数,在根据此指标参数生成资源调度策略。
125.对于upf网元对应的工作线程3和4,也同样可以按照上述的方式进行资源调度,调度组件生成的资源调度策略可以为回收工作线程3的计算资源。
126.在调度组件生成资源调度策略后,此策略会借助服务器内核中的调度类函数发送至内核,以由内核执行此资源调度策略。上述资源调度策略的生成都是微秒级的,并且策略的生成是在两个任务之间生成的,因此也不会影响传输任务的正常执行。
127.另外,由于工作线程1、2以及工作线程3、4分别对应于不同的功能实例,多个工作线程执行任务的时长不同,因此,调度组件可以在不同时间分别生成针对gnb和upf网元的资源调度策略,比如在t1时间生成针对gnb的资源调度策略:新建工作线程5,在t2时间生成针对upf网元的资源调度策略:回收工作线程3。
128.可选地,为了尽量避免频繁的资源调度,当调度组件在t1时间生成资源调度策略后,调度组件还可以获取上一次生成针对此gnb的资源调度策略的时间,若二者之间的时间间隔小于第二预设间隔,则丢弃在t1时间生成的资源调度策略。
129.而若针对不同功能实例生成的资源调度策略,则无需考虑前后两个资源调度策略的生成时间之间的时间间隔。
130.可选地,云服务器1中还可以安装有其他第三方应用程序,则服务器1的内核在新建工作线程5并对其分配计算资源后,还可以将云服务器1中剩余的计算其余分配给第三方应用程序。类似的,当云服务器1的内核回收工作线程3的计算资源后,还可以云将服务器1中剩余的计算其余分配给第三方应用程序对应的工作线程。比如在原有工作线程6的基础上,新建工作线程7。
131.另外,本方案提供的各实施例还可以应用在任何借助5g通信网络实现的场景中,比如直播、远程医疗、在线金融等等。
132.在一个可能的设计中,上述各实施例提供的线程处理方法可以应用在一电子设备中,如图12所示,该电子设备可以包括:处理器21和存储器22。其中,存储器22用于存储支持该电子设备执行上述图1~图2以及图5a~图6所示实施例中提供的任务处理方法的程序,处理器21被配置为用于执行存储器22中存储的程序。
133.程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器21执行时能够实现如下步骤:确定所述服务器中工作线程处于阻塞状态的持续时间,在执行完所述服务器中功能实例产生的上一任务之后且在获取所述功能实例产生的下一个任务之前,所述工作线程处于所述阻塞状态;根据所述工作线程处于所述阻塞状态的持续时间,确定所述工作线程的工作负载指标参数;根据所述工作负载指标参数生成资源调度策略,以由所述服务器的内核根据所述调度策略重新分配所述服务器的计算资源。
134.可选地,处理器21还用于执行前述图1~图2以及图5a~图6所示实施例中的全部或部分步骤。
135.其中,电子设备的结构中还可以包括通信接口23,用于该电子设备与其他设备或通信系统通信。
136.另外,本发明实施例提供了一种计算机存储介质,用于储存上述电子设备所用的计算机软件指令,其包含用于执行上述图1~图2以及图5a~图6所示方法实施例线程处理方法所涉及的程序。
137.在一个可能的设计中,上述各实施例提供的线程处理方法可以应用在另一电子设备中,如图13所示,该电子设备可以包括:处理器21和存储器22。其中,存储器32用于存储支持该电子设备执行上述图3以及图5a~图6所示实施例中提供的任务处理方法的程序,处理
器31被配置为用于执行存储器32中存储的程序。
138.程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器31执行时能够实现如下步骤:确定所述云服务器中工作线程处于阻塞状态的持续时间,在执行完所述服务器中功能实例产生的上一个任务之后且在获取所述功能实例产生的下一个任务之前,所述工作线程处于所述阻塞状态;根据所述工作线程处于所述阻塞状态的持续时间,确定所述工作线程的工作负载指标参数,所述功能实例包括所述5g专网中的功能网元;根据所述工作负载指标参数生成资源调度策略,以由所述服务器的内核根据所述调度策略重新分配所述服务器的计算资源。
139.可选地,处理器31还用于执行前述图3以及图5a~图6所示实施例中的全部或部分步骤。
140.其中,电子设备的结构中还可以包括通信接口33,用于该电子设备与其他设备或通信系统通信。
141.另外,本发明实施例提供了一种计算机存储介质,用于储存上述电子设备所用的计算机软件指令,其包含用于执行上述图3以及图5a~图6所示方法实施例线程处理方法所涉及的程序。
142.在一个可能的设计中,上述各实施例提供的线程处理方法可以应用在又一电子设备中,如图14所示,该电子设备可以包括:处理器21和存储器22。其中,存储器42用于存储支持该电子设备执行上述图4以及图5a~图5c所示实施例中提供的任务处理方法的程序,处理器41被配置为用于执行存储器32中存储的程序。
143.程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器41执行时能够实现如下步骤:在到达所述监测组件的工作周期时,确定所述服务器中工作线程处于阻塞状态的持续时间,在执行完所述服务器中功能实例产生的上一个任务之后且在获取所述功能实例产生的下一个任务之前,所述工作线程处于所述阻塞状态;根据所述工作线程处于所述阻塞状态的持续时间,确定所述工作线程的工作负载指标参数,所述工作周期的长度的数量级为微秒。
144.可选地,处理器41还用于执行前述图4以及图5a~图5c所示实施例中的全部或部分步骤。
145.其中,电子设备的结构中还可以包括通信接口43,用于该电子设备与其他设备或通信系统通信。
146.另外,本发明实施例提供了一种计算机存储介质,用于储存上述电子设备所用的计算机软件指令,其包含用于执行上述图4以及图5a~图5c所示方法实施例线程处理方法所涉及的程序。
147.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1