一种协程管理方法以及相关装置制造方法及图纸

技术编号:38744572 阅读:10 留言:0更新日期:2023-09-08 23:27
本申请公开了一种协程管理方法,方法包括:获取第一任务请求,第一任务请求用于请求创建第一会话和第一协程,第一会话携带针对第一协程的初始资源量;响应于第一任务请求,根据第一会话所携带的初始资源量确定第一内存资源并运行第一协程,确定第一协程实际占用内存资源的资源量;根据第一协程实际占用内存资源的资源量,确定目标资源量;将第一会话中的初始资源量更新为目标资源量。业务服务器后续接收相同类型的任务请求时,使用调整后的内存资源大小来运行第一协程。以节约业务服务器的内存资源,提高业务服务器的并发能力,适应系统动态负载。统动态负载。统动态负载。

【技术实现步骤摘要】
一种协程管理方法以及相关装置


[0001]本申请涉及互联网
,尤其涉及一种协程管理方法以及相关装置。

技术介绍

[0002]云计算(cloud computing)是分布式计算的一种,指的是通过服务器在网络中构成的云环境将巨大的数据计算处理程序分解成无数个小程序,然后通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云环境是指能够从动态虚拟化的资源池中向用户或者各种应用系统按需提供计算能力、存储能力或者虚拟机服务等的互联网或者大数据环境。
[0003]云环境中运行的业务服务器,往往采用传统的业务流处理方式工作,即针对每一个业务服务器创建若干个协程,这些协程用于处理具体业务的数据请求。一般来说,当业务服务器接收到任务请求时,需要启动对应的协程,每个协程对应一个会话任务进行数据的处理。在这个过程中,业务服务器从会话池中为每个会话任务分配合适的内存资源,业务服务器从内存资源池中为协程分配合适的内存资源。
[0004]目前通常的做法是为该会话任务分配固定的内存资源,为对应的协程分配固定的内存资源。当业务服务器处理大量任务请求的过程中,上述做法会占用大量系统资源,造成业务的拥塞,难以适应系统动态负载情况。

技术实现思路

