在多租户架构中确定每个租户的资源使用率的方法和系统的制作方法

文档序号:7916771阅读:179来源:国知局
专利名称:在多租户架构中确定每个租户的资源使用率的方法和系统的制作方法
技术领域
本发明涉及多租户架构,更具体地涉及用于在多租户架构中确定每个租户的资源使用率的方法和系统。
背景技术
软件即服务(SaaS, Software as a Service )是一种新兴的软件交付模型。与传统的软件交付方式不同,SaaS以在线方式来提供服务,无需用户进行安装、升级以及维护,并且用户可以随时随地通过互联网进行访问。另外,与传统的软件交付方式相比,用户每月只需支付较低的费用即可获得非常优良的服务。
SaaS应用通常基于多租户架构。图la至图le示意性地示出了在多租户架构的发展过程中的几种多租户架构的图示。
图1 (a)示出了第一级别的多租户架构的框图,其中,不同的租户独占不同的实例,每个实例都是专为每个租户而定制的。然而,由于服务于每个租户的每个实例都不同,所以服务提供商的运营成本较大。图1 (b)示出了第二级别的多租户架构的框图,其中为不同的租户提供服务的实例都是相同的。然而,在应用规模不大的情况下,为每个租户都提供独占的相同实例,这是一种浪费。因此,在第三级别的多租户架构中,如图1 (c)所示,不同的租户共享一个相同的实例。然而,在租户增多的情况下,需要对负荷进行平衡,因此第三级别的多租户架构已不能满足服务需求。为此,在第四级别的多租户架构中,如图1 (d)所示,通过租户负荷平衡器来基于租户的优先级对服务请求的处理进行排序,以便实现负荷平衡。
随着应用规模的进一步扩大,第四级别的多租户架构也已经不能满足日益增加的租户需求。正是在这种情况下,出现了第五级别的多租户架构。如图1 (e)所示,在第五级别的多租户架构中,多个
租户在租户负荷平衡器的管理下共享多个相同的实例。租户负荷平衡器可以根据各个实例所驻留的设备的计算能力及负荷和/或租户的优先级,将租户的服务请求分发给各个实例,以便由各个实例为租户提供服务。在该第五级别的多租户架构中,还配备有供多个实例共享的简单逻辑存储器,以便用来存储需要由多个实例共享的数据。在多租户架构中,计费通常是一个重要的问题。在第五级别的多租户架构中,通常采用两种方式计费。 一种是固定月租,即对于订购服务的所有租户都收取同样的费用。不同租户对资源的使用率是通常是不同的,但是根据这种计费方式却要求所有租户支付相同的费用,因此,这是一种简单但是非常不公平的方式。另一种方式是按照时间来计费,这种方式在一定程度上体现了公平,但是计费所依据的时间是租户在线的时间。另外,服务提供商所提供的服务包括大量的功能,而每个租户具有不同的功能需求。并且,通常每个租户对同一功能的操作次数也不同,甚至为执行同一功能的操作所消耗的资源也是不同的。因此, 一种更加公平的计费方式是依据每个租户的资源使用率来进行计费。然而,根据现有技术,却无法得到每个租户的资源使用率。
因此,在本技术领域,非常需要一种在多租户架构中确定每个租户的资源使用率的方式。

