第十一讲负载均衡服务.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一讲 负载均衡服务 仅十多年年来,对效率问题的重视程度有所下降: 为提高开发效率,人们往往以牺牲代码效率为代价 例如大量系统软件、框架的引入 方便了应用软件的开发 同时导致调用层次过多、系统执行效率下降 只是由于硬件速度与容量提升较快 盖过了软件效率的下降 使最终用户感觉系统速度还是增加了 为了提高用户的响应时间 许多系统以大量的重复冗余计算为代价: 为同一个用户请求创建在多个机器上的计算 并将最先得到的结果返回给用户 将后续得到的结果直接抛弃 google:一次Google搜索所消耗的电能可以足够一个11瓦的节能灯亮15分钟到一个小时 降低对效率的追求 是导致IT系统能耗增长的因素之一 随着能源问题的日趋突出 这方面的研究迫切需要加强 如何提高效率? 基本过程: 分析效率=发现问题=调整 基本方式: 离线 ? 在线 二、效率的分析方法 1、静态分析 2、动态测试 3、在线监测 1、静态分析 通过静态分析可以发现程序中: 从来就不会执行的代码(Dead Code) 不会被引用的变量或者赋值操作 不需要的检查 不必要的串复制(strcpy)、数字转换 等等 然后就可以对代码进行优化: 在不改变程序语义的前提下 剔除冗余的代码,从而减少内存开销,提高执行效率 2、测试 这个过程需要自动化的测试工具来辅助完成: 测试工具主要用来模拟多种正常、峰值以及异常负载条件 从而对系统的各项性能指标进行测试 效率测试可以使在用户模拟的环境中进行的 由于软件的运行效率与运行环境有很大的关系 因此效率测试更需要在系统部署到实际环境中 但还没有实际上线时进行 3、在线监测 在系统实际运行过程中分析性能 对效率进行监测的主要对象包括: 系统的响应时间 CPU负载情况 内存使用 客户连接实例数目 内部类型的实例数目 数据库连接实例数目 等等 三、负载平衡 在由大量处理结点组成的集群系统中 系统在服务过程中 提高资源利用率 降低请求响应时间 的有效手段 1、负载平衡方案 2、Web层的负载平衡 3、EJB层的负载平衡 4、动态负载平衡技术 1、负载平衡方案 负载平衡点 负载平衡粒度 负载平衡算法 负载平衡点 负载平衡点指作出负载平衡决策的位置 独立的负载均衡器上、服务节点自身、客户端 在多数情况下负载平衡由单个节点完成 单点负载平衡好处: 便于获得系统的全局状态,作出全局一致的决策; 能实现复杂的负载平衡算法,获得最优的效果; 便于支持多种平衡策略,适用于不同的应用环境 单点负载平衡的不足: 负载平衡点可能成为性能瓶颈 影响系统的伸缩性 也可能单点失效 多点负载平衡 可以获得比较好的伸缩性,但一般仅能使用静态算法 存在两种类型的多点负载平衡 一种是多个节点独立地进行决策,其综合效果取决于单个节点的负载平衡效果与多个节点的叠加效果; 另一种是多个节点并行地做出相同的决策,如根据请求的源地址(或目标地址)进行静态散列以确定服务节点,此时多个物理负载平衡点等价于单个逻辑负载平衡点。 当客户数量众多而又无法依赖高速硬件来完成负载分发时,多点负载平衡可能是必须的 负载平衡粒度 指负载分发(或迁移)基本单位的组合程度 对于网络层的负载平衡,基本单位是IP数据报。一种可能的负载平衡粒度是目标地址为同一个IP的所有数据报(如Linux服务器集群系统的目标地址散列调度算法) 对于分布对象中间件而言,基本单位是对象请求。常见的两种负载平衡粒度是请求级与会话级。请求级(per-request)指每次对象调用时都作负载分发 会话级(per-session)指的是仅在查找或首次调用一个对象时进行负载决策,而后针对该对象引用的所有请求都被发往同一个节点 直观上,粒度越细,负载平衡效果越好,但用于负载平衡的开销也越大 负载平衡算法 具体的负载平衡实施方法 根据决策时是否使用运行时刻的信息(如各节点的负载状况、请求的类型或内容),负载平衡算法可以分为静态算法与动态算法两大类 静态算法 静态算法也称为非适应性算法,不使用运行时刻的信息 常用的静态算法有轮循、随机及加权轮循 算法(weighted round-robin)等几种 其中轮循与随机算法适合于所有节点处理能力相当的情况,静态加权算法适合于节点处理能力不同的情况 动态算法 动态算法也称为适应性算法,参考运行时的系统信息做出负载平衡决策 一般只有单点负载平衡才能使用动态算法 常见的动态算法可分为两类 一类算法仅使用系统的负载信息。典型的例子是最低负载法(least loaded),即每次负载决策都选当前负载最轻的节点 另一类算法不仅考虑系统负载,还兼顾请求的内容以获得更好的总体性能,例如基于局部性的负载分发

文档评论(0)

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

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

1亿VIP精品文档

相关文档