论文部分内容阅读
随着互联网技术的广泛普及,网络流量和网络用户基数越来越大,单一服务器在应对爆炸式增长的并发访问请求时承受巨大的负载压力,会出现响应延迟的情况。目前解决这一问题的有效方案是搭建基于Nginx的服务器集群系统,而负载均衡作为集群系统的研究重点备受关注。负载均衡主要通过将大量请求合理分发给集群各服务器进行处理以提升整个系统的吞吐量、资源利用率并降低请求的响应时间。因此负载均衡策略的优劣对集群系统性能的提升起着至关重要的作用。本文通过研究Nginx的核心数据结构、进程工作模型、配置文件系统、反向代理机制、负载均衡策略以及源码模块结构,在Nginx加权轮询算法的基础上,提出一种动态自适应负载均衡算法。该算法通过采集服务器运行时CPU、内存、网络带宽、磁盘IO四项负载指标利用率计算剩余负载权值,同时采集服务器最近一段时间内处理请求的响应时间信息计算响应时间权值,并由以上两部分权值得到服务器实时动态权值。该算法还将所有服务器最近一次响应时间的平均值作为阈值把服务器状态划分为轻载和重载,并将各轻载服务器的动态权值作为权值因子用来调整Nginx加权轮询算法中的权值参数,从而达到根据服务器负载性能实时修改服务器权值的目标。本文还搭建了一套Nginx和Tomcat的集群测试系统,使用性能测试工具Autobench对加权轮询算法、IP-HASH算法、第三方fair算法以及本文提出的动态自适应算法进行大量性能对比测试。结果表明,动态自适应算法实际并发连接数在负载饱和状态下相较于其他三种算法中最优的fair算法提升了7.9%,相较于原加权轮询算法提升了14.6%,响应时间也比其他几种算法要短,从而证明本文提出的动态算法是可行的。与以上其他三种负载均衡算法相比,本文提出的算法具有如下几个特点:(1)综合硬件资源利用率和响应时间信息来评估服务器性能更加全面完善。(2)采用层次分析法科学计算评价函数权系数向量,构建综合负载决策函数对服务器权值进行赋值,相比于人工设置的固定式权值更加有效。(3)设定自适应权值修改阈值,对处于轻载状态的服务器进行权值的调整。动态自适应算法选取当前权值最大的轻载服务器分配请求,集群负载状态保持动态均衡。