基于实时计算的资源分配方法及系统技术方案

技术编号:14859978 阅读:116 留言:0更新日期:2017-03-19 12:21
本申请适用于互联网技术领域,提供了一种基于实时计算的资源分配方法,包括步骤有:获取每台机器上报的多维度的可用资源数;获取应用申请的至少一个维度的需求资源数;根据所述应用的所述需求资源数和所述机器的所述可用资源数,按照维度为所述应用分配资源。相应地,本申请还提供一种基于实时计算的资源分配系统。借此,本申请能够在实时计算机系统中对机器资源按照多维度进行资源分配,可实现机器资源的最大化使用,彻底解决实时计算机系统中任务分配不均衡问题。

【技术实现步骤摘要】

本申请涉及互联网
,尤其涉及一种基于实时计算的资源分配方法及系统
技术介绍
在Storm或JStorm等实时计算系统中,每一应用(topology)都是一数据流水线处理系统,每一级处理单元都需申请一些资源,该资源通常是worker进程,而一个worker进程运行在一台机器上的某个端口,并拥有若干处理器(CPU)、内存(Memory)、硬盘(Disk)、网络(Network)等资源。因此需设资源分配算法,分配一些worker给该应用。现有实时计算中对资源进行分配时,通常只有一个维度。每台机器上设置了一个slot(任务槽)列表,每一个slot是所有可用资源的集合,包含硬盘、处理器、内存、网络等,每个应用的资源数据几乎相同。但在真实场景中,应用对不同资源的需求并不同,单维度资源分配算法会造成大量的资源浪费,无法实现资源最大化利用。举例来说:1、不同的任务,对资源的需求量是不一样的,假设在一个应用中,spout(线程)组件只需1G内存,而bolt(线程)组件需8G内存,最终在应用申请的状况就是,每一个任务(task)都申请8G内存,这样spout就会浪费大量内存。spout为从外界获取数据的计算节点,bolt为普通的计算节点。2、假设应用是处理器类型的,一台机器只能允许10个该类应用同时运行,但该类应用对内存需求量不大,若按照内存的能力,实际可允许运行20个该类应用,但由于slot是一个资源集合,根据短板效应,导致这台机器上最多设置10个slot,内存资源没有充分使用。3、假设一台机器上同时运行的瓶颈在处理器和内存的应用,这时计算slot数就非常困难,只能取一个保守值做为最终使用值,这个保守值可能是最多运行处理器类型的slot数和最多运行内存类型的slot数的最小值,因为无法确认最终实际在机器运行的状况,到底是处理器类型的多还是内存类型的多。综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
技术实现思路
针对上述的缺陷,本申请的目的在于提供一种基于实时计算的资源分配方法及系统,其能够在实时计算机系统中对机器资源按照多维度进行资源分配,可实现机器资源的最大化使用,彻底解决实时计算机系统中任务分配不均衡问题。为了实现上述目的,本申请提供一种基于实时计算的资源分配方法,包括步骤有:获取每台机器上报的多维度的可用资源数;获取应用申请的至少一个维度的需求资源数;根据所述应用的所述需求资源数和所述机器的所述可用资源数,按照维度为所述应用分配资源。根据本申请所述的资源分配方法,所述获取每台机器上报的多维度的可用资源数的步骤包括:获取每台所述机器上报的多维度的所述可用资源数,包括硬盘可用任务槽数、处理器可用任务槽数、内存可用任务槽数、网络可用任务槽数之一或其任意组合。根据本申请所述的资源分配方法,所述获取应用申请的至少一个维度的需求资源数的步骤包括:获取所述应用申请的硬盘需求任务槽数、处理器需求任务槽数、内存需求任务槽数、网络需求任务槽数之一或其任意组合;所述根据所述应用的所述需求资源数和所述机器的所述可用资源数,按照维度为所述应用分配资源的步骤包括:根据所述应用的所述硬盘需求任务槽数、所述处理器需求任务槽数、所述内存需求任务槽数、所述网络需求任务槽数之一或其任意组合,以及所述机器的所述硬盘可用任务槽数、所述处理器可用任务槽数、所述内存可用任务槽数、所述网络可用任务槽数之一或其任意组合,按照维度为所述应用分配资源。根据本申请所述的资源分配方法,所述硬盘可用任务槽数=硬盘个数;或者所述处理器可用任务槽数=(处理器核数–1)*处理器基数;或者所述内存可用任务槽数=(物理内存大小/单内存任务槽大小)*80%;或者所述网络可用任务槽数=最大网络带宽/每个任务槽所需带宽。根据本申请所述的资源分配方法,所述应用包括多个任务和进程组件;当所述任务或所述进程组件的默认需求资源数无法满足应用需求时,所述应用根据所述应用需求申请更多的所述需求资源数。根据本申请所述的资源分配方法,所述获取应用申请的至少一个维度的需求资源数的步骤还包括:根据每台所述机器上报的多维度的所述可用资源数生成当前机器列表;所述根据所述应用的所述需求资源数和所述机器的所述可用资源数,按照维度为所述应用分配资源的步骤包括:对所述应用中的所有任务,按照每个所述任务申请的所述需求资源数进行排序;根据所排顺序计算各所述任务在每个维度申请的需求资源数;从所有机器中找出满足每个所述任务的所述需求资源数的机器列表,并将所述任务分配给所述机器列表对应的机器。根据本申请所述的资源分配方法,所述从所有机器中找出满足每个所述任务的所述需求资源数的机器列表,并将所述任务分配给所述机器列表对应的机器的步骤还包括:若从所有机器中无法找出满足所述任务的所述需求资源数的所述机器列表,则判定所述任务的资源分配失败。根据本申请所述的资源分配方法,所述任务申请的所述需求资源数的权值由高至低依次是所述硬盘需求任务槽数、所述处理器需求任务槽数、所述内存需求任务槽数和所述网络需求任务槽数;所述从所有机器中找出满足每个所述任务的所述需求资源数的机器列表,并将所述任务分配给所述机器列表对应的机器的步骤包括:第一分配子步骤,若所述任务申请了所述硬盘需求任务槽数,则从满足所述硬盘需求任务槽数的所述当前机器列表中,将所述任务分配到所述硬盘可用任务槽数最多的第一机器上,若所述硬盘可用任务槽数最多的第一机器有多个则进行下一轮分配步骤;第二分配子步骤,若所述任务申请了所述处理器需求任务槽数,若所述处理器可用任务槽数最多的所述第二机器只有一个,则将所述任务分配到所述第二机器上,若所述处理器可用任务槽数最多的第二机器有多个则进行下一轮分配步骤;第三分配子步骤,若所述任务申请了所述内存需求任务槽数,若所述内存可用任务槽数最多的所述第三机器只有一个,则将所述任务分配到所述第三机器上,若所述内存可用任务槽数最多的第三机器有多个则进行下一轮分配步骤;第四分配子步骤,若所述任务申请了所述网络需求任务槽数,若所述网络可用任务槽数最多的所述第四机器只有一个,则将所述任务分配到所述第四机器上,若所述网络可用任务槽数最多的第四机器有多个,则进行下一轮分配步骤;第五分配子步骤,根据预定规则从所述第四机器中选择一个第五机器,将所述任务分配到所述第五机器本文档来自技高网
...

