CN104731574A - 用于识别多级工作流处理中的资源瓶颈的方法和系统 - Google Patents
用于识别多级工作流处理中的资源瓶颈的方法和系统 Download PDFInfo
- Publication number
- CN104731574A CN104731574A CN201410687288.4A CN201410687288A CN104731574A CN 104731574 A CN104731574 A CN 104731574A CN 201410687288 A CN201410687288 A CN 201410687288A CN 104731574 A CN104731574 A CN 104731574A
- Authority
- CN
- China
- Prior art keywords
- logic level
- physical resource
- level
- resource
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 title claims description 75
- 230000008569 process Effects 0.000 claims description 31
- 230000008859 change Effects 0.000 claims description 9
- 238000009826 distribution Methods 0.000 claims description 5
- 238000004088 simulation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 20
- 238000004590 computer program Methods 0.000 description 12
- 238000003860 storage Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 8
- 230000005291 magnetic effect Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 229920006395 saturated elastomer Polymers 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
Abstract
识别多级工作流中的资源瓶颈可以包括:识别逻辑级和计算系统中的物理资源的相关性,以确定哪个逻辑级涉及哪组资源;对于每个所识别的相关性,确定物理资源的使用量水平和逻辑级的并发水平之间的函数关系;基于对于每个逻辑级确定的函数关系,估计每个逻辑级对物理资源的消耗;以及基于所估计的消耗来执行预测建模,以确定所述每个逻辑级将成为瓶颈所在的并发水平。
Description
技术领域
本发明总地涉及计算机、计算机应用以及信息处理,并且更具体地涉及识别多级工作流处理的资源瓶颈。
背景技术
现代分布式系统中的信息处理的规模和复杂度的增大已经引起了很多有挑战性的问题。这种分布式处理系统的示例包括处理复杂业务过程工作流的系统、信息/数据流处理系统、管理和配置(provisioning)系统。这种系统可预期应对大量处理请求,因此了解这一量级的系统中的可扩展性问题变得困难。尽管已知的方法在估计端到端的延迟向在端到端的流中涉及的不同节点的分解时使用端到端的测量结果,但是这种方法被限制为了解应用层级的可扩展性,并且可能只能在高层级上(例如在节点层级上)识别瓶颈。
发明内容
在一个方面,一种识别多级工作流处理中的资源瓶颈的方法可以包括:识别逻辑级和计算系统中的物理资源的相关性,以确定哪个逻辑级涉及哪组资源。该方法还可以包括:对于每个所识别的相关性,确定物理资源的使用量水平和逻辑级的并发水平之间的函数关系。该方法还可以包括:基于对于每个逻辑级确定的函数关系,估计每个逻辑级对物理资源的消耗。该方法还可以包括:基于所估计的消耗来执行预测建模,以确定所述每个逻辑级将变为瓶颈所在的并发水平。
在一个方面,一种识别多级工作流处理中的资源瓶颈的系统可以包括模块,该模块可操作以在计算机处理器上执行,并且还可操作以识别逻辑级和计算系统中的物理资源的相关性,以确定哪个逻辑级涉及哪组资源。对于每个所识别的相关性,该模块还可以操作以确定物理资源的使用量水平和逻辑级的并发水平之间的函数关系。该模块还可操作以基于对于每个逻辑级确定的函数关系,估计每个逻辑级对物理资源的消耗。该模块还可操作以基于所估计的消耗来执行预测建模,以确定所述每个逻辑级将变为瓶颈所在的并发水平。
还可以提供一种计算机可读存储介质,其存储可由机器运行以执行在这里描述的一种或多种方法的指令的程序。
下面参照附图来详细描述其他特征以及各种实施例的结构和操作。在附图中,相同的参考标号表示相同或功能上相似的元件。
附图说明
图1是图示一个实施例中的本公开的方法的概述的流程图。
图2是图示本公开的一个实施例中的工作流级和系统资源的框图。
图3图示可以实现本公开的一个实施例中的瓶颈识别系统的示例计算机或处理系统的示意图。
图4示出本公开的一个实施例中的用于对网络仿真进行排队的示例算法。
具体实施方式
在一个方面中,本公开可以提供识别多级工作流的资源瓶颈的改进的方法。在一个方面中,本公开可以提供在逻辑级层级而不是作业层级上将工作流映射到资源,从而提供更细的粒度和瓶颈确定。对于逻辑级和物理资源之间的映射,本公开可以提供在逻辑级层级上识别工作流和物理资源之间的相关性,然后在资源使用率和不同逻辑级的并发水平之间映射,计算导致调度的每一级的使用率,然后对使用量和逻辑级与物理资源之间的交互进行建模。
在一个方面中,本公开研究了一种系统,该系统被设计为以可扩展的方式同时处理很多作业请求,以便充分利用其所有资源并且实现高吞吐量水平。通常,作业请求在其被认为完成之前可能需要经过多个逻辑处理级。逻辑级可对应于例如所述作业执行的应用的源代码中的函数调用。每个逻辑处理级可以由系统中的一个或多个节点处理。这些节点可以是物理计算机或在共享的物理硬件上运行的虚拟机。作业的每个逻辑级消耗一个或多个节点上的一个或多个不同的物理资源(中央处理单元(CPU)、存储器、输入/输出(I/O)、盘和/或其他物理资源)。一些逻辑级可被并行处理,而一些逻辑级必须被依序处理。系统被设计为以可扩展的方式同时应付很多请求,以便充分利用其所有资源并且实现高吞吐量水平。
这种分布式处理系统的示例包括处理复杂业务过程工作流的系统、信息/数据流处理系统、管理和配置系统。具体示例可以是用于云或类似的计算基础架构的虚拟机配置系统。在这样的系统中,用于每个请求的处理级的数量通常在数百的量级上。该系统预期同时应对数千个请求。系统中存在的作业请求可以在每个逻辑级处根据并发水平(即,可以在这些级处并行运行的作业的最大数量)的某个等级被并行地处理。具体地,当这一并发水平等于1时,则在这些逻辑级处,必须依序处理所有作业。可以在软件中显式地施加该并发限制,或者可以由于对共享资源的锁定而进行该并发限制,或者该并发限制可以是有限的硬件资源的结果。
在一个方面中,本公开在系统可扩展性由于硬件资源而受到限制时识别瓶颈资源。在一个方面中,取代在应用吞吐量的背景中研究系统可扩展性,本公开可以在作业中的不同逻辑级的可扩展性上开展深入研究。
识别逻辑级的瓶颈物理资源中的步骤包括:发现该逻辑级和在执行该特定级时涉及的物理资源之间的映射。由于目前大多数软件设计涉及使用可自由获得的、可插入的二进制组件,因此缺乏对于在作业请求的端到端流中涉及的所有逻辑级的清楚了解。在一个方面中,本公开识别作为瓶颈的节点中的物理资源(例如中央处理单元(CPU)/存储器/盘)层级上的瓶颈。这种瓶颈识别在识别由于对系统的物理资源的相应压力而限制可扩展性的软件模式时可以是有用的。
具体地,在一个公开中,本公开可以解决将多级工作流中的逻辑级映射到系统的物理资源的问题。
在一个方面中,在本公开中提供了一种方法,其包括:识别在工作流的不同逻辑级中涉及的物理资源。典型地,工作流经过不同的逻辑(进程层级)级,每个逻辑级消耗一个或多个节点上的一个或多个资源(CPU、存储器、I/O)。这里,节点可以是物理服务器或虚拟机。在每一级中涉及的节点及其资源不是明确知道的。使用利用诸如nmon的工具收集的不同节点的资源使用数据,本公开的实施例中的方法可以识别在工作流级中消耗的资源和(潜在的)瓶颈资源。
在一个方面中,本公开的方法可以不需要网络拓扑或在作业请求的不同级处涉及的节点/资源的任何先验知识。此外,本公开的方法可以以细得多的粒度,例如在与应用层级相对的逻辑级层级上识别资源瓶颈。
图1是图示一个实施例中的本公开的方法的概况的流程图。在102,识别从逻辑级到物理资源的映射。对于每个逻辑级,获得该级中的请求数量(并发水平)104的时间序列(随着时间的级中的请求数量)。此外,例如使用可以收集计算机系统的性能统计数据(例如CPU使用率、存储器使用、内核统计数据、盘I/O速率等)的nmon应用程序(utility)等,收集系统中的所有资源106(所有节点上的CPU、存储器、I/O、盘)的使用量时间序列(随着时间的使用量)。根据这些数据,识别其使用量与所述级的并发水平或并发水平的改变相关联的资源。在执行该级时可能消耗那些资源。例如,这可以通过计算逻辑级的并发水平的时间序列与资源使用量时间序列之间的互相关系数来进行。这样,102处的相关性识别处理确定逻辑级是否与物理资源相关。对于每个节点n,获得在该节点处执行的逻辑级的集合(Sn)。
除了孤立地看每一级以外,本公开的实施例中的方法还可以例如在108识别不同级中的多个有效请求之间的关联。如果两级的执行被耦合(一级的并发水平的单位增大导致另一级的并发的单位下降,反之亦然),则本公开的一个实施例中的方法可以将这两级耦合为一个,并且分析耦合后的级的有效并发水平和资源使用量。
在108处识别资源的合计使用量和级的并发水平之间的关系的一种途径可以是对于级的并发水平的每个单位增大或减小,分析资源使用量的边际改变。由于所述级的不同并发线程之间的高速缓存和资源共享,该边际改变也可以是与状态相关的。因此,在本途径中,本公开的方法不仅可以了解资源使用量的单位改变,还可以了解资源的使用量水平与级的并发水平之间的函数关系。估计一阶或二阶边际改变,在一个实施例中,本公开的方法可以构造该函数的一阶或二阶泰勒表示。
在108处的另一途径是使用递归函数来识别节点处的物理资源(例如CPU)的使用量和在该节点执行的所有逻辑级的并发水平之间的函数关系。使用率是指示作业使用资源的时间的分数(fraction)的0和1之间的值(包括0和1二者)。令n=1,…,N是系统中的物理节点数量,s=1,…,S是作业中的级的数量。令是在节点n执行的逻辑级的集合。令{Un,t}是在节点n的(观察到的)合计资源使用率的时间序列,并且{Cs,n,t},s∈Sn是在节点n执行的级s的(观察到的)并发水平的时间序列。作为示例,令Sn={a,b,c}。该数据的示例在表1中示出。
表1
在表1中,在时刻t=0,存在使用资源的逻辑级b的三个实例以及逻辑级c的一个实例,并且该资源的使用率为0.02。注意,逻辑级a的并发水平0表示该逻辑级在时刻t没有使用该资源。因此,对于每个t,Cs,n,t,s∈Sn是可能能够在该节点上执行的不同级的并发水平的向量。在给定时刻的级的并发水平是在该时刻执行该级的作业的数量。使用该数据,本公开的一个实施例中的方法可以试图识别从{Cs,n,t,s∈Sn}到{Un,t}的映射。此外,如果该映射没有随时间改变,我们可以通过函数Fn来表示这一点,使得Un=Fn(Cs,n,s∈Sn)。这将对于节点n上的并发水平的任何向量(其为在该节点处的不同级中的作业数量的向量)给出节点n上的使用率。可以应用不同的统计技术来了解这一关系,所述统计技术包括线性/非线性递归、机器学习等。
在本公开的一个实施例中,此映射是一般性的,并且可以覆盖范围从处理器(例如CPU)高度密集到存储器高度密集的所有类型的级。
在108中了解了并发水平向量和资源的合计使用率之间的映射之后,在110,在一个实施例中,本公开的方法可以获知当在该节点上只有级的单个实例活跃时的处理器使用率。让我们将其称为Un,s,0。观察到对于所有因此,Un,s,0是当在级s中只有一个作业并且在映射到节点n的任何其他节点中不存在作业时节点n的使用率。根据处理器调度策略,在一个实施例中,本公开的方法可以计算不同并发级导致的平均处理器(例如CPU)使用率。例如,在被称为加权共享的一个调度策略下,节点n上的级s的每个实例获得处理器的Un,s,0部分,直到该处理器没有饱和为止。当处理器饱和时,分配给级s的每个实例的处理器周期与Un,s,0成比例。在加权共享的一个实现方式中,当处理器饱和时,在节点n上执行的级s中的每个并发作业获得CPU的部分。
在110,随后可以估计作业请求中的每一级消耗的物理资源。这一步骤估计不同逻辑级的服务时间。例如,在102和108识别用于每个逻辑级的物理资源之后,110处的步骤估计每一级的单个实例(例如级s中的单个作业)消耗的物理资源的单位。回想一下,级s中的作业数量被表示为Cs,n。根据工作量日志,可以确定不同级中的每个作业的进入和退出时刻。令Tin,s,i和Tout,s,i是级s中的作业i的进入和退出时刻。则Rs,i=Tout,s,i-Tin,s,i是级s中的作业i的响应时间,其中,级中的作业的响应时间是在该级中所述作业i花费的时间量。令{Un,s,i,t}是当在级s中时作业i导致的节点n处的处理器使用率的时间序列。观察到对于t<Tin,s,i和t>Tout,s,i,Un,s,i,t=0。此外,在加权处理器共享下:
Un,s,i,t=Un,s,0如果Un,t<1(处理器未饱和),以及
其中Un,s,0是从102和108获知的。
本公开的一个实施例中的方法可以计算所述节点上的作业i的级s的服务时间。令该服务时间由STs,n,i表示。观察到服务时间是当在级s中时作业i消耗的节点n上的处理器周期量的量度。STs,n,i是当处理器未饱和时在节点n上作业i花费的级s的时间量。在{Cs,n}序列中的不同作业上执行这一计算,可以获得级s的节点n处的服务时间分布。令Ns是在执行级s时涉及的节点集合。级s的服务时间是Ns中的节点的服务时间的函数。该服务时间取决于如何在这些节点上执行所述级。例如,当在所有这些节点上并发地执行所述级时,所述级的服务时间等于这一级在Ns中的节点上的最大服务时间。对于在所述节点上串行地执行所述级时的情况,所述级的服务时间等于Ns中的节点的服务时间的总和。对于所述级在Ns中的节点上的执行的其他图式(graph),可以适当地定义所述级的服务时间。
在112,预测建模可以预测瓶颈级和对应的物理资源。例如,系统可以建模为多类闭合排队网络,每一类表示一逻辑级,并且每一类的吞吐量/总数(population)是该级中的活跃请求的数量(该级的并发水平)。网络中的节点表示不同的物理资源(例如CPU/存储器/盘),并且使用来自110的单位物理资源使用量信息来估计节点处的每一类的服务时间。然后,可以将该模型用于系统的预测性能分析以及用于识别限制不同逻辑级的可扩展性的物理资源。可以使用排队网络仿真或分析模型来执行预测性能分析,以识别限制不同逻辑级的可扩展性的物理资源。
在本公开的一个实施例中,可以在112执行排队网络仿真以预测瓶颈级和对应的物理资源。在排队网络仿真中,对于资源处的给定并发水平,我们可以使用在108获知的函数计算资源的合计使用率。然后,可以在给定资源调度策略下将该合计使用率分解为由各个作业导致的资源使用率。例如,对于加权共享策略。可以使用110处的途径获得单独的使用率。对于资源是CPU周期时的情况,可以使用该单独的资源使用率来得到在所述仿真的单位时间间隔内所述作业消耗的处理器周期的数量。当所述作业消耗的处理器周期的累积数量变得等于(在110计算的)所述作业在该节点上的服务时间时,所述作业在该节点上结束服务。由于我们有每一级的、来自110的服务时间分布,因此对于仿真中的该级处的每个作业,我们可以从该分布对服务时间的数量进行取样。以这一方式,可以使用在108和110获得的知识运行离散事件仿真器。在此排队网络仿真中,每个作业经过一组级(如通过作业日志识别的),每一级在排队网络中的一个或多个节点上执行,其中每个节点表示一种物理资源。对于仿真中的节点上的给定并发水平向量,我们从108获得节点的合计使用率,然后将其分解以获得来自110的节点的单独作业使用量。作业停留在节点上的时间量随着该节点的使用率水平而变化。根据仿真,我们可以估计不同级在不同节点处花费的时间量,即在一节点处的一级的响应时间,其中该节点是系统的物理资源。我们可以通过改变作业的到达速率(在开放排队网络仿真中)或者改变作业数量(在闭合排队网络仿真中)来改变仿真中的负载,并且研究作业的不同级的响应时间如何随着负载改变。该仿真可以利用单作业类型(所有作业经过相同的一组级)或不同作业类型的混合来进行。在不同物理资源(节点)上的不同级的响应时间随着系统负载的调整(scaling)可以用来识别将成为不同级的瓶颈的一个或多个物理资源。可以使用这一知识来调整物理资源以实现期望的吞吐量水平。
图4示出了图1中的112处示出的排队网络仿真的示例算法。该示例示出了以下情况:(1)具有多级的串行工作流,其中在给定时刻,作业可以只在一级中;以及(2)当与该级相关联的所有节点已经完成该级的执行时,作业结束其在该级中的停留。在402,获得来自作业的逻辑工作流的下一级。在403,确定是否存在要处理的级。如果不存在级,则所述作业结束。否则,在404,该作业进入所述级。在该处理块中,将所述级的并发水平递增1。识别在该级的执行中涉及的节点(物理资源)的集合。更新每个所识别的节点(物理资源)的并发水平向量。在406,该作业进入在404识别的仿真设置中的节点之一。在该处理中,获得该节点处的所述级的服务时间,并且将用于所述节点为所述作业服务的累计时间量的计数器初始化。在408,所述作业停留在该节点上。在该处理中,计算对于所述并发水平向量的所述节点的合计使用率。还计算在所述节点的调度策略下每个作业导致的节点的使用率。更新自从所述作业进入所述节点的时刻起所述节点实际用来为所述作业服务的累计时间量的计数器。如果该累计总和等于所述节点的服务时间,则所述作业在所述节点上结束服务。在410,所述作业退出一个或多个节点和所述级。当所述作业在与所述级相关联的所有节点上结束服务时,所述作业退出所述级以及与所述级相关联的所有节点。记录所述作业在每个节点上停留的时间量(该节点上的作业的响应时间)。将所述级的并发水平递减1。还更新在该作业的处理中涉及的节点的并发水平向量。
图2是图示本公开的一个实施例中的示例工作流级和系统资源的框图。分布式系统通常具有例如可以依序或并发执行的多个逻辑级,如在202处所示。例如,流计算可以包括执行运算符、数据查询、内容搜索和分析的处理元素之间的互连。云计算例如可以包括配置中的很多级,包括嵌套的级。例如,如202处所示,虚拟机配置工作流级可以包括资源主机启动(Resource MasterStart)、集群配置启动(Cluster Provision Start)、创建虚拟服务器启动(CreateVirtual Server Start)、创建虚拟服务器结束(Create Virtual Server End)、KVMVM_Create启动(KVM VM_Create Start)、KVM VM_Creat结束(KVMVM_Create End)、OS Module_Install启动(OS Module_Install Start)、OSModule_Install结束(OS Module_Install End)、集群配置启动(Cluster ProvisionStart)和资源主机结束(Resource Master End)。单个级可以例如并发地在一个或多个物理节点上执行。多个逻辑级可以共享物理资源204。KVM是指基于内核的虚拟机。OS是指操作系统。
多级工作流的性能评估可以包括分析可扩展性和资源瓶颈,例如逻辑级(在202示出)和物理资源(在204示出)之间的映射,其示出哪一级消耗系统的哪组物理资源。可以确定不同级消耗的不同资源量,并且可以确定所述量如何随着级的并发水平变化。可以确定级将成为瓶颈所在的并发水平。
图3图示了可以实现本公开的一个实施例中的系统的示例计算机或处理系统的示意图。该计算机系统只是合适的处理系统的一个示例,并且无意对再次描述的方法的实施例的使用范围或功能提出任何限制。所示出的处理系统可以利用很多其他目的的专用的计算系统环境或配置来操作。可适用于图3所示的处理系统的公知的计算系统、环境和/或配置的示例可以包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子设备、网络PC、迷你计算机系统、大型计算机系统、以及包括上述系统或设备中的任何一个的分布式云计算环境等。
可以在计算机系统执行计算机系统可执行的指令(例如程序模块)的一般上下文中描述所述计算机系统。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在分布式云计算环境中实践所述计算机系统,其中,通过远程处理设备来执行任务,所述远程处理设备通过通信网络链接。在分布式云计算环境中,程序模块可以位于包括存储贮存设备的本地和远程计算机系统存储介质二者中。
计算机系统的组件可以包括但不限于一个或多个处理器或处理单元12、系统存储器16、以及将包括系统存储器16的各种系统组件耦接到处理器12的总线14。处理器12可以包括执行这里描述的方法的瓶颈识别模块10。模块10可以被编程到处理器12的集成电路中,或者从存储器16、存储设备18或网络24或其组合加载。
总线14可以表示若干种类型的总线结构中的任一种的一个或多个,所述总线结构包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用多种总线架构中的任一种的处理器或本地总线。作为示例,并且不是作为限制,这种架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强的ISA(EISA)总线、视频电子标准联合会(VESA)本地总线和外围组件互连(PCI)总线。
计算机系统可以包括多种计算机系统可读介质。这种介质可以是计算机系统可访问的任何可获得的介质,并且它可以包括易失性和非易失性介质、可移除和不可移除介质两者。
系统存储器16可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)和/或高速缓冲存储器或其他存储器。计算机系统还可以包括其他可移除/不可移除、易失性/非易失性计算机存储介质。仅作为示例,可以提供存储系统18,用于从非可移除的非易失性磁介质(例如“硬盘”)读取或者向该非可移除的非易失性磁介质写入。尽管没有示出,但是可以提供用于从可移除的非易失性磁盘(例如“软盘”)读取和向该可移除的非易失性磁盘写入的磁盘驱动器、以及于从可移除的非易失性光盘(例如CD-ROM、DVD-ROM或其他光介质)读取和向该可移除的非易失性光盘写入的光盘驱动器。在这样的实例中,每个可以通过一个或多个数据介质接口连接到总线14。
计算机系统也可以与以下设备通信:诸如键盘、指示设备、显示器28等的一个或多个外部设备26;使得用户能够与计算机系统交互的一个或多个设备;以及/或者使得计算机系统能够与一个或多个其他计算设备通信的任何设备(例如网卡、调制解调器等)。这种通信可以经由输入/输出(I/O)接口20来进行。
此外,计算机系统可以经由网络适配器22与诸如局域网(LAN)、通用广域网(WAN)、和/或公共网络(例如因特网)通信。如所示出的,网络适配器22经由总线14与计算机系统的其他组件通信。应当理解,尽管没有示出,但是可以结合计算机系统使用其他硬件和/或软件组件。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(art icle of manufacture)。
所述计算机程序指令也可以被加载到计算机、其他可编程数据处理装置、或者其他设备中,以便使得在所述计算机、其他可编程数据处理装置、或者其他设备上执行一系列操作步骤,使得在计算机或其他可编程装置上运行的指令提供用于实现在所述流程图和/或框图的一个或多个块中指明的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
所述计算机程序产品可以包括使得能够实现这里描述的方法并且在被加载到计算机系统中时能够执行所述方法的所有相应特征,在本上下文中,计算机程序、软件程序、程序或软件是指采用任何语言、代码或符号的指令集的任何表示,所述指令集意图使具有信息处理能力的系统直接或者在以下一项或两项之后执行特定功能:转换为另一种语言、代码或符号;和/或(b)以不同的素材形式再现。
这里使用的术语仅用于描述具体实施例的目的,并且无意限制本发明。如这里使用的,单数形式“一”、“一个”和“该”意欲也包括复数形式,除非上下文清楚地指出其他情况。还将理解,当在本说明书中使用时,术语“包括”和/或“包含”指明存在所述的特征、整数、步骤、操作、元件和/或组件,但是不排除存在或增加一个或多个其他特征、整数、步骤、操作、元件、部件和/或它们的组。
所附权利要求中的所有部件或步骤加功能的元素(如果有的话)的对应结构、材料、动作和等同物意欲包括用于与明确要求保护的其他要求保护的元素相结合而执行所述功能的任何结构、材料或动作。为了说明和描述的目的呈现了对本发明的描述,但是对本发明的描述无意是穷尽性的或限于所公开的形式的本发明。对于本领域普通技术人员来说,在不背离本发明的范围和精神的情况下,很多修改和变化都将是显而易见的。选择和描述所述实施例,以便最好地解释本发明的原理和实际应用,并且使得其他本领域普通技术人员能够对于具有适合于所想到的特定用途的各种修改的各种实施例理解本发明。
本公开的各种方面可以被实施为在计算机或机器可用或可读介质中包含的程序、软件或计算机指令,当在计算机、处理器和/或机器上运行时,所述程序、软件或计算机指令使得计算机或机器执行所述方法的步骤。还提供了有形地包含指令程序的可由机器读取的程序存储设备,所述指令可由机器执行以执行在本公开中描述的各种功能和方法。
本公开的系统和方法可以在通用计算机或专用计算机系统上实现和运行。如可能在本申请中使用的术语“计算机系统”和“计算机网络”可以包括固定和/或便携计算机硬件、软件、外设和存储设备的多种组合。计算机系统可以包括联网或以其他方式链接以协作执行的多个单独组件,或者可以包括一个或多个独立组件。本申请的计算机系统的硬件和软件组件可以包括诸如桌面、膝上型和/或服务器的固定和便携设备,以及可以包括在所述固定和便携设备内。模块可以是实现某种“功能”的设备、软件、程序或系统的组件,其可以被实施为软件、硬件、固件、电子电路等。
上述实施例是说明性示例,并且不应理解为本发明限于这些具体实施例。因此,本领域技术人员可以进行各种改变和修改,而不背离所附权利要求限定的本发明的精神和范围。
Claims (14)
1.一种识别多级工作流处理中的资源瓶颈的方法,包括:
由计算机处理器识别逻辑级和计算系统中的物理资源之间的相关性,以确定哪个逻辑级涉及哪组资源;
由计算机处理器对于每个所识别的相关性,确定物理资源的使用量水平和逻辑级的并发水平之间的函数关系;
由计算机处理器基于对于每个逻辑级确定的函数关系,估计每个逻辑级对物理资源的消耗;以及
由计算机处理器基于所估计的消耗来执行预测建模,以确定所述每个逻辑级将成为瓶颈所在的并发水平。
2.如权利要求1所述的方法,其中所述识别包括:
对于每个逻辑级,获得所述每个逻辑级中的并发数量的时间序列;
获得每个物理资源的使用率的时间序列;
对于每个逻辑级,识别使用率与所述每个逻辑级的并发水平的改变相关联的所述物理资源。
3.如权利要求1所述的方法,其中,所述确定所述函数关系包括:对于所述逻辑级的并发水平的单位增大和减小,分析物理资源的使用量水平的改变。
4.如权利要求1所述的方法,其中,所述确定所述函数关系包括:使用递归函数来识别物理资源的使用率和逻辑级的并发水平之间的函数关系。
5.如权利要求1所述的方法,其中所述估计包括:
作为在处理所述逻辑级时涉及的不同物理资源处的服务时间的函数来估计逻辑级的服务时间。
6.如权利要求5所述的方法,其中,所述不同物理资源处的服务时间导致在一个或多个所述物理资源处的一个或多个作业的调度策略。
7.如权利要求1所述的方法,其中所述估计包括:
获得所述逻辑级在不同作业上的服务时间分布。
8.如权利要求1所述的方法,其中,所述执行预测建模包括:执行排队网络仿真,该仿真应用所述函数关系和每个逻辑级对物理资源的消耗。
9.一种识别多级工作流处理中的资源瓶颈的系统,包括:
计算机处理器;
模块,该模块可操作以在计算机处理器上执行,并且还可操作以识别逻辑级和计算系统中的物理资源之间的相关性,以确定哪个逻辑级涉及哪组资源,
对于每个所识别的相关性,该模块还可以操作以确定物理资源的使用量水平和逻辑级的并发水平之间的函数关系,
该模块还可操作以基于对于每个逻辑级确定的函数关系,估计每个逻辑级对物理资源的消耗,以及
该模块还可操作以基于所估计的消耗来执行预测建模,以确定所述每个逻辑级将成为瓶颈所在的并发水平。
10.如权利要求9所述的系统,其中为了识别逻辑级和物理资源之间的相关性,所述模块可操作以对于每个逻辑级,获得所述每个逻辑级中的并发数量的时间序列,所述模块还可操作以获得每个物理资源的使用率的时间序列,并且对于每个逻辑级,所述模块还可操作以识别使用率与所述每个逻辑级的并发水平的改变相关联的物理资源。
11.如权利要求9所述的系统,其中,为了确定所述函数关系,所述模块还可操作以对于所述逻辑级的并发水平的单位增大和减小,分析物理资源的使用量水平的改变。
12.如权利要求9所述的系统,其中,为了确定所述函数关系,所述模块还可操作以使用递归函数来识别物理资源的使用率和逻辑级的并发水平之间的函数关系。
13.如权利要求9所述的系统,其中,为了估计所述消耗,所述模块还可操作以估计在处理所述逻辑级时涉及的不同物理资源处的逻辑级的服务时间。
14.如权利要求9所述的系统,其中,为了估计所述消耗,所述模块还可操作以获得所述逻辑级在不同作业上的服务时间分布。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/134,833 US9471375B2 (en) | 2013-12-19 | 2013-12-19 | Resource bottleneck identification for multi-stage workflows processing |
US14/134,833 | 2013-12-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104731574A true CN104731574A (zh) | 2015-06-24 |
CN104731574B CN104731574B (zh) | 2018-07-03 |
Family
ID=53400139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410687288.4A Expired - Fee Related CN104731574B (zh) | 2013-12-19 | 2014-11-25 | 用于识别多级工作流处理中的资源瓶颈的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9471375B2 (zh) |
CN (1) | CN104731574B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107172142A (zh) * | 2017-05-12 | 2017-09-15 | 南京邮电大学 | 一种加速云计算数据中心查询的数据调度方法 |
CN107943579A (zh) * | 2017-11-08 | 2018-04-20 | 深圳前海微众银行股份有限公司 | 资源瓶颈预测方法、设备、系统及可读存储介质 |
CN109074300A (zh) * | 2016-06-15 | 2018-12-21 | 国际商业机器公司 | 检测和预测复杂系统中的瓶颈 |
CN111581294A (zh) * | 2019-02-18 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 实体关系展示方法、装置、电子设备及可读存储介质 |
US10841329B2 (en) | 2017-08-23 | 2020-11-17 | International Business Machines Corporation | Cognitive security for workflows |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9674093B2 (en) * | 2014-08-18 | 2017-06-06 | Xerox Corporation | Method and apparatus for ripple rate sensitive and bottleneck aware resource adaptation for real-time streaming workflows |
US9684533B2 (en) * | 2015-11-18 | 2017-06-20 | International Business Machines Corporation | Management of a virtual machine in a virtualized computing environment based on a concurrency limit |
US10223235B2 (en) | 2016-05-26 | 2019-03-05 | International Business Machines Corporation | Comprehensive testing of computer hardware configurations |
US10216599B2 (en) | 2016-05-26 | 2019-02-26 | International Business Machines Corporation | Comprehensive testing of computer hardware configurations |
US10205636B1 (en) * | 2016-10-05 | 2019-02-12 | Cisco Technology, Inc. | Two-stage network simulation |
CN108363615B (zh) * | 2017-09-18 | 2019-05-14 | 清华大学 | 用于可重构处理系统的任务分配方法和系统 |
US11797318B1 (en) * | 2018-11-28 | 2023-10-24 | Allscripts Software, Llc | Apparatus, system and method for workflow processing in a medical computer system |
US11175951B2 (en) * | 2019-05-29 | 2021-11-16 | International Business Machines Corporation | Resource availability-based workflow execution timing determination |
US11050677B2 (en) * | 2019-11-22 | 2021-06-29 | Accenture Global Solutions Limited | Enhanced selection of cloud architecture profiles |
US11663505B2 (en) | 2020-03-10 | 2023-05-30 | International Business Machines Corporation | Estimating performance and required resources from shift-left analysis |
WO2022026561A1 (en) | 2020-07-30 | 2022-02-03 | Accenture Global Solutions Limited | Green cloud computing recommendation system |
KR20220107621A (ko) * | 2021-01-25 | 2022-08-02 | 삼성전자주식회사 | 가속기 자원 관리 방법 및 장치 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6101460A (en) * | 1998-03-23 | 2000-08-08 | Mci Communications Corporation | Method of forecasting resource needs |
US20050071842A1 (en) * | 2003-08-04 | 2005-03-31 | Totaletl, Inc. | Method and system for managing data using parallel processing in a clustered network |
US7660884B2 (en) * | 2006-11-10 | 2010-02-09 | International Business Machines Corporation | Apparatus, system, and method for generating a resource utilization description for a parallel data processing system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005017735A1 (ja) | 2003-08-19 | 2005-02-24 | Fujitsu Limited | ディスクアレイ装置におけるボトルネックを検出するシステムおよびプログラム |
US20080010497A1 (en) | 2006-06-12 | 2008-01-10 | Curtis Duane Kronlund | Selecting a Logging Method via Metadata |
WO2009108344A1 (en) * | 2008-02-29 | 2009-09-03 | Vkernel Corporation | Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network |
US8402468B2 (en) | 2008-03-17 | 2013-03-19 | Ca, Inc. | Capacity planning based on resource utilization as a function of workload |
US8276112B2 (en) | 2008-03-28 | 2012-09-25 | Sap Ag | Performance-related decision support for model-driven engineering |
US9009677B2 (en) | 2013-03-18 | 2015-04-14 | Microsoft Technology Licensing, Llc | Application testing and analysis |
-
2013
- 2013-12-19 US US14/134,833 patent/US9471375B2/en not_active Expired - Fee Related
-
2014
- 2014-11-25 CN CN201410687288.4A patent/CN104731574B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6101460A (en) * | 1998-03-23 | 2000-08-08 | Mci Communications Corporation | Method of forecasting resource needs |
US20050071842A1 (en) * | 2003-08-04 | 2005-03-31 | Totaletl, Inc. | Method and system for managing data using parallel processing in a clustered network |
US7660884B2 (en) * | 2006-11-10 | 2010-02-09 | International Business Machines Corporation | Apparatus, system, and method for generating a resource utilization description for a parallel data processing system |
Non-Patent Citations (1)
Title |
---|
PARIJAT DUBE ETC.: "IDENTIFICATION AND APPROXIMATIONS FOR SYSTEMS WITH MULTI-STAGE WORKFLOWS", 《PROCEEDINGS OF THE 2011 WINTER SIMULATION CONFERENCE》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109074300A (zh) * | 2016-06-15 | 2018-12-21 | 国际商业机器公司 | 检测和预测复杂系统中的瓶颈 |
CN107172142A (zh) * | 2017-05-12 | 2017-09-15 | 南京邮电大学 | 一种加速云计算数据中心查询的数据调度方法 |
US10841329B2 (en) | 2017-08-23 | 2020-11-17 | International Business Machines Corporation | Cognitive security for workflows |
CN107943579A (zh) * | 2017-11-08 | 2018-04-20 | 深圳前海微众银行股份有限公司 | 资源瓶颈预测方法、设备、系统及可读存储介质 |
CN107943579B (zh) * | 2017-11-08 | 2022-01-11 | 深圳前海微众银行股份有限公司 | 资源瓶颈预测方法、设备、系统及可读存储介质 |
CN111581294A (zh) * | 2019-02-18 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 实体关系展示方法、装置、电子设备及可读存储介质 |
CN111581294B (zh) * | 2019-02-18 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 实体关系展示方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20150178129A1 (en) | 2015-06-25 |
CN104731574B (zh) | 2018-07-03 |
US9471375B2 (en) | 2016-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104731574A (zh) | 用于识别多级工作流处理中的资源瓶颈的方法和系统 | |
Shyam et al. | Virtual resource prediction in cloud environment: a Bayesian approach | |
Ïpek et al. | Efficiently exploring architectural design spaces via predictive modeling | |
Tran et al. | A multivariate fuzzy time series resource forecast model for clouds using LSTM and data correlation analysis | |
Chuang et al. | An efficiency data envelopment analysis model reinforced by classification and regression tree for hospital performance evaluation | |
JP6193393B2 (ja) | 分散コンピューティングシステムのための電力の最適化 | |
CN106020715A (zh) | 存储池容量管理 | |
WO2014199920A1 (ja) | 予測関数作成装置、予測関数作成方法、及びコンピュータ読み取り可能な記録媒体 | |
Tiwari et al. | Predicting optimal power allocation for cpu and dram domains | |
Cheng et al. | Precise contention-aware performance prediction on virtualized multicore system | |
Bertoni et al. | Performance portability evaluation of opencl benchmarks across intel and nvidia platforms | |
Xiao et al. | SARA: Stably and quickly find optimal cloud configurations for heterogeneous big data workloads | |
Cope et al. | Robust data placement in urgent computing environments | |
JPWO2015146100A1 (ja) | 負荷推定システム、情報処理装置、負荷推定方法、及び、コンピュータ・プログラム | |
Bader et al. | Lotaru: Locally predicting workflow task runtimes for resource management on heterogeneous infrastructures | |
Wang et al. | App Download Forecasting: An Evolutionary Hierarchical Competition Approach. | |
Xu et al. | Empowering R with high performance computing resources for big data analytics | |
Begy et al. | Forecasting network throughput of remote data access in computing grids | |
Park et al. | Queue congestion prediction for large-scale high performance computing systems using a hidden Markov model | |
US9032405B2 (en) | Systems and method for assigning executable functions to available processors in a multiprocessing environment | |
Oxley et al. | Energy and deadline constrained robust stochastic static resource allocation | |
US9769025B2 (en) | Predicting the performance of a multi-stage communications network under load from multiple communicating servers | |
Sinaei et al. | Run-time mapping algorithm for dynamic workloads using association rule mining | |
JP2022023420A (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
Baughman et al. | Measuring, quantifying, and predicting the cost-accuracy tradeoff |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180703 |
|
CF01 | Termination of patent right due to non-payment of annual fee |