[0005]本申请提供了一种协程管理方法,业务服务器创建协程后运行该协程,在运行协程时确定该协程实际占用内存资源的资源量。然后,根据协程实际占用内存资源的资源量,将与该协程对应的会话中的初始资源量更新为目标资源量,使得后续获取新的任务请求后,基于目标资源量确定该协程实际占用内存资源的资源量。以节约业务服务器的内存资源,提高业务服务器的并发能力,适应系统动态负载。
[0006]有鉴于此,本申请一方面提供一种协程管理方法,包括:
[0007]获取第一任务请求,其中,第一任务请求用于请求创建第一会话和第一协程,第一会话与第一协程对应,第一会话携带针对第一协程的初始资源量;
[0008]响应于第一任务请求,根据第一会话所携带的初始资源量确定第一内存资源;
[0009]当使用第一内存资源运行第一协程时,确定第一协程实际占用内存资源的资源量;
[0010]根据第一协程实际占用内存资源的资源量,确定目标资源量,其中,目标资源量大于或等于第一协程实际占用内存资源的资源量;
[0011]将第一会话中的初始资源量更新为目标资源量。
[0012]本申请另一方面提供一种协程管理装置,包括:
[0013]收发模块,用于获取第一任务请求,其中,第一任务请求用于请求创建第一会话和第一协程,第一会话与第一协程对应,第一会话携带针对第一协程的初始资源量;
[0014]处理模块,用于响应于第一任务请求,根据第一会话所携带的初始资源量确定第一内存资源;
[0015]处理模块,还用于当使用第一内存资源运行第一协程时,确定第一协程实际占用内存资源的资源量;
[0016]处理模块,还用于根据第一协程实际占用内存资源的资源量,确定目标资源量,其中,目标资源量大于或等于第一协程实际占用内存资源的资源量;
[0017]处理模块,还用于将第一会话中的初始资源量更新为目标资源量。
[0018]在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
[0019]处理模块,还用于根据第一协程实际占用内存资源的资源量,从内存资源池集合中确定第一内存资源池,其中,第一内存资源池中每个内存资源块提供的资源量大于或等于第一协程实际占用内存资源的资源量;
[0020]处理模块,还用于将第一内存资源池中内存资源块所对应的资源量作为目标资源量
[0021]在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
[0022]处理模块,还用于根据第一协程实际占用的内存资源的资源量,从内存资源池集合中确定第一内存资源池,其中,第一内存资源池中每个内存资源块提供的资源量大于或等于第一协程实际占用内存资源的资源量;
[0023]处理模块,还用于当第一内存资源池中的内存资源块处于非空闲状态时,从内存资源池集合中确定第二内存资源池,第二内存资源池中每个内存资源块提供的资源量大于或等于第一内存资源池中每个内存资源块提供的资源量;
[0024]处理模块,还用于将第二内存资源池中内存资源块所对应的资源量作为目标资源量。
[0025]在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
[0026]处理模块,还用于当内存资源池集合中提供可用的内存资源块的内存资源池的数量为0时,创建第三内存资源池,第三内存资源池中每个内存资源块提供的资源量大于或等于第一协程实际占用内存资源的资源量;
[0027]处理模块,还用于从第三内存资源池中内存资源块所对应的资源量作为目标资源量。
[0028]在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
[0029]处理模块,还用于当第三内存资源池中内存资源块未被使用时,释放第三内存资源池。
[0030]在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
[0031]内存资源池集合包括一个或多个内存资源池;
[0032]内存资源池集合中同一个内存资源池所包括的内存资源块提供的资源量相同;
[0033]内存资源池集合中不同内存资源池所包括的内存资源块提供的资源量呈梯度排列。
[0034]在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
[0035]收发模块,还用于获取第二任务请求,其中,第二任务请求用于请求创建第二会话;
[0036]处理模块,还用于根据第一会话和第二会话,确定第一会话和第二会话共有的第一函数;
[0037]处理模块,还用于创建基类会话,基类会话包括第一函数,使得第一会话和第二会话复用基类会话。
[0038]在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
[0039]收发模块,还用于获取来自第二业务服务器的第一任务请求;
[0040]处理模块,还用于根据第一任务请求,向第二业务服务器发送响应消息,响应消息中携带的序列号与第一会话对应的序列号一致。
[0041]本申请另一方面提供一种计算机设备,包括:存储器、处理器以及总线系统;
[0042]其中,存储器用于存储程序;
[0043]处理器用于执行存储器中的程序,处理器用于根据程序代码中的指令执行上述各方面的方法;
[0044]总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
[0045]本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
[0046]本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种协程管理方法,其特征在于,包括:获取第一任务请求,其中,所述第一任务请求用于请求创建第一会话和第一协程,所述第一会话与所述第一协程对应,所述第一会话携带针对所述第一协程的初始资源量;响应于所述第一任务请求,根据所述第一会话所携带的所述初始资源量确定第一内存资源;当使用所述第一内存资源运行所述第一协程时,确定所述第一协程实际占用内存资源的资源量;根据所述第一协程实际占用内存资源的资源量,确定目标资源量,其中,所述目标资源量大于或等于所述第一协程实际占用内存资源的资源量;将所述第一会话中的所述初始资源量更新为所述目标资源量。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一协程实际占用内存资源的资源量,确定目标资源量,包括:根据所述第一协程实际占用内存资源的资源量,从内存资源池集合中确定第一内存资源池,其中,所述第一内存资源池中每个内存资源块提供的资源量大于或等于所述第一协程实际占用内存资源的资源量;将所述第一内存资源池中所述内存资源块所对应的资源量作为所述目标资源量。3.根据权利要求1所述的方法,其特征在于,所述根据所述第一协程实际占用内存资源的资源量,确定目标资源量,包括:根据所述第一协程实际占用的内存资源的资源量,从内存资源池集合中确定第一内存资源池,其中,所述第一内存资源池中每个内存资源块提供的资源量大于或等于所述第一协程实际占用内存资源的资源量;当所述第一内存资源池中的内存资源块处于非空闲状态时,从所述内存资源池集合中确定第二内存资源池,所述第二内存资源池中每个内存资源块提供的资源量大于或等于所述第一内存资源池中每个内存资源块提供的资源量;将所述第二内存资源池中所述内存资源块所对应的资源量作为所述目标资源量。4.根据权利要求1所述的方法,其特征在于,所述根据所述第一协程实际占用内存资源的资源量,确定目标资源量,包括:当内存资源池集合中提供可用的内存资源块的内存资源池的数量为0时,创建第三内存资源池,所述第三内存资源池中每个内存资源块提供的资源量大于或等于所述第一协程实际占用内存资源的资源量;从所述第三内存资源池中所述内存资源块所对应的资源量作为所述目标资源量。5.根据权利要求4所述的方法,其特征在于,所述将所述第一会话中的所述初始资源量更新为所述目标资源量之后,所述方法还包括:当所述第三内存资源池中所述内存资源块未被使用时,释放所述第三内存资源池。6.根据权利要求2

5中任一项所述的方法,其特征在于,...

【专利技术属性】
技术研发人员:聂晓冬
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1