发明内容
为此,本发明提供了 一种用于确定每个租户的资源使用率的方式。
根据本发明的第一方面,提供了一种用于在多租户架构中确定
每个租户的资源使用率的方法。所述方法包括在包含多个预定时间间隔的时段内,记录每种资源在每个预定时间间隔内的总消耗;获取每个租户在每个预定时间间隔内调用每个操作的总次数;根据在该时段内获取的多个所述总次数和多个所述总;肖耗,计算每种资
7源在每个操作期间的消耗;以及根据所计算的每种资源在每个操作期间的消耗以及每个租户在每个预定时间间隔内调用每个操作的总次数,计算该时段内每个租户对每种资源的使用率。
在另一优选的实施例中,所述方法还可以进一步包括在资源消耗的抖动超过预定阈值时,在精确模式下执行以下步骤在操作即将开始时,获取与该操作对应的租户的标识;监视每种资源在该操作期间的消耗;建立所述每种资源在该操作期间的消耗到所述租户的标识的映射;以及根据所述映射,确定每个租户对于每种资源的使用率。
根据本发明的第二方面,提供了一种用于确定每个租户的资源使用率的系统。所述系统包括资源总消耗记录器,用于在包括多个预定时间间隔的时段内,记录每种资源在每个预定时间间隔内的总消耗;操作跟踪器,用于获取每个租户在每个预定时间间隔内调用每个操作的总次数;操作消耗计算器,用于根据在该时段内获取的多个所述总次数和多个所述总消耗,计算每种资源在每个操作期间的消耗;以及资源使用率计算器,用于根据计算得到的每种资源在每个操作期间的消耗以及每个租户在每个预定时间间隔内调用每个操作的总次数,计算该时段内每个租户对每种资源的使用率。
在另一优选的实施例中,所述系统进一步包括资源消耗代理,用于在精确模式中监视每种资源在每个操作期间的;'^f耗;服务事件监视器,用于在所述精确模式中在操作即将开始时获取与该操作对应的租户的标识,以及建立所述每种资源在该才喿作期间的消耗到所述租户的标识的映射;资源使用率确定装置,用于在精确模式中根据所述映射,确定每个租户对于每种资源的使用率;以及模式选择器,用于计算资源消耗的抖动,以及根据该抖动是否大于预定阈值时来选择是否启用所述精确模式。
通过本发明,可以通过统计方式或者精确测量的方式得到每个租户的资源使用率,进而可以将得到资源使用率用于计费和租户负荷平衡。
8


