【技术实现步骤摘要】
线程分配方法及装置
本专利技术属于计算机应用领域,尤其涉及一种线程分配方法及装置。
技术介绍
集群计算技术近年来来称为计算机界研究的一个热点。集群不但能够充分利用现有的计算资源,而且能够通过较低的软硬件代价实现较高性能的计算机系统。在多集群同时运行的环境下,各个集群的性能存在差异。例如,高性能的集群A可能会对另外一个集群B存在依赖,而集群B的性能却低于集群A的性能。当集群A运行在高并发请求的环境中,而且集群A频繁向集群B并发请求,在这种情况下,集群A高并发的请求有可能会造成集群B的抖动或者崩溃,导致集群B不能稳定性的提供服务,最终导致灾难事故发生。目前,为了保证集群B能够为集群A提供稳定的服务,可以增加集群B中的机器数量,这样当集群A频繁向集群B发送请求时,集群B出现抖动或者崩溃等现象的频率就会大大降低,但是这种通过增加机器资源来提高集群B性能的方法,而当集群A向集群B发送的请求并不是频繁时,增加的机器资源就会出现的浪费现象。
技术实现思路
本专利技术提供一种线程分配方法及装置,用于解决通过增加所依赖集群的机器资源,来减少所依赖的集群出现抖动或者崩溃的风险,往往会导致 ...
【技术保护点】
一种线程分配方法,其特征在于,包括:获取目标集群所依赖的依赖集群允许的最大每秒查询率;在对待处理的目标请求分配线程时,获取所述目标集群与所述依赖集群之间的响应时间;获取所述目标集群正在使用的当前线程数;基于所述最大每秒查询率、所述响应时间以及所述当前线程数,获取目标集群的可分配线程数;获取所述目标请求的所需线程数;判断所述目标请求所需线程数是否小于等于所述可分配线程数;如果所述所需线程数小于等于所述可分配线程数,则为所述目标请求分配相应的线程。
【技术特征摘要】
1.一种线程分配方法,其特征在于,包括:获取目标集群所依赖的依赖集群允许的最大每秒查询率;在对待处理的目标请求分配线程时,获取所述目标集群与所述依赖集群之间的响应时间;获取所述目标集群正在使用的当前线程数;基于所述最大每秒查询率、所述响应时间以及所述当前线程数,获取目标集群的可分配线程数;获取所述目标请求的所需线程数;判断所述目标请求所需线程数是否小于等于所述可分配线程数;如果所述所需线程数小于等于所述可分配线程数,则为所述目标请求分配相应的线程。2.根据权利要求1所述的方法,其特征在于,基于所述最大每秒查询率、所述响应时间以及所述当前线程数,获取所述目标集群的可分配线程数的具体公式为:N=(M-Qt*Ct)/Qt;其中,N表示所述可分配线程数;M表示所述最大每秒查询率;Ct表示当前线程数;Qt表示单线程每秒查询率,Qt=1/RT,RT表示所述响应时间。3.根据权利要求1所述的方法,其特征在于,所述获取所述目标集群与所述依赖集群之间的响应时间,包括:获取预设时长内的历史响应时间;基于所述历史响应时间获取所述响应时间。4.根据权利要求1所述的方法,其特征在于,所述获取所述目标集群与所述依赖集群之间的响应时间,包括:启动用于实时测量响应时间的专用线程;通过所述专用线程实时测量,以获取所述响应时间。5.根据权利要求3所述的方法,其特征在于,所述基于所述历史响应时间获取所述响应时间,包括:剔除所述历史响应时间中的异常响应时间,以得到剩余的历史响应时间;计算所述剩余的历史响应时间的算术平均值;将所述算术平均值作为所述响应时间。6.根据权利要求1所述的方法,其特征在于,所述获取所述目标请求的所需线程数,包括:获取所述目标请求对应的拆解任务量;判断所述拆解任务量是否超出预设的最大任务量;如果判断结果为拆解任务量超出所述最大任务量,则将所述最大任务量作为所述目标请求的目标任务量;根据预设的单个任务所需的线程数和所述目标任务量,计算所述目标请求的所需线程数。7.根据权利要求6所述的方法,其特征在于,还包括:如果判断结果为拆解任务量未超出所述最大任务量,则根据所述单个任务所需的线程数和所述拆解任务量,计算所述目标请求的所需线程数。8.根据权利要求1所述的方法,其特征在于,所述如果所述所需线程数小于等于所述可分配线程数,则为所述目标请求分配相应的线程,包括:在判断出所述所需线程数小于等于所述可分配线程数时,获取处理所述目标请求所需的处理时间;将所述处理时间与预设的时间阈值进行比较;如果所述处理时间小于所述时间阈值,则为所述目标请求分配相应的线程。9.根据权利要求8所述的方法,其特征在于,还包括:如果所述处理时间大于等于所述时间阈值,则将所述目标请求放置到等待队列中进行排队,等待下一次线程分配。10.根据权利要求9所述的方法,其特征在于,还包括:在所述目标请求排队等待下次线程分配时,当满足预设的优先级设置条件时,将所述目标请求的优先级设置为最高;当所述可分配线程数大于等于所述所需线程数时,直接为所述目标请求分配对应的线程。11.根据权利要求8所述的方法,其特征在于,在判断出所述所需线程数小于等于所述可分配线程数时,获取处理所述目标请求所需的处理时间,包括:根据所述响应时间计算出单线程每秒查询率;获取所述单线程每秒查询率与所述可分配线程数的乘积;获取所述目标请求对应的数据量与所述乘积的比值;将所述比值作为所述处理时间。12.根据权利要求1所述的方法,其特征在于,所述获取目标集群所依赖的依赖集群允许的最大每秒查询率之后,还包括:将所述目标集群的自身允许的最大每秒查询率设置成所述依赖集群的最大每秒查询率。13.根据权利要求12所述的方法,其特征在于,还包括:在执行所述目标请求的过程中,实时监测当前的响应时间;如果当前的响应时间在持续时间间隔内大于所述响应时间时,利用所述时间间隔内监测的当前的响应时间,计算一个修正后的响应时间;获取所述响应时间与所述修正后的响应时间做比值,并将所述比值作为修正系数;利用所述修正系数对所述单个任务所需的线程进行调整;利用所述修正系数对所述目标集群的所述最大每秒查询率进行调整。14.一种线程分配装置,其特征在于,包括:查询率获取模块,用于获取目标集群所依赖的依赖集群允许的最大每秒查询率;响应时间获取模块,用...
【专利技术属性】
技术研发人员:赵凯,朱志强,杜华兵,王力,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。