分布式系统中周期性聚集的数据的关联方法

文档序号:6467505阅读:179来源:国知局
专利名称:分布式系统中周期性聚集的数据的关联方法
技术领域
所公开的本发明广义上涉及分布式信息处理系统的领域,更具 体地涉及计算分布式组件迟滞时间的领域。
背景技术
监控是维持计算机系统的可用性、性能和安全所必须的。从盛 行的多层商用系统到新兴的面向服务的环境,许多现代分布式系统 都是面向事务的。由于这些系统在尺寸上增大并且跨越了地理/组织 界限,所以用户请求(即,事务)必须要通过日益增大的组件集来
追踪,以确保他们的服务质量(QoS)目标得到满足。
诸如花费在组件上的事务时间、事务成功/失败率以及资源使用 统计的结果数据收集自(潜在的)大量分布式资源,并且经常报告 给用于重要管理活动的中央位置,所述重要管理活动包括问题定 位和补救、性能分析和预报,以及闭环资源供应。为了在考虑系统 级QoS目标的情况下执行这些任务,从不同组件收集的数据必须以 端到端的方式进行关联。
可以通过在仪器点(instrumentation point)范围内浮动与每个事 务一起的唯一ID并且将组件度量捆绑至特定事务,或者使用与事务 相关的数据之间的时间关系,在每个事务级进行这种关联。尽管每 个事务关联便于微观理解和控制系统行为,但是其具有如下风险 网络充满监控数据以及对web应用引入显著过量(例如8.4%)的开 销。
为了克服这种潜在的抑制性缺点,其它方式对组件数据进行批 处理并在预先选定的时间段终点报告它们的聚集体(例如,平均耗 时)。聚集数据的周期性报告大大降低了所导致的网络流,并且通
4过在线调谐/分析过程,使得监控机制更经得起负载较重的环境以及 更有使用价值。然而,由于事务ID在聚集过程中丢失,所以当前根 据聚集数据被报告时所在的时间段来关联来自不同组件的聚集数据。
由于在事务从上游组件来到下游组件的时间"迟滞",在这两 个组件上针对同 一 事务进行的测量可能不在同 一 时间段内报告。换 言之,报告自不同组件并且根据时间段关联的数据可能不是来自相 同的事务组。当遇到重要的自发功能时,这种不匹配可能会产生误
导,所述重要的自发功能包括较慢的端到端响应时间的根本原因 分析和响应时间预测。

发明内容
简要地说,根据本发明的实施方式, 一种用于计算分布式组件 迟滞时间的方法包括如下步骤或动作为待处理的所述多个事务中 的事务组确定事务路径;为所述事务路径中的多个组件确定从每个 组件上工作的开始到每个组件上工作的完成的耗时的分布;确定所 述事务路径最后组件上工作的完成与所述事务路径最后组件上报告
所述工作的时间之间的偏差的分布;以及组合组件库毛时的分布和组 件偏差分布的集体分布,来计算所述事务路径中每个组件的事务迟滞。
该方法也可以实施为由可编程信息处理系统执行的机器可执行 指令,或者实施为诸如专用集成电路(ASIC)的专用计算设备中的 石更编码逻辑。