通过对结合附图所示出的实施方式进行详细说明,本发明的上述以及其他特征将更加明显,本发明附图中相同的标号表示相同或相似的部件。在附图中,
图la-le示意性地示出了第一至第五级别的多租户架构的框图2示意性地示出了根据本发明一个实施例用于确定每个租户的资源使用率的方法的流程图3示出了根据本发明一个实施例用于获取与操作对应的租户的标识的方法的过程示意图4示意性地示出了根据本发明另一实施例用于确定每个租户的资源使用率的方法的流程图5示意性地示出了根据本发明一个实施例用于确定每个租户的资源使用率的系统的方框图6示意性地示出了根据本发明另一实施例用于确定每个租户的资源使用率的系统的方框图;以及
图7示意性示出了适于实施本发明的计算机系统的结构方框图。
具体实施例方式
在下文中,将参考附图通过实施例对本发明提供的用于在多租户架构中确定每个租户的资源使用率的方法进行详细的描述。
图2示意性地示出了根据本发明一个实施例用于确定每个租户的资源使用率的方法的流程图。图2示出的是一种通过统计学的方法来计算每个租户的资源使用率的方法。为了描述方便,在此假设诸如持续时间为几小时的时段被分成若干个预定的时间间隔T,T2, ..., Tn;该所租户架构中,租户的数目为m,即包括租户1,租户2,…,租户m;服务所提供的操作(与服务所提供的功能对应)数目假设为p,即服务总共包括操作O。 02, ..., Op。下面将参考图2,对所述方法进4亍详细描述。如图2所示,在步骤201,在包含多个预定时间间隔的时段内,
记录每种资源在每个预定时间间隔内的总消耗。
在每个时间间隔T,至Tn内,记录每种资源的总消耗。需要记录
总消耗的资源可以包括中央处理单元(CPU, Central Processor Unit)、存储器等。在下文中,将以CPU和存储器为例进行说明,但并发明并不局限于此。CPU和存储器每个时间间隔内的总消耗可以通过分别对CPU和存储器进行监视来获取。CPU资源在每个预定时间间隔T,, T2..., Tn内的总消耗可以以周期数cl, c2…,cn来表示,存储器在每个预定时间间隔TV T2..., Tn内的总消耗可以以字节数bl,b2…,bn来表示。
接着,在步骤202,获取每个租户在每个预定时间间隔内调用每个操作的总次数。
在现有的多租户架构中,租户通常通过诸如超文本传输协议(HTTP, Hypertext Transfer Protocol)的网络协议来接受服务,在这种情况下,在诸如HTTP日志的网络日志中,通常记录有与每个租户调用每个操作相关的信息。因此,通过访问HTTP日志,并根据该HTTP日志中与在每个预定时间间隔内该租户调用每个操作相关的信息,可以得到每个租户,即租户1,租户2,...,租户m在每个预定时间间隔T!, T2..., Tn内调用每个操作O,, 02..., Op(的总次数Njjk (其中i=l至n, j=l至m, k=l至p )。例如,通过以预定时间间隔的开始和终止时间、租户的标识(ID )以及操作的ID对HTTP日志中的信息进行统计,就可以得到在预定时间间隔Ti内租户j访问每个操作Ok的总次数Nijk。
然而,本发明并不仅限于此。也可以通过一种实时的方式来获取预定时间间隔Ti内租户j的访问#:作Ok的总次数Nijk。
在现有技术中,在Java虛拟机(JVM, Java Virtual Machine)核心层,并不知道目前的操作针对的是哪个租户。但是在应用层,该信息却是可以获得的。正如本领域人员所了解的那样,在租户登录时,租户会输入自己的ID,并且在该租户发出的服务请求中也会包含该租户的ID,所以可以从该请求中获取租户的ID。因此,可以设法将该信息从应用层传递到JAVA虚拟机核心层。
在一个实施例中,可以在操作即将开始时,获取与该操作对应的租户的ID,然后使该租户在预定时间间隔内调用该操作的总次数加1。图3示出了根据本发明一个实施例用于获取与操作对应的租户的ID的方法。在该实施例中,在JWM核心级别中设置有专用于存储该租户的ID特定的存储位置,在获取服务请求中包含的租户的ID后,将其写入到该特定的存储位置,以便替换所存储的原有的租户ID。或者备选地,将所获取的租户ID信息存储在应用层的配置文件中。在该实施例中,在通过监视上下文而捕获到操作即将开始事件时,可以由类装载器将加入有指示操作即将开始事件的边界信息的类文件加载到JVM核心层。该类文件被加载到类存储库后,执行到服务即将开始事件的边界信息的操作语句时,将触发消息使得监视JVM核心层的监视装置可以得知获取租户ID的时机,并可以响应于该服务即将开始事件从预定的存储器位置或者配置文件来获取租户ID。
在又一实施例中,可以在捕获到操作即将开始事件时,将获取的租户ID直接写入到类文件中,将并将该类文件加载到JVM核心层。监视JVM核心层的装置可以监听得到操作即将开始事件,然后读耳又类文件内的斥且户ID。
在得到了与即将开始的操作对应的租户的ID后,就可以在例如操作开始、操作结束或操作期间的任何时刻,使该租户在该预定时间间隔内调用该操作的总次数加1。通过这种方式,也可以得到每个租户在每个预定时间间隔内的调用每个操作的总次数。
然后,在步骤203,根据在该时段内获取的多个所述总次数和多个所述总消耗,计算每种资源在每个操作期间的消耗。
根据在步骤202得到的每个预定时间间隔Tj内每个租户j访问每个操作Ok的总次数Np,可以得到在每个预定时间间隔Ti期间调
用操作Ok的总次数c^二l;c^。此外,将在该段时间内每种操作Ok(k=l至p )所消耗的存储器资源和CPU资源分别假设为未知数xl, x2, xp和未知数yl, y2,…,yp。因此,对于存储器资源消耗, 可以根据上述数据,得到如下n个等式El至En:
Tl:011xxl+012xx2+,…,Olpxxp-bl 等式El
T2:021xxl+022xx2+,…,02pxXp=b2 等式E2
Tn:Onlxxl+On2xx2+, …,Onpxxp=bn 在上述等式中,存在p个未知数,即xl, x2,.,
可以从上述n个等式中取出例如等式El至等式Ep,
阵方程
Ox=b 其中,例如,
—Oil 012 .Olp _—xl__bl —
0 =021 022..02px2,b =b2
,x =
Opl Op2. Opp—bp—
等式En ,,xp。因此, 来构成一个矩
方程(1 )
根据上述方程可以得到增广矩阵 —Oil 012 ... Olp bl —
021 022 ... 02p b2
Ob= p
Opl Op2 ... Opp bp
对于上述的矩阵方程,如果RANK (O) =RANK ( Ob ),则可 以求解出x=0—b。
对于CPU,同样可以得到下式
Tl: 011xyl+012xy2+, ..., 01pxyp=Cl 等式El, T2:021xyl+022xy2+,…,02pxyp=c2 等式E2,
Tn:Onlxyl+On2xy2+, …,O叩xyp二cn 等式En,
在上述等式中,同样存在p个未知数,即yl, y2, ..., yp。因 此,可以从上述n个等式中取出等式例如El,至等式Ep,,来构成一
12个矩阵方程:
Oy=c 其巾
方程(r)
<formula>formula see original document page 13</formula>
根据上述方程可以得到增广矩阵 —Oil 012 ... Olp cl —
021 022 ... 02p c2
Ob= P
Opl Op2 ... Opp cp
因此对于上述的矩阵方程,如果RANK (O) =RANK ( Oc ), 则可以求解出y=CTc。
可以将根据方程(1 )和方程(1,)所求出的每个操作对每种资 源的消耗作为整个时段内每种操作的总消耗,但是本发明并不局限 于此。
也可以基于上述与时间间隔T1 - T n对应的等式E1至E n以及E1, 至En,求出更多的结果。例如,对于存储器资源,可以分别利用等式 E2至Ep+1 、E3至Ep+2,...En画p十1至En构成的方禾呈来分另'J求出n-P+1 个解。以便可以据此计算出供选择使用的多个资源使用率。
另外,需要说明的是,例如对于上述方程(1),构成该方程的 等式El至Ep中可能存在一个或多个可以约减的方程。在这种情况 下,可能无法求出xl至xp中每一个的值,结果得到的可能只是一 个关系式。这时可以不再考虑El至Ep所得到的结果,而用诸如等 式E2至Ep+1构成的方程继续进行求解。备选地,可以将根据方程 (1 )求解出来的关系式与等式Ep+l构成新的方程,以便求出xl至 xp中每一个的^f直,并且该过程可以重复直至求出xl至xp中每一个 的值。需要说明的时,上述的方法对于计算每个操作所消耗的CPU 资源也同样适用。接着,在步骤204,根据所计算的每种资源在每个操作期间的消
耗及每个租户每个预定时间间隔内调用每个操作的总次数,计算该 时段内每个租户对每种资源的使用率。
在步骤202后,已经确定了每个租户j在每个预定时间周期Tj 内调用每个操作Ok的总次数Oijk,并且已经得到了在每个操作所消 耗的存储器资源xk (其中k=l至p)。因此,将所述总次数Oijk分 别乘以每个操作所消耗的资源xk,就可以的得到租户j在每个预定时 间间隔内消耗的存储器资源& (其中i=l至n, j=l至m ),即
k=l
同样,将总次数Op分别乘以每个操作所消耗的CPU资源yk, 就可以的得到租户j在每个预定时间间隔内消耗的CPU资源% (其 中i=l至n, j=l至m),即
<formula>formula see original document page 14</formula>
将每个预定时间间隔内消耗的总资源bij和Cij分別除以该预定时 间间隔内所消耗的总资源bi和ci,即可得到每个租户j在每个预定 时间间隔Tj内对于每种资源的使用率。
通过上述方法,就可以计算得到每个租户对每种资源的资源消 耗率。从上面的描述可以看出,该方法是基于这样的假设,即不同 操作消耗的资源不同。然而,事实上,不同的租户对于相同操作所 消耗的资源通常也是不同的,诸如对于查看操作, 一个租户需要查 看的信息仅仅是很几条,而另一租户却可能要查看海量信息。因此, 为了更加精确的计算,还可以进一步基于这样的假设来计算每个租 户的资源使用率,即在该时段内,不同租户对于相同操作的资源消 耗不同。基于上面描述的方法,同样可以计算得到每个租户对于每 个操作的消耗。然而不同的是,在这种情况下,由于服务提供的操 作数目为p,租户的数目为m,所以未知数的数目是pxm,因此也需 要在pxm个时间间隔内得到的数据来构成矩阵方程,以便求解出这 pxm个未知数。然而,这只是本发明的一种变型,其仍包括在本发明的范围内。
下面,将参考图4对根据本发明另一实施例用于确定每个租户 的资源使用率的方法进行描述,该方法与图2所示的方法不同,该 方法是一种通过实时测量来更加精确地确定每个租户对于每种资源 的使用率的方法。
首先,在步骤401,在服务即将开始时,获取与该操作对应的租
户的ID。
正如在前面提到的那样,在现有技术中,在Java虚拟机核心层, 并不知道目前的操作针对的是哪个租户。但是在应用层,该信息却 是可以获得的。因此可以将该信息从应用层传递到JAVA虛拟机核 心层。因此可以将该信息从应用层传递到JAVA虛拟机核心层。在 上面参考步骤202的描述中,已经描述了获取与该操作对应的租户 的ID的多种实施例。因此,此处省略了对其的详细描述。
接着,在步骤402,监视每种资源在每个操作期间的消耗。
可以通过监视资源';肖耗事件来测量每种资源在每个操作器件的 总消耗。在一个实施例中,在监视到资源消耗事件时,指示开始测 量每种资源的资源消耗,在资源消耗事件结束时,指示取出测量的 资源消耗值。需要以不同的方式来每种资源消耗的测量,可以利用 现有技术中已知的方式来实现。
然后,在步骤403,建立所述每种资源在每个操作期间的消耗到 所述考且户的ID的映射。
在得到每个操作期间对于每种资源的总消耗后,可以将其与该 租户对应,即建立所述每种资源在每个操作期间的消耗到所述租户 的ID的映射。
接着,在步骤404,根据所述映射,确定每个租户对于每种资源 的使用率。
在得到上述映射之后,通过利用租户ID和时间段的起始和结束 时间以及资源种类对映射进行查询,就可以到每个租户j在对于每种 资源的较为精确的消耗x和y 。并且可以根据每个租户对于每种资源
15的消耗以及每种资源的总消耗,得到每个租户对于每种资源的资源 使用率。
因此,与前面参考图2描述的方法相比,图4所示的方法是一 种更加精确的方法,但是也需要消耗更多的资源。因此优选的是,
仅在资源抖动超过预定阈值时,才执行图4的方法。
在一个实施例中,该预定阈值是比值,其可以根据经验设置,
例如为5%。在该实施例中,资源的抖动是此次所得到的x值与前一 次得到的x'值的误差率e。例如,如果操作k的误差率ek为 ek=xk-xk'/(xk) (k=l,…p,其中p为操作的数目),则误差率e可以 为
然后,可以根据该值e与所设置的预定阈值的大小,来确定在随 后的时间间隔中是否要执行精确模式的操作。
在另一实施例中,该预定阈值是与历史的资源消耗的差值,其 可以根据历史的资源消耗值来设置。在该实施例中,资源抖动可以 为此次得到的xk或yk值与前一次得到xk,和yk,的误差值e,。例如, 如果对于存储器资源,操作k的误差ek,为ek,=xk-xk' (k=l,…p, 其中p为操作的数目),则e,可以为
因此,可以根据该值e,与所设置的预定阈值的大小,来确定在 随后的时间间隔中是否执行这种精确模式的操作。
需要说明的是,在上述关于资源抖动的实施例中,每种操作的 资源消耗xk以及xk,可以是统计得到的资源消耗也可以是通过精确 测量得到的资源消耗。另外,在确定需要以精确模式来测量资源使 用率的情况下,可以同时寺丸4t统计。这样,就可以确定相同的预定 时间间隔内统计方式与精确模式得到的资源使用率的误差,例如, 误差率、差值等,进而可以基于该误差确定在随后的时间间隔是否 采用精确模式。为了简单起见,该资源消耗的抖动还可以是前后两
1 p 1 p
k k=i k k=i
IX2,等等。。
优选地,本发明的方法还可以进一 步包括基于所计算的该时段 内每个租户对每种资源的使用率、所述精确模式中确定的每个租户 对于每种资源的使用率以及所述抖动,确定每个租户在该时段内对 于每种资源的综合使用率。在该步骤中,可以根据所述抖动的大小, 确定是选择利用统计方式计算的使用率还是选择在精确模式下测量 的使用。然后,可以根据预定的策略,确定已经选择的使用率中最 大一个、最小的一个、时刻最近的一个以及该时段内平均资源使用 使用率和加权平均使用率等作为该时段内的每个租户的资源使用 率。需要说明的是,还可以将统计得到的资源使用率和精确测量的 资源使用率的综合值(诸如其平均值、加权平均值等)作为该时段 内的资源使用率。
优选地,本发明的方法还可以包括使用得到的每个租户的资源 使用率的步骤。
在一个实施例中,可以将得到的资源使用率用于计费。例如对
于每种资源使用率,例如CPU和存储器,可以指定单位使用率的价
要支付的费用。计费所基于的资源使用率可以是以下其中的 一种或
者多种基于统计方法所计算的该时段内每个租户对每种资源的使 用率;所述精确模式中确定的每个租户对于每种资源的使用率;和 每个租户对于每种资源的综合使用率。
在另一实施例中,可以将得到的资源使用率用于租户负荷平衡。 由于本发明的资源使用率与租户对应,因此与现有技术不同,本发 明可以针对租户进行负荷调整。例如,可以将资源使用率大的租户 分配给所驻留的计算设备的计算能力较强的实例,或者为其开设新 的实例。进行负荷调整所基于的资源使用率可以是以下其中的一种 或者多种基于统计方法所计算的该时段内每个租户对每种资源的 使用率;所述精确模式中确定的每个租户对于每种资源的使用率; 和每个租户对于每种资源的综合使用率。需要说明的是,在上面描述了在总资源消耗的抖动超过预定阈 值时才执行图4的方法的实施例,然而本发明并不局限于此。图4 的方法可以作为一种独立确定每个租户的资源使用率的方法来执行。
在下面,将参考图5-图6来详细描述根据本发明实施例用于确 定每个租户的资源使用率的系统。
图5示出了根据本发明一个实施例确定每个租户的资源使用率 的系统。如图5所述,所述系统500包括资源总消耗记录器501, 操作跟踪器502,操作消耗计算器503以及资源使用率计算器504。
其中,资源总消耗记录器501用于在包括多个预定时间间隔的 时段内,记录每种资源在每个预定时间间隔内的总消耗;操作跟踪 器502用于获取每个租户在每个预定时间间隔内调用每个操作的总 次数;操作消耗计算器503用于根据在该时段内获取的多个所述总 次数和多个所述总消耗,计算每种资源在每个操作期间的消耗;资 源使用率计算器504用于根据计算得到的每种资源在每个操作期间 的消耗以及每个租户在每个预定时间间隔内调用每个操作的总次 数,计算该时段内每个租户对每种资源的使用率。
在一个实施例中,所述操作跟踪器502可以通过执行以下操作 来获得所述总次数访问超文本传输协议日志;以及根据所述超文 本传输协议日志中与该租户在每个预定时间间隔内调用每个操作相 关的信息,确定所述总次数。在另一实施例中,所述操作跟踪器502 通过执行以下操作来获得所述总次数在操作即将开始时,获取与 该操作对应的租户的标识;以及使该租户在该预定时间间隔内调用 该^捧作的总次数加1。
关于资源总消耗记录器501 、操作跟踪器502、操作消耗计算器 503以及资源使用率计算器504的具体操作,请参考在上文中参考图 2的详细描述。
通过图5示出的系统500可以以统计的方式得到每个租户对于 每种资源的使用率。此外,图6还示出了了根据本发明另一实施例
18确定每个租户的资源使用率的系统。
如图6所述,所述系统600包括资源总消耗记录器601,操作 跟踪器602,操作消耗计算器603、资源使用率计算器604、资源消 耗代理605、服务事件监视器606、资源使用率确定装置607以及模 式选择器608。
在图5中,资源总消耗记录器601对应于图5中的资源总消耗 记录器501;操作跟踪器602对应于图5中的操作跟踪器502;操作 消耗计算器603对应于图5中的操作消耗计算器503;资源使用率计 算器604对应于图5中的资源使用率计算器504。
此外,资源消耗代理605用于在精确模式中监视每种资源在每 个操作期间的消耗,其可以根据现有技术来实现。在一个实施例中, 资源消耗代理605可以包括资源消耗事件监视器以及与每种资源相 对应的多个适配器。资源消耗事件监视器用于监视资源消耗事件, 并在监视到资源消耗事件时,指示所述多个适配器开始测量每种资 源的资源消耗,在资源消耗事件结束时,指示该多个适配器取出测 量的资源消耗值。多个适配器分别对应于每种资源,并以适合于每 种资源的测量方式对每种资源的消耗进行测量,并且可以将所有的 资源消耗转换成相同的格式。
另外,服务事件监视器606用于在所述精确模式中在操作即将 开始时获取与该才喿作对应的租户的标识,以及建立所述每种资源在 该操作期间的消耗到所述租户的标识的映射。资源使用率确定装置 607用于在精确模式中根据所述映射,确定每个租户对于每种资源的 使用率;以及模式选择器608,用于计算资源消耗的抖动,并根据该
在一个实施例,如图6所示的系统600,还可以进一步包括阈值 调节器,用于基于历史的资源消耗来设置所述预定阈值。
在另一实施例中,所述服务事件监视器606通过执行以下操作 来获得所述租户的标识监视到写入有边界信息的类文件时,从存 储租户ID的预定存储器位置或者配置文件获取租户的标识,其中,所述类文件在操作即将开始时被载入。
在另一实施例中,所述系统600进一步包括资源消耗综合器, 用于基于所计算的该时段内每个租户对每种资源的使用率、所述精
确定每个租户在该时段内对于每种资源的综合使用率。
关于图6中的资源消耗代理605、服务事件监视器606、资源使 用率确定装置607、模式选择器608以及资源消耗综合器的具体操 作,可以参见上面参考图4对本发明的方法的描述。
通过图6示出的系统600,就可以在资源抖动较大时,确定采用 精确模式,从而可以得到更加精确的资源使用率。
在另一实施例中,本发明的系统500或600还可以进一步包括 租户负荷平衡器,用于根据以下其中至少之一执行租户负荷平衡 所计算的该时段内每个租户对每种资源的使用率;所述精确模式中 所确定的每个租户对于每种资源的使用率;以及所述综合使用率。
在再一实施例中,本发明的系统500或600还可以进一步包括 计费装置,用于根据以下其中至少之一计算每个租户需要支付的费 用所计算的该时段内每个租户对每种资源的使用率;所述精确模 式中所确定的每个租户对于每种资源的使用率;以及所述综合使用 率。
下面,将参考图7来描述可以实现本发明的计算机设备。图7 示意性示出了可以实现根据本发明的实施例的计算设备的结构方框图。
图7中所示的计算机系统包括CPU (中央处理单元)701、 RAM (随机存取存储器)702、 ROM (只读存储器)703、系统总线704、 硬盘控制器705、键盘控制器706、串行接口控制器707、并行接口 控制器708、显示器控制器709、硬盘710、键盘711、串行外部设 备712、并行外部设备713和显示器714。在这些部件中,与系统总 线704相连的有CPU701、 RAM 702、 ROM 703、硬盘控制器705、 键盘控制器706、串行接口控制器707、并行接口控制器708和显示
20器控制器709。硬盘710与硬盘控制器705相连,键盘711与键盘控 制器706相连,串行外部设备712与串行接口控制器707相连,并 行外部设备713与并行接口控制器708相连,以及显示器714与显 示器控制器709相连。
图7所述的结构方框图仅仅为了示例的目的而示出的,并非是 对本发明的限制。在一些情况下,可以根据需要添加或者减少其中 的一些设备。
此外,本发明的实施例可以以软件、硬件或者软件和硬件的结 合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储 在存储器中,由适当的指令执行系统,例如微处理器或者专用设计 硬件来执行。
虽然已经参考目前考虑到的实施例描述了本发明,但是应该理 解本发明不限于所公开的实施例。相反,本发明旨在涵盖所附权利 要求的精神和范围内所包括的各种修改和等同布置。以下权利要求 的范围符合最广泛解释,以便包含所有这样的修改及等同结构和功能。
权利要求
1.一种用于在多租户架构中确定租户的资源使用率的方法,包括在包含多个预定时间间隔的时段内,记录每种资源在每个预定时间间隔内的总消耗;获取每个租户在每个预定时间间隔内调用每个操作的总次数;根据在该时段内获取的多个所述总次数和多个所述总消耗,计算每种资源在每个操作期间的消耗;以及根据所计算的每种资源在每个操作期间的消耗以及每个租户在每个预定时间间隔内调用每个操作的总次数,计算该时段内至少一个租户对每种资源的使用率。
2. 根据权利要求1所述的方法,其中所述获取每个租户在每个 预定时间间隔内调用每个操作的总次数包括访问超文本传输协议日志;以及根据所述超文本传输协议日志中与该租户在每个预定时间间隔 内调用每个操作相关的信息,确定所述总次数。
3. 根据权利要求1所述的方法,其中所述获取每个租户在每个 预定时间间隔内调用每个操作的总次数包括在操作即将开始时,获取与该操作对应的租户的标识;以及 使该租户在该预定时间间隔内调用该操作的总次数加1 。
4. 根据权利要求1所述的方法,进一步包括在资源消耗的抖动 超过预定阈值时,在精确模式下执行以下步骤在操作即将开始时,获取与该操作对应的租户的标识; 监视每种资源在该操作期间的消耗;建立所述每种资源在该操作期间的消耗到所述租户的标识的映 射;以及根据所述映射,确定每个租户对于每种资源的使用率。
5. 根据权利要求4所述的方法,其中所述预定阈值基于历史的资源消耗来设置。
6. 根据权利要求4所述的方法,其中获取与该操作对应的租户的标识包4舌在操作即将开始时,载入写入有边界信息的类文件; 监视到所述写入有边界信息的类文件时,从存储租户的标识的 预定存储器位置或者配置文件获取租户的标识。
7. 根据权利要求4所述的方法,进一步包括基于所计算的该时段内每个租户对每种资源的使用率、所述精定每个租户在该时段内对于每种资源的综合使用率。
8. 根据权利要求1所述的方法,进一步包括 根据以下其中至少之一执行租户负荷平衡所计算的该时段内每个租户对每种资源的使用率;所述精确模式中确定的每个租户对于每种资源的使用率;以及所述综合使用率。
9. 根据权利要求1所述的方法,进一步包括根据以下其中至少之一计算每个租户需要支付的费用所计算 的该时段内每个租户对每种资源的使用率;所述精确模式中确定的 每个租户对于每种资源的使用率;以及所述综合使用率。
10. —种用于在多租户架构中确定租户的资源使用率的系统,包括资源总消耗记录器,用于在包括多个预定时间间隔的时段内, 记录每种资源在每个预定时间间隔内的总消耗;操作跟踪器,用于获取每个租户在每个预定时间间隔内调用每 个操作的总次数;操作消耗计算器,用于根据在该时段内获取的多个所述总次数 和多个所述总消耗,计算每种资源在每个操作期间的消耗;以及资源使用率计算器,用于根据计算得到的每种资源在每个操作 期间的消耗以及每个租户在每个预定时间间隔内调用每个操作的总 次数,计算该时段内至少 一个租户对每种资源的使用率。
11. 根据权利要求IO所述的系统,其中所述操作跟踪器通过执行以下操作来获得所述总次数 访问超文本传输协议日志;根据所述超文本传输协议日志中与该租户在每个预定时间间隔 内调用每个操作相关的信息,确定所述总次数。
12. 根据权利要求IO所述的系统,其中所述操作跟踪器通过执 行以下操作来获得所述总次数在操作即将开始时,获取与该操作对应的租户的标识;以及 使该租户在该预定时间间隔内调用该操作的总次数加1 。
13. 根据权利要求10所述的系统,进一步包括资源;肖耗代理,用于在精确模式中监视每种资源在每个操作期 间的消库4;服务事件监视器,用于在所述精确模式中在操作即将开始时获 取与该操作对应的租户的标识,以及建立所述每种资源在该操作期 间的消耗到所述租户的标识的映射;资源使用率确定装置,用于在精确模式中根据所述映射,确定 每个租户对于每种资源的使用率;以及模式选择器,用于计算资源消耗的抖动,以及根据该抖动是否 大于预定阈值时来选择是否启用所述精确模式。
14. 根据权利要求13所述的系统,进一步包括阈值调节器,用于基于历史的资源〗肖耗来设置所述预定阈值。
15. 根据权利要求13所述的系统,其中所述服务事件监视器通 过执行以下操作来获得所述租户的标识监视到写入有边界信息的类文件时,从存储租户ID的预定存储 器位置或者配置文件获取租户的标识,其中,所述类文件在操作即将开始时被载入。
16. 根据权利要求13所述的系统,进一步包括资源消耗综合器,用于基于所计算的该时段内每个租户对每种 资源的使用率、所述精确模式中所确定的每个租户对于每种资源的使用率以及所述抖动,确定每个租户在该时段内对于每种资源的综 合使用率。
17. 根据权利要求IO所述的系统,进一步包括租户负荷平衡器,用于根据以下其中至少之一执行租户负荷平 衡所计算的该时段内每个租户对每种资源的使用率;所述精确模 式中所确定的每个租户对于每种资源的使用率;以及所述综合使用率。
18. 根据权利要求10所述的系统,进一步包括计费装置,用于根据以下其中至少之一计算每个租户需要支付 的费用所计算的该时段内每个租户对每种资源的使用率;所述精 确模式中确定的每个租户对于每种资源的使用率;以及所述综合使用率。
全文摘要
本发明公开了一种用于在多租户架构中确定租户的资源使用率的方法和系统。所述方法包括在包含多个预定时间间隔的时段内,记录每种资源在每个预定时间间隔内的总消耗;获取每个租户在每个预定时间间隔内调用每个操作的总次数;根据在该时段内获取的多个所述总次数和多个所述总消耗,计算每种资源在每个操作期间的消耗;以及根据所计算的每种资源在每个操作期间的消耗以及每个租户在每个预定时间间隔内调用每个操作的总次数,计算该时段内至少一个租户对每种资源的使用率。通过本发明,可以通过统计方式或者精确测量的方式得到每个租户的资源使用率,进而可以将得到资源使用率用于计费和租户负荷平衡。
文档编号H04L12/56GK101656657SQ20081013084
公开日2010年2月24日 申请日期2008年8月19日 优先权日2008年8月19日
发明者刘天成, 影 李, 李欣慧 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1