上传网站视频要怎么做才清楚,网站定制方案,dw和vs做网站,烟台网站推广转自CSDN博客#xff1a;http://blog.csdn.net/wallacexiang/archive/2009/07/24/4376147.aspx 随着Internet的日益普及#xff0c;无论在企业网、园区网还是在广域网如Internet上#xff0c;用户与业务量呈现出指数性增长#xff0c;尤其是在网络的关键节点和核心网络…转自CSDN博客http://blog.csdn.net/wallacexiang/archive/2009/07/24/4376147.aspx 随着Internet的日益普及无论在企业网、园区网还是在广域网如Internet上用户与业务量呈现出指数性增长尤其是在网络的关键节点和核心网络设备上网络流量迅速增大使得单一网络设备根本无法承担而如何在完成同样功能的多个网络设备之间实现业务量的合理分配而不致于出现一台设备过忙、而其他设备却未能充分发挥其作用的情况负载均衡机制及所运用的均衡算法便应运而生。1 负载均衡的基本概念 传统上有2种可能的途径来解决网站过载的问题第1种途径是通过用处理能力更强的服务器替换现有的服务器第2种是通过增加服务器来构建服务器群这2种方法都具有局限性 第1种解决方案比较昂贵并且不具有很好的扩展性在进行维护与升级时需要中断服务替换服务器的费用不仅包括新服务器的费用而且原有的服务器虽然处于功能完好的运行状态也不能再发挥作用产生效益了。 第2种解决方案是一个可以接受的相对廉价的解决方案通过增加新的服务器来提高网站的处理能力并且与原有的服务器共同工作在升级时不会中断服务其不足之处在于每一个服务器都有一个惟一的IP地址用户需要记住多个IP地址以更好地访问该站点由此也造成流量不能有效地在多个服务器之间进行分配。 负载均衡设备则是用于管理本地流量解决上述问题的解决方案。 负载均衡设备在进行流量管理时被分配一个虚拟的IP地址即VIP用户只需通过访问VIP负载均衡设备会根据当时的服务器的工作状态、负载情况按照一定的分配算法将流量分配到服务器群中的一个服务器对于用户来说服务器群是透明的用户并不知道服务器群的存在VIP即是该站点的接入地址。相对于第一种方案负载均衡设备进一步地提高了网站的可靠性这是由于当服务器群中的某一个服务器发生故障会有另外的服务器接替其工作并且负载均衡设备会确保流量不会分配到工作不正常、关机或处理能力已饱和的服务器负载均衡具有2种类型 第1种类型是本地的负载均衡即在一个站点的多个服务器间进行流量的管理与分配 第2种类型是分布式的负载均衡即在多个站点之间进行流量的管理与分配将用户分配到用户可以得到最优服务的站点。 负载均衡建立在现有网络结构之上他提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量加强网络数据处理能力提高网络的灵活性和可用性。他主要完成以下任务解决网络拥塞问题服务就近提供实现地理位置无关性为用户提供更好的访问质利用效率避免了网络关键部位出现单点失效。2 基本的网络负载均衡算法 均衡算法设计的好坏直接决定了集群在负载均衡上的表现设计不好的算法会导致集群的负载失衡。一般的均衡算法主要任务是决定如何选择下一个集群节点然后将新的服务请求转发给他。有些简单均衡方法可以独立使用有些必须和其他简单或高级方法组合使用。而一个好的负载均衡算法也并不是万能的他一般只在某些特殊的应用环境下才能发挥最大效用。因此在考察负载均衡算法的同时也要注意算法本身的适用面并在采取集群部署的时候根据集群自身的特点进行综合考虑把不同的算法和技术结合起来使用。21 轮转法 轮转算法是所有调度算法中最简单也最容易实现的一种方法。在一个任务队列里队列的每个成员节点都具有相同的地位轮转法简单的在这组成员中顺序轮转选择。在负载均衡环境中均衡器将新的请求轮流发给节点队列中的下一节点如此连续、周而复始每个集群的节点都在相等的地位下被轮流选择。这个算法在DNS域名轮询中被广泛使用。 轮转法的活动是可预知的每个节点被选择的机会是1N因此很容易计算出节点的负载分布。轮转法典型的适用于集群中所有节点的处理能力和性能均相同的情况在实际应用中一般将他与其他简单方法联合使用时比较有效。22 散列法 散列法也叫哈希法HASH通过单射不可逆的HASH函数按照某种规则将网络请求发往集群节点。哈希法在其他几类均衡算法不是很有效时会显示出特别的威力。例如在前面提到的UDP会话的情况下由于轮转法和其他几类基于连接信息的算法无法识别出会话的起止标记会引起应用混乱。 而采取基于数据包源地址的哈希映射可以在一定程度上解决这个问题将具有相同源地址的数据包发给同一服务器节点这使得基于高层会话的事务可以以适当的方式运行。相对称的是基于目的地址的哈希调度算法可以用在Web Cache集群中指向同一个目标站点的访问请求都被负载均衡器发送到同一个Cache服务节点上以避免页面缺失而带来的更新Cache问题。23 最少连接法 在最少连接法中均衡器纪录目前所有活跃连接把下一个新的请求发给当前含有最少连接数的节点。这种算法针对TCP连接进行但由于不同应用对系统资源的消耗可能差异很大而连接数无法反映出真实的应用负载因此在使用重型Web服务器作为集群节点服务时例如Apache服务器该算法在均衡负载的效果上要打个折扣。为了减少这个不利的影响可以对每个节点设置最大的连接数上限通过阈值设定体现。24 最低缺失法 在最低缺失法中均衡器长期纪录到各节点的请求情况把下个请求发给历史上处理请求最少的节点。与最少连接法不同的是最低缺失记录过去的连接数而不是当前的连接数。25 最快响应法 均衡器记录自身到每一个集群节点的网络响应时间并将下一个到达的连接请求分配给响应时间最短的节点这种方法要求使用ICMP包或基于UDP包的专用技术来主动探测各节点。 在大多数基于LAN的集群中最快响应算法工作的并不是很好因为LAN中的ICMP包基本上都在10 ms内完成回应体现不出节点之间的差异如果在WAN上进行均衡的话响应时间对于用户就近选择服务器而言还是具有现实意义的而且集群的拓扑越分散这种方法越能体现出效果来。这种方法是高级均衡基于拓扑结构重定向用到的主要方法。26 加权法 加权方法只能与其他方法合用是他们的一个很好的补充。加权算法根据节点的优先级或当前的负载状况即权值来构成负载均衡的多优先级队列队列中的每个等待处理的连接都具有相同处理等级这样在同一个队列里可以按照前面的轮转法或者最少连接法进行均衡而队列之间按照优先级的先后顺序进行均衡处理。在这里权值是基于各节点能力的一个估计值。3 动态反馈负载均衡 当客户访问集群资源时提交的任务所需的时间和所要消耗的计算资源是千差万别的他依赖于很多因素。例如任务请求的服务类型、当前网络带宽的情况、以及当前服务器资源利用的情况等等。一些负载比较重的任务需要进行计算密集的查询、数据库访问、很长响应数据流而负载比较轻的任务请求往往只需要读一个小文件或者进行很简单的计算。 对任务请求处理时间的不同可能会导致处理结点利用率的倾斜Skew即处理结点的负载不均衡。有可能存在这样的情况有些结点已经超负荷运行而其他结点基本是闲置着。同时有些结点已经忙不过28来有很长的请求队列还不断地收到新的请求。反过来说这会导致客户长时间的等待而集群整体的服务质量下降。因此有必要采用一种机制使得均衡器能够实时地了解各个结点的负载状况并能根据负载的变化做出调整。 具体的做法上采用了基于负反馈机制的动态负载均衡算法该算法考虑每一个结点的实时负载和响应能力不断调整任务分布的比例来避免有些结点超载时依然收到大量请求从而提高单一集群的整体吞吐率。 在集群内负载均衡器上运行服务端监控进程监控进程负责监视和收集集群内各个结点的负载信息而每个结点上运行客户端进程负责定时向均衡器报告自身的负载状况。监控进程根据收到的全部结点的负载信息来进行同步操作既对将要分配的任务按照权值的比例重新进行分布。权值的计算主要根据各个结点的 CPU利用率、可用内存以及磁盘IO状况计算出新的权值若新权值和当前权值的差值大于设定的阀值监控器采用新的权值对集群范围内的任务重新进行分布直到下一次的负载信息同步到来之前。均衡器可以配合动态权值采用加权轮询算法来对接受的网络服务请求进行调度。31 加权轮询调度 加权轮询调度(Weighted Round-Robin Scheduling算法用相应的权值表示结点的处理性能。该算法根据权值的高低顺序并按照轮询的方式将任务请求分配到各结点。权值高的结点比权值低的结点处理更多的任务请求相同权值的结点处理相同份额的请求。加权轮询的基本原理可描述为 假设某集群内有一组结点NN0N1…Nn1WNi表示结点Ni的权值一个指示变量i表示上一次选择的服务器TNi表示结点Ni当前所分配的任务量。 ∑T(Ni)表示当前同步周期需要处理的任务总量。 ∑W(Ni)表示结点的权值总和。则 W(Ni)/∑W(Ni)T(Ni)/∑T(Ni)表示任务的分配是按照各个结点权值占权值总数的比例来进行分配。32 权值计算 当集群的结点初次投入系统中使用时系统管理员根据结点的硬件配置情况对每个结点都设定一个初始权值DWNi通常根据结点的硬件配置来定义硬件配置越高的结点默认值越高在负载均衡器上也先使用这个权值。然后随着结点负载的变化均衡器对权值进行调整。 动态权值是由结点运行时各方面的参数计算出来的。我们在实验中选取了最重要的几项包括CPU资源、内存资源、当前进程数、响应时间等信息作为计算公式的因子。结合每个结点当前的权值可以计算出新的权值的大小。动态权值的目的是要正确反映结点负载的状况以预测结点将来可能的负载变化。对于不同类型的系统应用各个参数的重要程度也有所不同。典型的Web应用环境下可用内存资源和响应时间就非常重要如果用户以长的数据库事务为主则CPU使用率和可用内存就相对重要一些。为了方便在系统运行过程中针对不同的应用对各个参数的比例进行适当调整我们为每一个参数设定一个常量系数Ri用来表示各个负载参数的重要程度其中∑Ri1。因此任何一个结点Ni的权值公式就可以描述为 LOADNiR1LcpuNiR2LmemoryNiR3LioNiR4LprocessNiR5LresponseNi其中LfNi表示结点Ni当前某一项参数的负载值。上述公式中依次表示为CPU使用率、内存使用率、磁盘IO访问率、进程总数以及响应时间。 例如在Web服务器集群中我们采用以系数0104010103这里认为服务器的内存和请求响应时间较其他参数重要一些。若当前的系数Ri不能很好地反映应用的负载系统管理员可以对系数不断地修正直到找到贴近当前应用的一组系数。 另外关于采集权值的周期值虽然很短的周期可以更确切地反映各个结点的负载但是很频繁地采集如1 s 1次或者多次会给均衡器和结点带来负担也可能增加不必要的网络负荷。另外由于采集器是在采集时刻进行负载计算的经实验证明均衡器反映出来各个结点的负载信息会出现剧烈的抖动均衡器无法准确捕捉结点真实的负载变化趋势。因此解决这些问题一方面要适当地调整采集负载信息的周期一般在510 s另一方面可以使用移动均均线或者是滑动窗口来避免抖动使得均衡器收集到的负载信息表现为均滑曲线这样在负反馈机制的调整效果上就会比较好。 均衡器的动态权值采集程序周期性地运行若缺省权值不为0则查询该结点的各负载参数并计算出动态权值LOADNi。我们引入以下权值计算公式结合结点的初始权值和采集的动态权值来计算最终的权值结果。WiADWNiBLOADNiDWNi13 在公式中如果动态权值恰好等于初始权值最终权值不变则说明系统的负载状况刚好达到理想状况等于初始权值DWNi。如果动态权值计算结果高于初始权值最终权值变高则说明系统负载很轻均衡器将会增加分配给该结点的任务比率。如果动态权值低于初始权值最终权值变低说明系统开始处于重载状况均衡器将会减少对该结点分配的任务。在实际使用中若发现所有结点的权值都小于他们的DWNi则说明当前个集群处于超载状态这时需要加入新的结点到集群中来处理部分负载反之若所有结点的权值大大高于DWNi则说明当前系统的负载都比较轻。4 结 语 网络负载均衡是集群作业调度系统的具体实现。由于其处理的作业单元是TCPIP协议下的网络连接因此可以采用面向网络连接的集中基本调度算法。考虑集群负载不均衡的可能采取了动态获取服务节点的权值并使用负反馈机制调整均衡器对网络服务请求的分布以适应服务节点在运行过程中资源的变化。实践证明采用动态均衡在集群系统的整体吞吐量方面有所提高特别是在集群各个节点性能不一集群提供的网络服务程序所访问的资源多样化的情况下负反馈机制的效果尤其明显。在其他类型的集群中负反馈机制的动态负载均衡也能够得到很好的应用只是均衡器所处理的作业单元不同于网络连接而具体的负载算法上也将有所不同。 参考文献1 杨义先等信息安全新技术M北京邮电大学出版社20022 杨义先等网络信息安全与保密M北京邮电大学出版社2001 转载于:https://www.cnblogs.com/millen/archive/2010/03/11/1683624.html