为了描述上述和其它示例性的目的、方面和优点,使用下面参 考附图的本发明示例性实施方式的详细描述,其中
图.1为显示根据本发明实施方式的示例性三层系统中的组件、 以及按照相邻组件之间 一 系列请求和响应形式的事务所采耳又的^各径示意图2为显示示例性分布式系统中事务在每个组件上消耗的时间
的示意图3为显示在示例性分布式环境中事务终止的时刻与关于该事 务的全部统计在数据报告时间段的终点处被报告的时刻之间的偏差 的示意图4为显示根据本发明实施方式的、在示例性分布式系统中事 务的每个消息的事务迟滞的示意图; 图5为一般迟滞计算算法的流程图6显示了根据本发明实施方式的、在相对简单的三层场景中 的迟滞计算;
图7演示了根据本发明实施方式的、在替换的场景中的迟滞计 算;以及
图8为根据本发明实施方式的、方法的处理步骤的高层流程图。
尽管所要求的本发明可以被修改为多种替换形式,但是本发明 的具体实施方式
通过附图中的示例性方式得到展现,并将在此详细
描述。然而,应当理解,这里的附图和详细描述并不意于将本发明 限制为所公开的具体形式,而是相反地,意图是覆盖落入本发明范 围之内的所有修改、等同替换以及可选方案。
具体实施例方式
正确地关联周期性聚集的数据本质上是这样的问题,即,识别
据报告迟滞。描述了一种计算机实施的方法,用于利用工作流信息 和下游组件或上游组件的迟滞时间来计算分布式组件迟滞时间。数 据报告迟滞是在事务结束的时刻与事务的(子)响应/请求离开任意 一跳/那一瞬间之间的时间迟滞。利用参考时间段,数据报告迟滞为 下面两个偏差的和
报告偏差O-在最终事务响应离开分布式系统(最终事务完成)
6的时刻与参考时间段的结束瞬间之间的间隔;
事务迟滞TL-在最终事务响应离开分布式系统(最终事务完成) 的时刻与相应的(子)请求/响应离开任意一跳/的时刻之间的迟滞。 TL的值是在第1跳与第/跳之间逐跳请求/响应迟滞(Per-h叩 Request/Response Lags )(在任意一跳A: ( 一2,3,…)处理请求/响 应所用的时间)的积累。
系统的每个节点按照事务进行的反向路径而排列。这些数值按 照递归方式使用,根据下游系统的相同数值更新每一跳级的迟滞。 因为这一过程的递归方式,所以很容易地实施该过程。该过程将使 得当前动态统计的驱动系统管理算法更精确,并使得能够以较低的 开销进行详细的监控。
现今分布式系统的典型例子为商用数据中心,其包括但不限于 三个组件分层Web服务器121、应用服务器122以及数据库123 (还使用的其它组件有防火墙、加速器、排队组件、代理,等等)。 在这些环境中,用户事务通常接触每层的一个组件,从而触发在如 图1所示的相邻组件之间的一系列请求/响应消息101-106。
现在参考附图,具体参考图1,图1中显示了示例性三层分布式 系统中的组件以及按照相邻组件之间 一 系列请求(如右箭头所示) 和响应形式进行的事务路径。
参照图2,图2中显示了在示例性分布式系统中、在每个组件上 耗费的每一事务的处理时间。该耗时包括用来处理请求的、基于 组件的时间(ET/eq,其中x为组件),以及处理和生成相应的响应 所耗费的时间(ET/esp,其中x为组件)。
图2显示了在类似于图1所示系统的示例性三层分布式系统中、 在每层上用于事务的基于组件的请求和响应处理时间。这些统计通 常在请求和后续的响应离开该层时分别测量。例如,在应用服务器 222处,进入的请求202导致由ETeqAs212表示的耗时测量,后续的 响应204导致由ET,As215表示的耗时测量。
存在诸如数据库层223的例外,那里不能画出清楚的界限来分开请求和响应处理时间,并且它们作为整体在时间213内测量。可 以清楚地看到,横跨不同跳的数据报告迟滞。Ereqws211在时间段3 被聚集和报告,ETreqAS 212、 ETreqDB+ETrespDB 213在时间段2, ETrespAS 215在时间段1,而ETesPws216和整体响应时间在时间段0。为了正 确地关联耗费的时间,必须区分这四个确切的时间段。
通过将引起延迟的组件当作其它任意的工作负载处理组件(其 可以当作组件插入其它任意的组件之间,并相应地被测量),这些 应用组件之间的延迟(例如,网络延迟等等)被整合到本技术中。
图3为显示在三层分布式系统中的报告偏差311的示意图。其 显示了示例性分布式环境中事务结束(消息[306],其是对事务的整 体响应)的时刻与关于事务的整体统计(例如端到端响应时间)在 数据报告时间段的终点被报告的时刻之间的偏差。
所述偏差是消息306 (最终事务响应)离开系统(经由web服务 器321 )的时刻与参考时间段的终止瞬间312之间的时间差。相对于 只是由于事务处理引起的迟滞(如图4)而言,报告偏差占(任何正 在讨论的组件的)迟滞的一部分,该迟滞由事务处理和聚集数据报 告之间的异步引起的。
图4为显示了示例性分布式系统中事务的每个消息/ (请求或响 应)的事务迟滞(TL,)的示意图。图4显示了示例性三层分布式系 统中、特定事务的所有消息(请求/响应)401-406的事务迟滞TL 411-TL 416。这是在最终事务响应406在web服务器421被才艮告的 时刻与相应的(子)请求/响应离开其被处理/生成的那跳的时刻之间 的迟滞。
每个事务迟滞是跳级(hop level)迟滞(即,用来为所考虑的事 务处理后续请求和生成后续响应的时间)的累积(不用必须是简单 的求和)。举例而言,该图中的事务迟滞TL 411 (用于请求401的 报告)是处理请求401、 402和403以及生成响应和处理响应404、 405和406所耗费的时间的积累。
图5是一般迟滞计算算法的流程图。该算法接收参考(当前)报告时间段、报告偏差统计、工作流有向非循环图(DAG)和迄今 收集的聚集数据来作为输入。追踪两个迟滞数值的每个顶点v:事务 迟滞LO),其是算法被设计用来导出的、最长的统计路径长度;以 及每跳请求/响应迟滞W(v),其是与v相关的权重(每跳迟滞)。两 个量都是统计的,并且为概率分布的形式。
迟滞计算的方法强烈依赖于针对事务类型和相关环境的工作流 DAG。认为工作流DAG中每个顶点代表处理i青求或响应的组件的部 分,并标注有相应的每跳请求/响应迟滞时间(即,耗时)。
迟滞估计问题可以形式化为寻找在最后一个顶点与其它任意 顶点之间的统计最长加权路径。针对用于DAG的基本最长路径算法 的显著且必要扩展在于权重(即,每跳迟滞时间)不是在最初静 态地给定,而是通过利用新计算的事务迟滞来确定在过去的时间段 内报告的、正确的每跳迟滞时间信息,从而动态获得。
再次参照图5,在算法的开始(步骤l),顶点首先按照它们的 反向拓朴顺序被排序。DAG中的最长路径问题是递归的,因为找到 至任意顶点v的最长路径等价于找到至它所有后继顶点的最长路径 然后取这些路径的长度以及它们连接到v的相应权重的最大和。因 此,算法以反向拓朴序列遍历所有顶点,从而确保它所有后继顶点 在估计顶点v的迟滞时已经被覆盖。
在开始阶段的第二个任务(步骤2)看到所有权重(每跳迟滞) 和迟滞的初始化为零,除了最后顶点的迟滞被设置为偏差O。最后 的分配符合以下事实最后顶点的实际耗时数据总是在事务结束的 时间段内报告。这个最后顶点不具有事务迟滞,它所受到的唯一迟 滞是报告偏差。
当执行进行到主循环(循环3)时,两种类型的计算以交替的次 序发生对当前顶点v的权重(耗时,每跳迟滞)更新(步骤31), 随后是,对当前顶点v的每个直接上游顶点w(事务)迟滞更新(步 骤32)。这种交替背后的原因是(事务)迟滞L(w)的计算需要v 的权重W(v),而W(v)需要L(v)来确定。反过来,估计L(v)依靠其所有下游节点的权重(每跳迟滞)等等。如果当前顶点迟滞和耗时的 和大于上游顶点迟滞(40),那么上游顶点迟滞必须被更新为所述
和(32 )。
在外迭代的开始时(循环3) , LO)保持v的最终迟滞数值。这 是因为,它所有后继的事务迟滞由于工作流D A G的遍历方式而已经 被覆盖,并且被用来更新L(v),而v的关联的每跳迟滞数据W(v)可 以利用L(v)来确定。如果L(v)+W(v)在统计上长于当前L(w),则v的 每个直接上游节点w的事务迟滞L(wM皮更新为L(v)+W(v)。
存在许多方式来定义这种关系,例如P(L(v)+W(v)〉LO))〉50%, 或者E(L(v)+W(v)>E(L(w)),等等。迟滞更新确保L(w)保持最新的统 计上最长的路径数值。注意,耗时数据的关联已经在该算法的权重 更新过程中完成。
如果存在任何更多顶点要遍历,则重复循环(循环4),否则过 程结束。
图6示出了在相对简单的三层场景中的迟滞计算,其中只有一 条从工作流最后顶点(事务结束处)到其它每个顶点的路径。
出于示意的目的,所有迟滞被假设为遵循正态分布形式N(mcy), 其中p为平均值并且cj为标准差。所有收集的监测数据(即n和o 的值)以及由此得到的权重是设计的。报告偏差设置为O=N(5,0)。 除了 WS106的迟滞以外,迟滞估计初始化所有的每跳迟滞(显示在 顶点的上面)和事务迟滞(显示在顶点的下面)为零。由于WS 106 是事务结束的地方,并且报告的数据没有受到事务迟滞,所以WS 106的迟滞^f皮初始化i殳置为0。
首先,当执行进入迭代OO,利用L(,106)=N(5,0),获得在web 服务器响应部分WS 106上耗费的时间。具有web服务器响应部分 d106)的关联的耗时数据,如同在事务结束时间段(即参考时 间段O)中报告的那样。确定的数据用来对^J06执行权重(每跳 迟滞)更新。随后,进行迟滞更新步骤02,因为应用服务器(AS 105) 的响应处理部分是唯一的上游节点。它的迟滞简单地为UWS服HW(WSm丄对M_105 (迭代10 ) 、 (迭代20 ) 、 DB 103 (迭
代30 ) 、 AS 102 (迭代40 )以及WS 101 (迭代50 )重复上面叙述 的更新模式,因为它们以反向拓朴序列来遍历。
因为算法在迭代50中结束,最后访问的节点(WS 101 )的权重 (即,每跳迟滞)被确定。已经得出所有节点的迟滞。在这点上, 如果应用不涉及耗时,那么最后节点的权重确定不是必须的,并且 不需要针对WS 101的迟滞更新步骤。所产生的迟滞分布现在可以按 照与执行算法时确定权重完全相同的方式,用于将任意感兴趣的数 据关联到当前时间段的应用。
图7示意了在两方面更复杂的场景中的迟滞计算。首先,在迟 滞更新阶段可以有多于 一 个的上游节点,这意味着算法的内循环可 以被执行多于一次。其次,工作流(IL108)的最后节点具有到该工 作流中某些节点的、多于一个的路径,并且这些节点中每个的迟滞 由统计上最长的加权路径产生。出于示意的目的,所有数值以及随 后的权重(即每跳迟滞)再次被设计,并且报告偏差被设置为常数 O=N(0.5,0)。
迭代00是发生第一个复杂情况的示例。在IL 108的权重更新之 后,IRL107和IRR106的迟滞都在内循环中更新,因为两者的迟滞 都由IL108上的每跳迟滞(即权重)组成。
第二个复杂情况在针对MJ03响应部分的迟滞估计期间发生。 在迟滞更新阶段32期间,WL 103被更新为经由路径IL 108 - IL 107 -IRL105的迟滞,其为L(IL108)+WQL108)。然而,之后在迭代40 中,该迟滞被替换为通过路径IL108 -IL106 -IRR104的在统计上更长 的一个。这个最新的迟滞被用来寻找ffl^103的耗时数据。
图8是上述处理的高层流程图800。处理从步骤810开始,为待 处理的多个事务中的事务组确定事务路径。接着,在步骤820中处 理继续进行,为该事务路径中多个工作处理组件确定从每个组件上 工作的开始到每个组件上工作的终止的耗时的分布。
进行步骤830,确定该事务路径最后组件上工作的完成与该事务路径最后组件上报告这一工作的时间之间的偏差的分布。最后,在
步骤840中,组合组件耗时的集体分布和组件偏差的分布,来计算 事务路径中每个组件的事务迟滞。
因此,虽然已经描述了目前被认为是优选实施例的内容,但是 本领域普通技术人员应当理解,在本发明的精神内可以进行其它改 进。上述实施方式的描述并不是意于对范围详尽的或限制的描述。 选择所描述的实施方式是为了解释本发明的原理,展示其部分应用, 并使得本领域普通技术人员能够理解如何去实现和使用本发明。应 当理解,本发明并不局限于上述实施方式,而是应该在所附权利要 求的全部含义和范围内解释。
权利要求
1. 一种用于针对多个事务计算分布式组件迟滞时间的计算机实施的方法,包括为待处理的所述多个事务中的事务组确定事务路径;为所述事务路径中的多个组件确定从每个组件上工作的开始到每个组件上工作的完成的耗时的分布;确定所述事务路径的最后组件上工作的完成与所述事务路径的最后组件上报告所述工作的时间之间的偏差的分布;以及组合组件耗时的分布和组件偏差的集体分布,来计算所述事务路径中每个组件的事务迟滞。
2. 根据权利要求1所述的计算机实施的方法,其中为事务组确 定事务路径包括按照反向拓^卜顺序对所述事务路径进行排序。
3. 根据权利要求1所述的计算机实施的方法,进一步包括通 过插入延迟作为其它任意组件之间的组件并相应地测量该延迟,将 组件之间的延迟整合到所述方法中。
4. 根据权利要求1所述的计算机实施的方法,其中确定所述事 务路径的步骤包括执行具有表示为顶点的组件的工作流有向非循 环图,其中所述有向非循环图标注有相应的耗时。
5. 根据权利要求4所述的计算机实施的方法,进一步包括动 态地计算耗时。
6. 根据权利要求4所述的计算机实施的方法,进一步包括按 照反向拓朴顺序对顶点进行排序。
7. 根据权利要求6所述的计算机实施的方法,进一步包括按 照所述反向拓朴顺序遍列所述顶点。
8. 根据权利要求7所述的计算机实施的方法,进一步包括执行 下列交替的迭代获得当前顶点的所述耗时;以及使用当前顶点的所述耗时来更新当前顶点的直接上游顶点的事务迟滞。
9. 根据权利要求8所述的计算机实施的方法,进一步包括使用下游顶点的事务迟滞来确定所述耗时。
10. 根据权利要求8所述的计算机实施的方法,进一步包括使 用可用来导出所述耗时的其它任何数据的事务迟滞,来确定所述耗
全文摘要
本发明公开了一种用于计算分布式组件迟滞时间的计算机实施的方法,包括为待处理的所述多个事务中的事务组确定事务路径;为所述事务路径中的多个组件确定从每个组件上工作的开始到每个组件上工作的完成的耗时的分布;确定所述事务路径的最后组件上工作的完成与所述事务路径的最后组件上报告所述工作的时间之间的偏差的分布;以及组合组件耗时的分布和组件偏差的集体分布,来计算所述事务路径中每个组件的事务迟滞。
文档编号G06F9/46GK101425023SQ20081017069
公开日2009年5月6日 申请日期2008年10月30日 优先权日2007年10月31日
发明者J·A·比文斯, 睿 张 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1