【技术保护点】
一种基于实时计算的资源分配方法,其特征在于,包括步骤有:获取每台机器上报的多维度的可用资源数;获取应用申请的至少一个维度的需求资源数;根据所述应用的所述需求资源数和所述机器的所述可用资源数,按照维度为所述应用分配资源。

【技术特征摘要】
1.一种基于实时计算的资源分配方法,其特征在于,包括步骤有:
获取每台机器上报的多维度的可用资源数;
获取应用申请的至少一个维度的需求资源数;
根据所述应用的所述需求资源数和所述机器的所述可用资源数,按照维度
为所述应用分配资源。
2.根据权利要求1所述的资源分配方法,其特征在于,所述获取每台机器
上报的多维度的可用资源数的步骤包括:
获取每台所述机器上报的多维度的所述可用资源数,包括硬盘可用任务槽
数、处理器可用任务槽数、内存可用任务槽数、网络可用任务槽数之一或其任
意组合。
3.根据权利要求2所述的资源分配方法,其特征在于,所述获取应用申请
的至少一个维度的需求资源数的步骤包括:
获取所述应用申请的硬盘需求任务槽数、处理器需求任务槽数、内存需求
任务槽数、网络需求任务槽数之一或其任意组合;
所述根据所述应用的所述需求资源数和所述机器的所述可用资源数,按照
维度为所述应用分配资源的步骤包括:
根据所述应用的所述硬盘需求任务槽数、所述处理器需求任务槽数、所述
内存需求任务槽数、所述网络需求任务槽数之一或其任意组合,以及所述机器
的所述硬盘可用任务槽数、所述处理器可用任务槽数、所述内存可用任务槽数、
所述网络可用任务槽数之一或其任意组合,按照维度为所述应用分配资源。
4.根据权利要求3所述的资源分配方法,其特征在于,所述硬盘可用任务
槽数=硬盘个数;或者
所述处理器可用任务槽数=(处理器核数–1)*处理器基数;或者
所述内存可用任务槽数=(物理内存大小/单内存任务槽大小)*80%;或者
所述网络可用任务槽数=最大网络带宽/每个任务槽所需带宽。
5.根据权利要求3所述的资源分配方法,其特征在于,所述应用包括多个
任务和进程组件;当所述任务或所述进程组件的默认需求资源数无法满足应用
需求时,所述应用根据所述应用需求申请更多的所述需求资源数。
6.根据权利要求3所述的资源分配方法,其特征在于,所述获取应用申请

