没有合适的资源?快使用搜索试试~ 我知道了~
可在www.sciencedirect.com在线获取理论计算机科学电子笔记318(2015)69-89www.elsevier.com/locate/entcs使用PEPA Eclipse插件进行PEPA模型容量规划的案例研究Christopher D.威廉姆斯和艾伦·克拉克1,2,3英国爱丁堡大学信息学院LFCS摘要我们报告的PEPA Eclipse插件,一个软件工具,用于分析性能模型写在PEPA语言的能力规划设施。PEPA语言允许由不同类型的过程组成的复杂系统的组合描述。能力规划增加允许建模者自动搜索过程的群体,其允许在建模者的控制下在系统的性能与获取或操作系统的组件的成本之间的最佳权衡关键词:PEPA,容量规划,优化,性能评估,建模1介绍在本文中,我们报告了在PEPA Eclipse插件[16]中实现的性能评估过程代数(PEPA)[8]的容量规划框架。PEPA是一种语言,建模者可以用它来组合地描述复杂的系统。一般来说,建模者定义了几种不同类型的过程,这些过程通过共享活动相互作用。一旦定义了模型,就可以通过一套技术对其进行数值评估,以获得性能指标。如果模型足够准确,那么这些就可以转化为正在研究的真实系统并提供洞察力。通常,一个过程被定义为具有几种可能的状态。首先,性能度量是过程处于其每个可能状态的长期概率。当模型包含同一过程的许多副本时,这相当于询问每个状态的长期种群1特别感谢Mirco Tribastone对案例研究2电子邮件地址:c.d.williamsed.ac.uk3电子邮件:a.d. ed.ac.ukhttp://dx.doi.org/10.1016/j.entcs.2015.10.0201571-0661/© 2015由Elsevier B. V.这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。70C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)69一般来说,人口将为建模者提供利用信息。例如,在服务器-客户端模型中,服务器进程可以具有一组可能的状态,其中一些状态对应于服务器忙于处理特定类型的响应的状态,而其他状态将对应于服务器空闲等待客户端发出请求的状态。知道通常繁忙的服务器的比例可以告诉建模者服务是否过度配置,因为我们有许多空闲的服务器,因为服务器的数量足以满足预期(和建模)的需求。从该模型和长期/稳态人口分布,我们可以得到性能指标,可以更直接地确定是否服务将是过度或不足。两个重要的度量是特定操作的吞吐量或特定组件可以期望保持在特定状态集合中的时间。同样,在服务器-客户端设置中,吞吐量可以告诉我们单位时间内有多少请求被响应,或者它可以告诉我们必须丢弃请求然而,请求的吞吐量通常还取决于请求被做出的速率,并且因此可能不是系统对于给定需求是否具有足够性能的可靠指示。为此,我们可以计算给定组件处于给定状态集的预期时间。通常,我们会计算单个客户端处于这样一种状态的预期时间,即它们已经发出请求并正在等待服务响应该请求。这为我们提供了服务的典型消费者所观察到的响应时间能够通过对服务进行建模并计算给定客户端负载下的响应时间来预测所建议服务的性能显然是有用的。然而,在设计系统时,我们仍然对可以部署的组件数量有一定的灵活性在简单的情况下,我们可以部署更多或更少的服务器。在更复杂的环境中,有不同的组件组成被操作的服务。例如,可能存在web服务器和数据库服务器以及外部认证服务。在设计这样一个系统时,我们想知道什么样的系统配置是最佳的。因此,我们希望知道哪些服务器组件数量满足某些所需的性能标准。通常,只需部署不断增加的所有服务器组件,就可以满足性能标准。然而,通常存在与获取和/或操作每个服务器相关联的一些成本,并且对于不同类型的服务器,成本可能不同。因此,我们不仅希望找到一个能满足性能要求的系统配置,而且希望找到最便宜的系统配置。建模者总是可以猜测一个可能满足性能需求的低成本配置,并通过他们的模型简单地评估该配置。在以前的工作[13]中,讨论了PEPA Eclipse插件软件的扩展。该扩展实现了自动搜索最佳配置,即。该扩展实现PEPA模型的自动容量规划。在本文中,我们贡献了一个案例研究,展示了能力的价值C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)6971LPEPA Eclipse插件的规划扩展。在下面的部分中,我们将从背景信息开始,详细介绍PEPA、相关的性能度量和一般的容量规划。然后深入描述案例研究场景和相关的PEPA模型。然后讨论了运行软件以获得案例研究中服务器组件的最佳配置所最后,我们讨论了如何在不牺牲易用性的情况下使软件更加通用,并得出结论,容量规划扩展是建模软件的一个重要功能2背景本节概述了PEPA建模语言以及提供容量规划工具的必要性。我们首先讨论PEPA,然后描述如何PEPA模型可以评估,以获得基本的定量信息,关注如何模型然后,我们描述如何更多的信息性能measures可以从这个基本信息。至关重要的是,我们正在查看模型中特定活动的吞吐量以及模型保持在特定状态集的预期时间。后者被称为特定情况下的平均响应时间,其中状态集表示客户端等待来自服务器的服务/响应。2.1PepaPEPA是一个随机定时的进程代数,其中顺序组件使用前缀和选择来定义。PEPA模型要求这些顺序组件在某些活动上进行协作,并隐藏其他活动。PEPA模型通常由几个顺序组件组成,这些组件相互协作。在模型中PDQL顺序组件P和Q在集合L中的活动上合作。如果活动α在集合L中,则P和Q需要在α上合作。 如果活动β不在则P或Q中的任一者或两者可独立地执行此活动。当L为空时,我们写PQ而不是PDQ。 我们还允许特殊的合作PD Q是PD∅Q在哪里 L是活动L由P和Q执行。费率与每个组件执行的活动相关联。符号T用于表示该组件将在此活动中被动地与另一个组件协作。在这种情况下,无源组件可以启用或限制活动由协作组件执行,但是启用时的速率由主动协作组件确定。组件(a,r).P在活动a未被协作组件阻塞时以速率r执行活动a,并成为进程P。组件(a,T).Q被动地同步到a上,成为进程Q。在PEPA模型中,我们经常使用组件阵列我们使用数组来72C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)69表示工作负载(例如多个独立客户端)或资源(例如多个独立服务器)。我们写P[5]来表示组件P的五个不合作的副本,而P[5][α]表示组件P的五个在活动α上合作的副本。 也就是说,P[5]是PPPP的缩写,P[5][L]是P P的缩写。PD PD PD PDP。L L L LPEPA语言在[8]中正式定义。该语言的应用在[7,11,10]中描述。2.1.1评估模型PEPA用于计算性能指标。传统上,这是通过将PEPA模型转换为其基础的连续时间马尔可夫链来实现的。然而,对于具有大量组件的模型,模型的状态空间太大而无法遍历,并且已经利用了其他技术。我们已经使用随机模拟并将其转换为普通微分方程(ODE)[9,17]。在这项工作中,我们使用了翻译成常微分方程。所描述的技术可推广到从PEPA模型获得结果的任何方法,但是如果搜索空间很大,我们可能会评估模型的许多实例,这意味着无论使用哪种方法,对于模型的所有候选配置都应该是快速的。当模型被转换成一组常微分方程时,这些常微分方程可以被数值计算,以提供一个时间序列,该时间序列描述了每种组分随时间的状态的总体水平对于某些措施,我们不感兴趣的组分状态人口的演变,而是在每个国家的长期比例为了获得这些常微分方程可以数值评估增加的时间,直到人口稳定。该技术要求您的系统不表现出振荡行为。2.1.2业绩计量一旦我们有了长期的组件数量,我们就可以计算系统的预期性能。我们感兴趣的两个最常见的性能度量是特定操作的吞吐量或特定状态或状态集的平均持续时间。例如,当考虑某种服务时,我们可能希望测量响应的吞吐量或平均响应时间。这里的平均响应时间是特定客户端发出请求和同一客户端接收到对先前请求的响应之间的预期延迟通常,平均响应时间是合适的,因为它不是一个在服务过度配置时受到惩罚的度量。当服务被过度供应时,性能可能非常高,但是响应的吞吐量只能与服务的用户发出的请求的吞吐量一样高。另一方面,响应时间仍然可以,而且很可能很低,即使在C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)6973请求率低。在这项工作中提出的案例研究,我们专注于响应时间。响应时间可以通过应用利特尔定律来计算利特尔定律指出,稳定系统中的长期平均客户数L等于长期平均到达率λ乘以客户在系统中花费的平均时间W。因此,L=λW,重新排列W,我们有W=L/λ。在我们的例子中,W是我们寻求的响应时间,L是处于请求和响应活动之间状态的客户端的长期数量,而λ是所发出请求的长期吞吐量当考虑具有许多消费者的系统时,我们希望评估由典型消费者观察到的系统的性能。换句话说,我们必须仔细测量特定客户端发出请求和同一客户端收到响应之间的预期时间。而不是任何请求和对任何客户端的下一次响应之间的预期时间。为了实现这一点,我们使用了一种简单的标记单个客户端的技术,类似于[5]中描述的技术标记和指定被视为响应时间的一部分的状态,或者被视为测量吞吐量的一部分的特定操作在[2]中进行了讨论[3]中讨论了自动修改模型以适应性能查询通常,建模人员必须仔细评估响应时间和吞吐量。因为低吞吐量的请求可能导致低平均响应时间,但这仅仅是因为出于某种原因,需求很低。类似地,对于处于等待状态的客户端数量没有限制可能意味着响应的吞吐量很高,但是客户端要等待很长时间才能满足他们的请求2.2容量规划复杂系统通常被建模以提供洞察力。这种洞察力要么用于在系统构建之前帮助系统的设计,要么用于理解已经运行的系统。一个复杂的系统可能有许多组件,如不同种类的服务器。系统设计的一个方面是推理最合适的配置,即不同类型组件的数量。系统建模可以让人们推测最合适的配置,并比较候选配置,而无需实际实现它们。一旦可以对多个候选配置进行有效比较,就有必要搜索最佳或最合适的配置。存在用于搜索候选参数配置的空间的若干技术容量规划具有独特的属性,通常所讨论的参数都是整数,因为它们代表了系统在组件类型数量方面的物理配置。在考虑配置时,通常需要考虑一些交易通常,设计者控制其群体的一些或所有组件具有与获得和运行这些组件相关的一些成本74C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)69nents。例如,Web服务必须花钱来获得和运行托管Web服务的物理(或虚拟)服务器然而,设计者也希望确保服务提供足够的性能,例如,响应时间足够低。我们已经知道如何从PEPA模型中获得性能度量,如上面解释的响应时间。假设我们有一个模型,只有一种服务器,并且在给定的服务需求或用户数量水平下有一个期望的平均响应时间。在这个简单的场景中,找到最佳配置是很简单的。我们可以简单地评估仅分配单个服务器时的响应时间如果该响应时间足够短,则可以将该配置报告为最合适的配置,因为知道所有其他配置将花费更多。如果没有,那么可以修改模型,使其有两个服务器,并重新评估响应时间。通过这种方式,可以进行简单的蛮力搜索,以找到满足响应时间的最低数量的服务器在这种简单的情况下,找到的第一个配置将是最合适的,因为我们知道我们已经尝试过的所有其他配置都不能满足期望的响应时间,并且所有尚未尝试的配置都将花费更多。一个明显的改进是二分搜索.这两种技术都将对配置空间进行全面搜索,并保证找到最佳配置。然而,复杂的系统往往不那么简单。可能存在几种服务器,每种服务器具有不同的获得和/或操作成本。如果候选配置可以根据其操作成本进行排序,则仍然可以进行这种对最佳候选解决方案的线性搜索。当候选配置的数量迅速增加时,这可能变得过于昂贵。二分搜索在这种情况下可能会有所帮助,但前提是候选配置在成本方面对于排序和索引此外,也可能是建模者没有严格的性能阈值来实现,而只是想权衡良好的性能与操作成本。在这种情况下,建模者可能会给每个单位的响应时间一个概念上的成本因此,候选配置的成本是获得和操作组件的成本以及在该配置下可实现的预测响应时间的组合。在这种情况下,我们不能进行线性搜索并在满足性能约束的第一个候选配置处停止,因为没有严格的性能约束,并且可能存在更好的权衡。必须在整个搜索空间的地形上进行搜索。在这种搜索中,仍然可以执行蛮力搜索并简单地评估所有可能的配置。这只有在合理配置的数量很少的情况下才有可能当暴力搜索不可能时,存在避免评估所有可能配置的搜索技术本文所述的工作将此类技术专门用于PEPA模型以及相关的性能度量。从本质上讲,容量规划是对最佳配置的搜索。搜索算法可以在非常大的可能配置空间上执行搜索,而无需评估所有可能的配置。这意味着绝对C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)69751可能找不到最佳配置。然而,即使在这种情况下,也值得自动执行搜索。这种技术通常属于进化计算的范畴,其中有大量的文献基础,例如[15,4,1]。2.2.1成本函数特定配置的评估涉及评估该配置如何适当地平衡性能和运营成本。这两个指标被合并为候选配置的总成本因此,其中,costpm是与性能度量相关联的成本,costpop是与候选配置群体相关联的成本,并且wpm和wp是权重,成本函数具有一般形式:成本=(wpm×成本pm)+(wp×成本pop)然而,并非所有人口的权重都相等。一个可能的任务是决定部署多少不同类型的服务器,并且很可能不同类型的服务器的购买或操作成本不同。对于N个组分种类,Pi是组分种类i的总体,Ci是与种类i的单个组分相关的成本。因此,我们的成本函数的人口组成部分变为:costpop=10NCi×Pi回想一下,我们的性能度量可能与动作的吞吐量或平均响应时间相关联。此外,在任何一种情况下,我们都可能需要一个高或低的值。因此,成本函数必须能够惩罚性能度量的高值或低值。简单的解决方案是为性能度量设置一个目标值,并计算与此值的差异。建模者设定目标和方向,因此对于我们希望搜索尽可能低的值的性能度量,我们有:成本pm=测量值-目标值类似地,对于我们正在寻找尽可能高的值的性能度量,我们有:成本pm=目标-测量注意,在这两种情况下,该值都可能变为负值。这是完全可以接受的,没有理由避免负成本。搜索引擎将简单地搜索给出最低成本的配置,无论该最低值是否为负。然而,这个简单的测量假设建模者将线性地惩罚性能考虑测量平均响应时间的情况建模者可能对将平均值保持在用户可注意到的平均值以下感兴趣,因此可能非常热衷于丢弃评估为1.0时间单位或更大的响应时间的配置,而不是那些评估为小于1.0时间单位的响应时间的配置。1.0时间单位然而,建模者可能不太关心区分两个响应时间为0.1和0.2时间单位的配置。相反,更倾向于根据人口的成本来区分这两种配置提供非线性成本函数显著增加了76C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)69为建模者提供的用户界面,以指定其成本函数。因此,我们通过利用错过目标的惩罚来近似非线性成本函数。因此,我们希望搜索最低可能值的性能度量的成本函数变为:成本pm=(目标-测量值)+(H(目标-测量值)×惩罚)其中H是Heaviside函数,当给定负参数时返回零,否则返回一。这对应于您可能希望遵守给定服务级别协议的情况。例如,服务水平协议可以规定用户观察到的平均响应时间不超过0.5个时间单位。因此,我们可以严重惩罚所有导致模型预测平均响应时间超过0.5时间单位的配置。这意味着,对于响应时间优于0.5时间单位的配置,搜索仍然会选择更好的配置,但性能和人口成本的权重可以合理设置对于计算的平均响应时间比目标差的配置,则应用惩罚。这允许搜索拒绝这样的配置,而不管人口成本。回想一下,容量规划是对最佳配置的搜索。避免对所有配置进行暴力搜索是很重要的,因为配置的搜索空间通常大得不切实际。搜索算法可以通过找到搜索空间的好区域来避免穷举搜索。为了实现这一点,重要的是我们的成本函数使搜索能够指向搜索空间中的好区域由于这个原因,当没有达到目标时,性能成本仍然存在梯度。也就是说,一个稍微错过目标响应时间的配置,仍然比一个错过响应时间目标的配置评估出更低的(性能)成本。这有助于搜索朝着能够达到目标的配置移动,而不是简单地拒绝那些未能达到响应时间目标的总成本函数wpm和wpop的权重允许用户相对于与组件的总体相关联的成本来调整用户的任务是设置这些权重,使得成本的任何一个分量都不占总成本的主导地位。不幸的是,我们不可能在这里设置一个有用的默认值,因为我们无法提前知道人口的成本是如何计算的。 此外,该单位用于 模型中的速率是未定义的。因此,确定每个单位(例如响应时间)的成本是一项必须留给用户的任务。要看到这一点,请考虑使用秒作为单位的模型可以将模型中的所有速率乘以1000。稳态概率不会改变,但我们计算的任何响应时间度量现在都将以毫秒为单位,而不是以秒为单位。这个新模型同样有效,但很明显,与平均响应时间增加一个单位相关的实际成本要小因此,该模型中使用的权重需要反映这一点。严格地说,权重是不必要的,因为用户可以随时调整C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)6977Fig. 1.电子大学案例研究的部署图。组件之间的实心连接器表示请求/应答通信。虚线表示服务在处理器上的部署人口的权重,但我们包括它们是为了方便用户。通常,用户不会运行单个容量规划搜索,而是会运行多个搜索,相应地修改其搜索参数。我们在本节中简要描述了成本函数的考虑因素。成本函数可能变得非常复杂。在提供清晰和可用的软件,同时覆盖尽可能多的用例最终要完全通用,需要我们允许用户在一些完整的评估环境(如通用编程语言)中计算自己的成本函数。这仍然是未来的工作,但现在我们希望为常见用例提供足够的灵活性,而不会给软件及其相关的用户界面增加显著的膨胀和复杂性。3为例我们的示例场景涉及之前研究过的[12]场景,该场景构成了SENSORIA项目案例研究的一部分[6,第2章]。它涉及一个假想的欧洲范围的虚拟大学,学生在其中远程学习。在上述工作中考虑的案例研究的一部分,在这项工作中涉及到课程选择阶段,已经被大学录取的学生必须报名参加专门课程。虽然学生每年只注册几门课程,但他们都在同一时间注册,因此提供足够的服务以保持响应服务是很重要的。本案例研究由多个场景组成;这里感兴趣的场景是课程选择场景,学生可以获得有关其教育机构提供的课程的信息,并可以报名参加满足特定要求的课程尽管整个应用程序都是面向服务的,但这里研究的场景是这样的,即系统中可用的服务类型不会随着该模型捕获的时间范围而改变这反映了一个事实,即大学此外,微小的变化可能不会显著影响系统该模型将不考虑可能部署在实际应用程序中的其他服务(例如,认证服务),因为它们对性能的影响被假定为是可忽略的。该场景还考虑了恒定的学生群体,以捕获现实世界的情况,其中大学的入学过程可能在可以访问应用之前完成。78C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)693.1模型目前的作者感谢上述研究[12]的作者允许我们在这里包括他们对模型的描述该系统的接入点是大学门户网站,这是一个前端层,以连贯的方式提供可用的服务,例如通过网络界面。此模型中有四个服务课程浏览允许用户浏览大学的课程;课程选择允许用户提交一个初步的课程计划,将根据大学的要求和学生的课程进行验证学生确认会强制学生核对相关个人资料;课程注册将确认学生这些组件使用基础设施数据库服务,该服务又通过单独的Logger服务维护事件日志。这里采用的建模范例捕获了用于部署和执行应用程序的典型多线程多处理器环境的行为大学门户实例化了一个线程池,每个线程处理来自学生的一个请求,请求所提供的服务之一。在请求的类似的多线程行为将被赋予数据库和记录器组件。性能问题可能是由潜在的大量学生争用有限数量的线程引起的 如果在某个时间点所有线程忙时,更多的请求必须排队,引起延迟和容量饱和。该模型还通过显式地对线程在其上执行的处理器进行建模,提出了另一个级别的争用。在这里,当许多线程试图获取有限数量的可用处理器时,可能会发生延迟此外,在同一个多处理器系统上运行多个多线程服务可能会使情况变得更糟,就像在此模型中考虑的部署场景中的情况一样:University Portal将专门在多处理器PS上运行,而Logger和Database将共享多处理器PD(参见图1)。3.1.1通用建模模式处理请求涉及到部署服务的处理器上的一些计算。PEPA模型中的这种计算与活动(类型,速率)相关联,其中类型唯一标识活动,速率表示处理器上的平均执行需求(即1/速率时间单位)。单个处理单元可以使用双状态顺序组件来建模一种状态使acq活动能够获得对资源的独占访问,而另一种状态则使处理器上部署的所有活动都能够使用。假设n是不同活动的数量,下面的模式用于处理器:C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)6979LL处理器1=(acq,racq).处理器2处理器2=(type1,r1).处理器1+ (类型2,r2)。处理器1+ ......这是什么?+(typen,rn).处理器1(一)此模型中的通信是同步的,并由一系列表单中的两个活动(req from、to、rreq)。(replyfrom、to、rrep),其中下标from表示请求所源自的服务,而to表示所需的服务。重复出现的情况是服务调用外部请求时遇到的一种阻塞形式。例如,假设A和B为两个不同的交互服务建模A=(req A,B,r reqA)。(回答A,B,rrepA).AB=(req A,B,r reqB)。(execute,r). (回答A,B,rrepB).B(二)A和B之间的通信将通过coop来表达运算符AD 其中,L ={req A,B,reply A,B}。根据操作语义, 一和 B可以 最初 通过执行请求A,B,随后表现为进程,(回答A,B,rrepA).AD (execute,r). (回答A,B,rrepB).B.现在,虽然协作的左手侧启用应答A、B,但是活动不被右手侧所阻止,从而使得左手侧被有效地阻止,直到执行终止(即,在1/r时间单位的平均持续时间之后)。这些基本的建模模式将在本案例研究中广泛使用,如下面所讨论的。3.1.2高校门户应用层UniversityPortal的单个执行线程作为顺序组件实现,该组件最初接受对所提供的任何服务的请求:Portal=(reqstudent,browse,v).Browse+(reqstudent,select,v).Select+ (reqstudent,confirm,v).确认+ (reqstudent,register,v).(三)速率v将在整个模型的所有请求/应答活动中使用在下文中,操作类型acqps用于获得对处理器的独占访问PS.课程浏览是作为一个服务来实现的,它维护一个内部缓存。当要处理请求时,缓存查询平均占用1/r缓存时间单位,并且以0.95的概率成功,之后检索到的数据被80C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)69以速率rint处理。 在缓存未命中时,数据库服务,并且随后以速率rext:Browse=(acqps,v)进行处理。缓存=(缓存,0. 95×r缓存)。内部+(cache,0. 05×r缓存)。外部内部=(acq ps,v)。(internal,rint).External=(req external,read,v). (回复外部,读,v)。(acq ps,v)。(external,rext).BrowseRepBrowseRep =(reply student,browse,v).Portal(四)课程选择包括四个基本活动。初始设置任务初始化进一步处理所需的必要数据(评分员准备)。然后,并行执行两个活动,分别针对大学要求(rateruni)和学生最后,准备将验证结果显示给学生(评分员显示)。通过考虑三个不同的顺序组件来保持执行的相对顺序。第一个组件准备数据,然后分叉两个验证过程,等待它们完成,最后显示结果:选择=(acq ps,v)。(prepare,rprep).ForkPrepare ForkPrepare=(fork,v).JoinPrepareJoinPrepare=(join,v).Display显示=(acq ps,v)。(display,rdisp).SelectRepSelectRep =(reply student,select,v).Portal(五)这两个验证过程由fork/join屏障保护,如下所示:V alUni=(fork,v). (acq ps,v)。(validate uni,r uni).(join,v).V alUni V alCur =(fork,v). (acq ps,v)。(validate cur,r cur)。(join,v).(六)这些组件将被安排如下,以获得一个三路同步:(七)选择D分叉,连接V alUni D分叉,连接V alCur学生确认在PEPA模型中表示为以速率r_con执行的活动。服务使用Logger注册事C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)6981件:确认=(acq ps,v)。(confirm,rc on).LogStudentLogStudent=(req confirm,log,v). (replyconfirm,log,v).ReplyConfirmReplyConfirm=(replystudent,confirm,v).Portal(八)82C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)69最后,Course Registration以速率rreg执行一些本地计算,然后联系Database以存储信息:寄存器=(acq ps,v)。(register,rreg).存储存储=(请求寄存器,写入,v)。(replyregister,write,v).ReplyRegister ReplyRegister=(replystudent,register,v).Portal(九)一般模式1如下应用于处理器PS:PS1=(acqps,v).PS2PS2=(cache,rc ache).PS1+(internal,ri nt).PS1+ (外部,rext).PS1+(准备,r准备).PS1+(display,rdisp).PS1+(validateuni,runi).PS1+(validatecur,rcur).PS1+(confirm,rcon).PS1+(register,rreg).PS1(十)3.1.3数据库此服务公开了两个用于读取和写入数据的函数。读取是一个纯粹的本地计算,而写入则额外使用Logger服务。在该模型中,数据库仅由大学门户在等式4和等式9中分别处于External和Store状态下让PD表示部署数据库的处理器,通过acqpd操作获取。类似于大学门户,数据库的单个执行线程是:数据库=(req external,read,v).Read+(req register,write,v).Write Read =(acq pd,v). (read,rread).ReadReplyReadReply=(replyexternal,read,v).数据库写入=(acq pd,v)。(write,rwrite).LogWriteLogWrite =(req database,log,v). (replydatabase,log,v).WriteReplyWriteReply=(replyregister,write,v).Database(十一)3.1.4记录器该服务接受来自学生确认和数据库的请求,分别如等式8和11所述。 它与数据库部署在同一个处理器上,即,处理器PD。因此,一个线程执行可以被建模如下:Logger=(req confirm,log,v).LogConfirm+(req database,log,v).LogDatabase LogConfirm =(acq pd,v). (logconf,rlgc).回复确认C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)6983ReplyConfirm =(reply confirm,log,v).LoggerLogDatabase =(acq pd,v). (logdb,rlgd).ReplyDatabaseReplyDatabase=(replydatabase,log,v).Logger84C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)69∗(十二)将11和12合在一起,可以写出对处理器PD进行建模的顺序组件:PD1=(acqpd,v).PD2PD2=(read,rread).PD1+(write,rwrite).PD1+(logconf,rlgc).PD1+(logdb,rlgd).PD1(十三)3.1.5学生会学生被建模为一个连续的组件,与大学门户网站进行交互这种行为是循环的,学生在连续的请求之间插入一些思考时间。这导致了封闭工作负载类型的行为,这是许多性能研究的典型特征:StdThink=(think,rthink).StdBrowseStdBrowse =(req student,browse,v). (reply student,browse,v).StdSelect StdSelect =(req student,select,v).(replystudent,select,v).标准确认StdConfirm =(req student,confirm,v). (reply student,confirm,v).StdRegister StdRegister =(req student,register,v).(replystudent,register,v).(十四)3.1.6系统方程线程和处理器的多样性在系统方程中被捕获,其中上面所示的所有顺序组件都由合适的合作算子组成,以强制共享动作之间的同步该模型的完整系统方程为:StdThink[NS]D.(门户网站[NP]D V alUni[NP]D V alCur[NP])M1M1DM2其中:数据库[ND]D 记录器[NL]M3D∗(PS1[NPS]DPD 1[NPD])∅M1={fork,join}M2={reqexternal,read,replyexternal,read,reqregister,write,replyregister,write}M 3={reqconfirm,log,replyconfirm,log,reqdatabase,ΣC.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)6985log,replydatabase,log}86C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)69值得指出的是,单独的验证线程ValUni和ValCur继承了生成它们的线程Portal的多重性级别3.2业绩计量鉴于这个模型,我们希望测量和优化一个典型的学生所观察到的表现因此,我们有兴趣计算学生请求的平均从14中的定义来看,处于StdThink状态的学生并没有试图使用该系统。因此,我们计算从学生主动使用系统进入StdBrowse状态到学生返回StdThink状态的平均时间。对于模型的默认配置,我们获得了平均响应时间的15.248个时间单位。我们现在希望优化系统的配置,以获得令人满意的性能,同时尽可能少地花费在组件上。3.3容量规划假设的电子大学服务的设计者可能能够控制的群体是那些组件:数据库,日志记录器,PD,门户,PS,V alCur和V alUni,我们不期望服务能够控制同时访问服务的学生的平均数量。因此,建模者通过固定StdThink的初始人口(在本例中为600)来假设需求水平是固定的。我们对上述响应时间性能指标的优化很感兴趣。此外,我们希望将系统的成本保持在尽可能低的水平。我们的数据有限,无法获得模型中某些活动的实际比率由于PEPA模型中时间单位的含义是不明确的,我们只需要关心速率相对于彼此的实际大小此外,如2.2节所述,我们可以设置一个阈值平均响应时间,在此之上有一个沉重的成本函数惩罚,以近似非线性性能度量成本。在这项研究中,我们有点随意地将阈值指定为15,但这并不比PEPA模型本身使用的未指定时间单位更随意。问题中的15来自于[12]中报告的600个用户的手动优化版本的模型(作为我们案例研究的PEPA模型的来源没有专业知识,很难权衡减少平均响应时间的重要性和减少系统成本的重要性因此,我们还任意设置了成本函数权重wpm(性能度量组件的权重)和wpop(人口组件的权重)。因此,我们的成本函数中包含两个任意的信息,即性能度量的惩罚阈值和权重比C.D. 威廉斯,A.Clark/Electronic Notes in Theoretical Computer Science 318(2015)6987优化NDNLNPDNPNPSNVCNVU总平均分辨率手8080408040808048015.248搜索5326341036094454155.999蛮5023311016091423987.307表1三种搜索技术的最佳配置。 第一个是手动优化,第二个是我们基于经验的搜索,最后一个是在基于经验的搜索找到的最佳配置周围的有限区域内进行蛮力搜索。启发式搜索和蛮力搜索都能找到具有较低总人口和较低平均响应时间的配置。基于经验的搜索发现三者中平均响应时间最低,而蛮力搜索发现总人口较低。的性能指标和人口组成部分的成本函数。然而,这两条信息将提供给一个现实世界的建模利用我们的能力规划扩展。3.4结果前面提到的工作介绍了我们的案例研究[12],利用ODE响应时间评估来找到一个模型的配置,该模型具有600名学生的低响应时间。表1显示了使用三种搜索方法发现的配置人群。第一个是在上面提到的工作中报告的手动优化配置,第二个是我们基于启发式的搜索,最后一个是蛮力搜索,其中搜索空间被限制在由基于启发式的搜索找到的最佳配置周围的一个小区域。在原始出版物的手工优化案例中,作者认为三个服务器数量相等,但不固定。因此,在他们的情况下,NVC=NVU=NP,这不是我们对容量规划搜索的限
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功