基于Nginx的服务器集群负载均衡策略的研究与改进
发布时间:2021-01-21 03:57
随着互联网技术的广泛普及,网络流量和网络用户基数越来越大,单一服务器在应对爆炸式增长的并发访问请求时承受巨大的负载压力,会出现响应延迟的情况。目前解决这一问题的有效方案是搭建基于Nginx的服务器集群系统,而负载均衡作为集群系统的研究重点备受关注。负载均衡主要通过将大量请求合理分发给集群各服务器进行处理以提升整个系统的吞吐量、资源利用率并降低请求的响应时间。因此负载均衡策略的优劣对集群系统性能的提升起着至关重要的作用。本文通过研究Nginx的核心数据结构、进程工作模型、配置文件系统、反向代理机制、负载均衡策略以及源码模块结构,在Nginx加权轮询算法的基础上,提出一种动态自适应负载均衡算法。该算法通过采集服务器运行时CPU、内存、网络带宽、磁盘IO四项负载指标利用率计算剩余负载权值,同时采集服务器最近一段时间内处理请求的响应时间信息计算响应时间权值,并由以上两部分权值得到服务器实时动态权值。该算法还将所有服务器最近一次响应时间的平均值作为阈值把服务器状态划分为轻载和重载,并将各轻载服务器的动态权值作为权值因子用来调整Nginx加权轮询算法中的权值参数,从而达到根据服务器负载性能实时修改...
【文章来源】:华南理工大学广东省 211工程院校 985工程院校 教育部直属院校
【文章页数】:77 页
【学位级别】:硕士
【部分图文】:
Netcraft2020年3月的统计报告以上具体的统计数据如表1-1所示,截至2020年3月,在共计1,263,025,546个站
第二章相关理论与技术研究9(3)负载均衡集群负载均衡集群是由多个处理请求的业务服务器和负责分发请求的负载均衡器组成的集群[21]。当客户端请求到来时,负载均衡器一般不会直接对请求进行处理,而是将请求依据其配置的负载均衡技术分发到上游集群各服务节点,由上游服务节点处理并产生响应。在大流量并发访问场景下,该类集群能够将大量请求合理分摊到各个服务节点,并结合集群自身架构优势以快速高效的工作模式对持续性增长的业务请求进行处理,以达到充分发挥集群服务器性能的目的。但是负载均衡集群存在一定缺陷,即负载均衡器无法对集群服务器运行时负载状况进行监控,因而分配请求时容易导致服务器过载或者空闲情况的出现。针对这种情况,该类集群将收集业务服务器动态负载状况的性能监控程序部署在请求分发服务器上,通过该程序可以时时掌控上游服务器的负载性能变化。这种收集服务器负载状态的集群系统持续性接收上游服务器的负载信息,可以及时剔除上游故障服务器,并能在该服务器隔段时间性能恢复后再次将其加入到集群中继续对外服务。本论文的研究内容即负载均衡集群,如图2-2所示为负载均衡集群的基本结构。图2-2负载均衡集群基本结构2.1.3服务端性能指标服务器集群投入到实际生产环境之后,需要应对各种错综复杂的大流量网络请求场景,这对服务器的性能提出了更高的要求。于是在服务器运维过程中,需要针对不同的
华南理工大学硕士学位论文30由公式(3-7)可算得Linux系统CPU当前的总时间T,单位为Jiffies:T=user+nice+system+idle+iowait+irq+softirq(3-7)本文计算CPU利用率采取的方法是:1)选取两个间隔很短的时间点进行采样,使用公式(3-7)分别求取CPU总时间为1T、2T,通过公式(3-8)得到此间隔内CPU的总时间total。21total=TT(3-8)2)通过公式(3-9)求取CPU在此时间间隔内的空闲时间idle。21idle=idleidle(3-9)3)最后CPU利用率cpuU通过公式(3-10)计算得到。()/cpuUtotalidletotal(3-10)(2)内存利用率在Linux系统启动后,/proc/meminfo文件将保存系统内存各组成部分的使用详情并做到实时数据更新。如图3-4所示为读取该文件获取到的部分信息。图3-4/proc/meminfo获取内存实时使用情况于是,内存利用率memU可由公式(3-11)计算得到:1()/memUMemFreeBuffersCachedMemTotal(3-11)(3)网络带宽利用率如图3-5所示,在Linux系统下的/proc/net/dev文件可以获取到系统当前各个网卡的网速及网络包的收发情况。本文主要关心Receive和Transmit的bytes项,表示该网口接收和发出网络包的总大小,单位为字节(byte)。图3-5/proc/net/dev获取系统网络带宽参数
本文编号:2990412
【文章来源】:华南理工大学广东省 211工程院校 985工程院校 教育部直属院校
【文章页数】:77 页
【学位级别】:硕士
【部分图文】:
Netcraft2020年3月的统计报告以上具体的统计数据如表1-1所示,截至2020年3月,在共计1,263,025,546个站
第二章相关理论与技术研究9(3)负载均衡集群负载均衡集群是由多个处理请求的业务服务器和负责分发请求的负载均衡器组成的集群[21]。当客户端请求到来时,负载均衡器一般不会直接对请求进行处理,而是将请求依据其配置的负载均衡技术分发到上游集群各服务节点,由上游服务节点处理并产生响应。在大流量并发访问场景下,该类集群能够将大量请求合理分摊到各个服务节点,并结合集群自身架构优势以快速高效的工作模式对持续性增长的业务请求进行处理,以达到充分发挥集群服务器性能的目的。但是负载均衡集群存在一定缺陷,即负载均衡器无法对集群服务器运行时负载状况进行监控,因而分配请求时容易导致服务器过载或者空闲情况的出现。针对这种情况,该类集群将收集业务服务器动态负载状况的性能监控程序部署在请求分发服务器上,通过该程序可以时时掌控上游服务器的负载性能变化。这种收集服务器负载状态的集群系统持续性接收上游服务器的负载信息,可以及时剔除上游故障服务器,并能在该服务器隔段时间性能恢复后再次将其加入到集群中继续对外服务。本论文的研究内容即负载均衡集群,如图2-2所示为负载均衡集群的基本结构。图2-2负载均衡集群基本结构2.1.3服务端性能指标服务器集群投入到实际生产环境之后,需要应对各种错综复杂的大流量网络请求场景,这对服务器的性能提出了更高的要求。于是在服务器运维过程中,需要针对不同的
华南理工大学硕士学位论文30由公式(3-7)可算得Linux系统CPU当前的总时间T,单位为Jiffies:T=user+nice+system+idle+iowait+irq+softirq(3-7)本文计算CPU利用率采取的方法是:1)选取两个间隔很短的时间点进行采样,使用公式(3-7)分别求取CPU总时间为1T、2T,通过公式(3-8)得到此间隔内CPU的总时间total。21total=TT(3-8)2)通过公式(3-9)求取CPU在此时间间隔内的空闲时间idle。21idle=idleidle(3-9)3)最后CPU利用率cpuU通过公式(3-10)计算得到。()/cpuUtotalidletotal(3-10)(2)内存利用率在Linux系统启动后,/proc/meminfo文件将保存系统内存各组成部分的使用详情并做到实时数据更新。如图3-4所示为读取该文件获取到的部分信息。图3-4/proc/meminfo获取内存实时使用情况于是,内存利用率memU可由公式(3-11)计算得到:1()/memUMemFreeBuffersCachedMemTotal(3-11)(3)网络带宽利用率如图3-5所示,在Linux系统下的/proc/net/dev文件可以获取到系统当前各个网卡的网速及网络包的收发情况。本文主要关心Receive和Transmit的bytes项,表示该网口接收和发出网络包的总大小,单位为字节(byte)。图3-5/proc/net/dev获取系统网络带宽参数
本文编号:2990412
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/2990412.html