\t的至少一个维度的需求资源数的步骤还包括:
根据每台所述机器上报的多维度的所述可用资源数生成当前机器列表;
所述根据所述应用的所述需求资源数和所述机器的所述可用资源数,按照
维度为所述应用分配资源的步骤包括:
对所述应用中的所有任务,按照每个所述任务申请的所述需求资源数进行
排序;
根据所排顺序计算各所述任务在每个维度申请的需求资源数;
从所有机器中找出满足每个所述任务的所述需求资源数的机器列表,并将
所述任务分配给所述机器列表对应的机器。
7.根据权利要求6所述的资源分配方法,其特征在于,所述从所有机器中
找出满足每个所述任务的所述需求资源数的机器列表,并将所述任务分配给所
述机器列表对应的机器的步骤还包括:
若从所有机器中无法找出满足所述任务的所述需求资源数的所述机器列
表,则判定所述任务的资源分配失败。
8.根据权利要求6所述的资源分配方法,其特征在于,所述任务申请的所
述需求资源数的权值由高至低依次是所述硬盘需求任务槽数、所述处理器需求
任务槽数、所述内存需求任务槽数和所述网络需求任务槽数;
所述从所有机器中找出满足每个所述任务的所述需求资源数的机器列表,
并将所述任务分配给所述机器列表对应的机器的步骤包括:
第一分配子步骤,若所述任务申请了所述硬盘需求任务槽数,则从满足所
述硬盘需求任务槽数的所述当前机器列表中,将所述任务分配到所述硬盘可用
任务槽数最多的第一机器上,若所述硬盘可用任务槽数最多的第一机器有多个
则进行下一轮分配步骤;
第二分配子步骤,若所述任务申请了所述处理器需求任务槽数,若所述处
理器可用任务槽数最多的所述第二机器只有一个,则将所述任务分配到所述第
二机器上,若所述处理器可用任务槽数最多的第二机器有多个则进行下一轮分
配步骤;
第三分配子步骤,若所述任务申请了所述内存需求任务槽数,若所述内存
可用任务槽数最多的所述第三机器只有一个,则将所述任务分配到所述第三机
器上,若所述内存可用任务槽数最多的第三机器有多个则进行下一轮分配步骤;
第四分配子步骤,若所述任务申请了所述网络需求任务槽数,若所述网络
可用任务槽数最多的所述第四机器只有一个,则将所述任务分配到所述第四机
器上,若所述网络可用任务槽数最多的第四机器有多个,则进行下一轮分配步
骤;
第五分配子步骤,根据预定规则从所述第四机器中选择一个第五机器,将
所述任务分配到所述第五机器上。
9.根据权利要求8所述的...

【专利技术属性】
技术研发人员:封仲淹陈昱
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1