网站大量收购独家精品文档,联系QQ:2885784924

分布式系统中负载平衡算法分析.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分布式系统中负载平衡算法分析

摘要:该文简单描述了负载平衡算法提出的原因,负载平衡算法的分类以及动态平衡算法的需求。详细分析了动态负载平衡中的接受者驱动、发送者驱动和双向驱动算法以及双向驱动算法的改进算法,并对各算法的优缺点进行了分析。 关键词:分布式系统 动态负载平衡 1.引言 分布式系统是由多台分散的计算机连接而成的系统,其中各个资源单元(物理的或逻辑的)既互相协同又高度自治,能在全系统范围内实现资源管理,动态地进行任务分配或功能分配,并能并行地运行分布式程序。分布式系统具有良好的可用性、 可扩展性、 可靠性和健壮性,并为用户提供透明方便的用户界面。因此,近年来随着一些高速网络的兴起,分布式计算机系统日益得以广泛的应用并受到人们的重视。经过研究发现,影响处理系统性能的因素包括处理机间的通信开销和分配的负载平衡等,但减少处理机的通信开销和均衡负载是相互冲突的两个因素,它们左右着任务分配策略。如负载均衡可以提高整个系统的吞吐量,因为它试图将模块尽可能均等地分配给处理机,但减少处理机的通信开销又迫使分配策略不得不尽可能地把较多的模块分配给尽可能少的处理机。由于一些并行任务之间的互相依赖关系和通讯量的大小很难在编译时就进行确定,所以人们更多地倾向于动态负载平衡的研究。随着研究的深入进行,人们注意到在一个由网络所连接起来的多个计算机系统环境中,在某一时刻,一些计算机系统的负载很重而另外一些计算机系统的负载却很轻,影响了整个系统资源的利用率。由此,我们应该采用有效的负载平衡策略,即在减少处理机通信开销的基础上,提出行之有效的算法,提高整个系统资源的利用率。 1.1 减少处理机通信开销 系统管理站设计一个信息区,各模块每通信一次,节点累加器自动累加一次,最终将通信的模块信息和累加的次数一起存储到系统管理站的信息区。待系统下次运行时,系统管理站会根据信息区中以前模块信息通信的高低次数排序,按信息区的记录情况将通信频繁的模块安排到同一个节点,从而减少处理机的通信开销。 1.2 负载平衡算法 1.2.1概述 负载平衡也称负载共享,是指对系统中的负载情况进行动态调整,以尽量消除或减少系统中各站点负载不均匀的现象。因此,如何准确地评估各节点的工作负载能力并且分配新的请求任务到每个节点,成为分布式系统取得负载平衡的关键。 1.2.2 负载平衡算法的需求 (1)最小化客户请求的派发时间,使客户请求能够迅速地被派发给相应的服务副本,而不会因为低效的副本选择导致延迟。 (2)最小化客户请求响应时间和最大化系统的吞吐量,使系统能够获得最高的性能和最大的资源利用率,最小化资源的空闲时间。 (3)客户请求的响应时间具有可预期性。 (4)保证副本间负载分配的平衡,从而降低发生过载的可能性,确保服务的可用性和系统的可靠性,同时能够在一定程度上抵御负载峰值的冲击。 (5)具有好的可扩展性,不依赖于某种特定的资源或结构,也不对系统中结点或副本的数目做出任何假设。 (6)最小化系统的通信开销。 1.2.3 负载平衡算法的分类 负载平衡算法可分为动态算法和自适应算法两大类。 动态算法是根据系统状态对可以接受任务的站点进行分析,可以将任务迁移到空闲站点,甚至可以将正在执行的任务迁移到其他空闲站点,但要注意的是,信息的收集、分析及作出决定要造成额外开销,不可小视。 自适应算法是通过动态改变参数甚至策略来调整自身的行为,以适应正在改变的系统状态。如,某种负载平衡算法在A情况下的性能优于其他算法,而另一种算法在B情况下更优,自适应算法能够根据系统状态的变化选择合适的算法。在无法通过任务迁移提高系统性能的情况下,自适应算法是很好的选择。对按一次局部负载平衡调度的启动者来说,又可分为接收者主动和发送者主动两种。其中,在发送者主动算法中,当一个站点超载时,它就尝试将任务发送给一个轻载站点,整个算法的思想是负载较重的节点试图甩掉超额的工作。接收者主动算法与发送者主动算法相反,当一个站点的任务队列长度小于阀值时,它就尝试从重载站点接收一个任务。综合以上算法,本文针对考虑节点工作负载能力、请求负载差异的和配置相对简单的因素,在减少处理机的通信开销基础上提出了双向主动均衡算法。 2. 动态负载平衡算法 2.1发送者主动算法 发送者主动算法的思想是:当进程被创建时,它就运行在创建它的节点上,除非该节点过载了。过载节点的度量可能涉及太多的进程、过大的工作集或者其他度量。如果过载了,该节点任意选择另一个节点并询问它的负载情况(使用同样的度量)。如果被探查的节点负载低于某些阀值,就将新的进程发送到该节点上。如果不是,则选择另一个机器探查。该策略需要交换处理器的负载信息,一个节点有多种方法 向邻接节点通知它的负载情况,如定期询问、每当任务数发生变化、接收到执行任务请求、响应请求或者当任务数超过一定阈值时。 启动时,所有节点开始执行

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档