论文部分内容阅读
现代社会接入互联网的设备和用户迅猛增加,对网络服务器提出了更高的要求。用户对并发量、资源使用率和响应时间等性能要求越来越高,采用Nginx多服务器集群系统是目前常用也是效果较好的解决方案,其中比较核心的问题是负载均衡,负载均衡策略的好坏直接影响系统性能的发挥。本文通过分析Nginx的源码、数据结构、主要模块、负载均衡算法、架构以及主进程和工作进程的原理,在Nginx原有加权轮询算法的基础上改进了一种动态负载均衡算法。该算法收集的负载数据主要包括节点CPU的剩余性能、磁盘IO的剩余性能、内存的剩余性能、网络带宽的剩余性能,然后通过动态加权轮询算法将负载数据转换为对应的权重,并修改Nginx加权轮询算法中的权值达到动态负载均衡的目的。实验测试环境是在Linux系统的基础上搭建Nginx与Tomcat服务器集群系统,利用性能测试工具Httperf以及Autobench对Nginx内置的静态加权轮询算法以及第三方负载均衡算法fair与本文改进的动态加权轮询算法进行性能比较,发现动态加权轮询算法并发连接数的峰值和负载进入饱和状态下的平均值比静态加权轮询算法提高了 17.4%和20.3%,比第三方的负载均衡算法fair提高了 6.9%和8.3%,响应时间也比其它两种算法更短,同时响应时间和并发连接数抖动更小。实验结果验证了本文改进的动态加权轮询算法要优于Nginx内置算法和第三方负载算法fair。与以上两种负载均衡算法相比,本论文改进的动态加权轮询算法具有以下几个特点:(1)根据节点综合性能进行评估,收集节点相关性能数据,计算得出节点对应的权值,比个人经验对节点权值进行赋值的方式更加有效。(2)在负载判定方面,本文设置了权重修改阈值,当集群各节点综合负载的方差超过阈值T时,说明集群负载不均衡需要修改节点的权值。(3)通过多属性决策中的层次分析法计算评价指标的权系数K。