论文部分内容阅读
目前,互联网已经得到了广泛的普及与应用,甚至离开互联网我们将无法正常的工作和生活。个人电脑和移动设备的发展,使得即时信息与娱乐服务变的更加方便精巧,基础用户的不断增加使得应用访问量变得巨大。为了提供安全可靠的服务,服务器端正在面临着越来越大的压力。考虑到系统的可扩展性和成本效益,各技术团队相继提出了集群分布式的技术构建自己的服务器体系系统。高并发Web服务器端的负载均衡技术,作为集群体系系统研究的核心,解决了系统在接受大量请求时任务合理分配的问题。Nginx作为高效的Web服务器,已经成功的帮助许多技术团队解决服务器端高负载的问题。本文首先介绍了Nginx系统模块架构以及进程工作原理。然后对原有加权轮询、IP哈希以及最少连接数策略进行了分析,针对其优缺点,提出一种动态调节权重的负载均衡策略。这种动态策略是在原有加权轮询策略进行了改进,根据运行中节点的CPU、内存、磁盘IO以及网络的性能情况,对节点权重进行动态的更新,使运行中的系统各节点能够分配到与其当前负载能力相对应的请求任务量,增强了集群的性能,提高了效率。通过分析Nginx的模块源码以及数据结构,设计了这种动态策略的处理流程并且进行了实现。最后,利用siege性能测试工具对原有加权轮询策略和本文所提出动态策略进行性能测试,通过实验证明,本文所提出的这种动态策略更好的实现了负载均衡。相比于原有负载均衡策略,本文提出的这种动态调节权重的负载均衡策略具有如下几个特点:(1)更综合的节点性能评估,通过对后端服务器各节点CPU、内存、磁盘IO以及网络带宽等性能情况收集,计算得出该节点的性能权重,相比与经验性的赋值,这种计算方法更加综合有效。(2)设定权重修改阈值,在动态调节权重的负载均衡策略中,频繁的修改权重,有时不仅不会带来性能的提高,反而会造成系统的抖动,所以通过计算节点资源使用率标准差,来判断节点负载是否均衡,如果不均衡,即标准差高于预先设定的阈值,则启动权重修改流程。(3)设定冗余的概念,周期性的收集节点负载信息,为了更好的对周期内节点负载情况作出预测,防止节点过载,根据上一周期的负载情况,计算该周期的冗余性能,当冗余值过低,则对该节点分配更少的任务。(4)动态的修改权重,当判断需要对权值进行修改时,系统会根据该节点资源利用率的情况,计算出一个增量,对于该节点负载的过多或过少,实行权重对该增量的减法和加法的操作,并将变动的权值进行更新。