CN113110933A - 一种具有Nginx负载均衡技术的系统 - Google Patents
一种具有Nginx负载均衡技术的系统 Download PDFInfo
- Publication number
- CN113110933A CN113110933A CN202110263900.5A CN202110263900A CN113110933A CN 113110933 A CN113110933 A CN 113110933A CN 202110263900 A CN202110263900 A CN 202110263900A CN 113110933 A CN113110933 A CN 113110933A
- Authority
- CN
- China
- Prior art keywords
- server
- load
- web server
- nginx
- performance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 19
- 230000010365 information processing Effects 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims abstract description 10
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000005259 measurement Methods 0.000 claims description 2
- 230000007334 memory performance Effects 0.000 claims description 2
- 238000010606 normalization Methods 0.000 claims description 2
- 238000011160 research Methods 0.000 claims description 2
- 230000003068 static effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
一种具有Nginx负载均衡技术的系统,包括Nginx服务器和由若干个Web服务器组成的Web服务器集群,用户向Nginx服务器发出请求后,Nginx服务器接受到来自客户端的请求后收集每个Web服务器的负载信息并将其存储,并进行信息处理,选择出最适合的Web服务器;所述的Nginx服务器接收并处理用户发起的动态请求,包括负载信息收集模块和信息处理模块。负载信息收集模块,周期性接收并收集各个Web服务器的负载信息并将其存储在数据库服务器中。所述的信息处理模块,从负载信息收集模块中获取每个web服务器的负载信息,通过预先配置的动态负载均衡算法,计算各Web服务器的权重。Web服务器集群,由多个web服务器组成,用于处理来自客户端的不同的请求。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种具有Nginx负载均衡技术的系统。
背景技术
近年来,随着Internet的飞速发展,对网络服务的需求也在增长,导致页面加载速度太慢,并且在并发数据请求量大的情况下网站没有响应,因此已经成网站管理员要解决的问题。当单个服务器负载太大时,通常的方法是升级主机。但是,单个主机的能力有限,而高性能主机则很昂贵。另外,服务器集群成本低廉,可扩展性好,已经成为解决此问题的有效方法。集群由彼此独立的一组计算机组成,这些计算机通过高速网络互连并在单个系统模式下进行管理。负载均衡系统是服务器集群的核心部分,负载均衡算法是传递用户请求的关键。
现有的负载均衡算法可以分为两类:静态和动态。静态负载均衡算法以固定的概率分配任务,这些任务不考虑服务器的状态信息;动态均衡算法根据服务器的实时负载状态信息分配任务。动态均衡算法包括最小连接法,加权最小连接法,基于位置的最小连接法。
在实际应用中,影响客户端访问频率,节点网络负载的因素很多,难以预测。如果系统长时间运行,则无法及时纠正负载,因此负载均衡的效果不好。大型企业一般通过大幅度提升服务器的硬件性能来处理Web服务器高并发这种问题。然而昂贵的硬件设备使得一些小型企业望而却步,小型企业从软件角度出发,通过优化应用系统的架构设计,采用集群系统来解决大量的Web访问请求,满足客户需求。
发明内容
为了解决以上问题,通过比较静态负载均衡和动态负载均衡算法的优缺点,本发明提供了一种具有Nginx负载均衡技术的系统,提出一种动态负载均衡算法,该算法可以实时收集服务器负载信息并动态调整权重。
本发明的目的可以通过以下技术方案实现:
一种具有Nginx负载均衡技术的系统,其特征在于:包括Nginx服务器和由若干个Web服务器组成的Web服务器集群,用户向Nginx服务器发出请求后,Nginx服务器接受到来自客户端的请求后收集每个Web服务器的负载信息并将其存储,并进行信息处理,选择出最适合的Web服务器;
所述的Nginx服务器接收并处理用户发起的动态请求,包括负载信息收集模块和信息处理模块。
所述的负载信息收集模块,周期性接收并收集各个Web服务器的负载信息并将其存储在数据库服务器中,所述的负载信息包括CPU利用率、内存利用率、网络利用率和磁盘利用率的指标。所述的数据库服务器为缓存数据库Redis。
所述的信息处理模块,从负载信息收集模块中获取每个web服务器的负载信息,通过预先配置的动态负载均衡算法,计算各Web服务器的权重。
所述的动态负载均衡算法是在Nginx加权轮询算法的研究基础上提出的一种动态自适应负载均衡算法。具体实现过程如下:
令n个指标为X1,X2,...Xn,k台Web服务器,则归一化值为Y1,Y2,...Yn,其中Xi={xi1,...,xik}代表第k台服务器第i项性能指标,由于指标的度量单位不一致,因此必须首先将数据归一化。它使用Min-max归一化将结果值映射到[0,1]。归一化计算公式如下,其中Yij是服务器j的性能指标i的归一化值:
将Cj、Nj、Dj、Mj定义为服务器节点j的剩余CPU性能、网络带宽剩余性能、磁盘剩余性能和内存剩余性能,TC、TN、TD、TM为所有服务器节点的剩余CPU性能,网络带宽性能,磁盘性能和内存性能。对于任何服务器节点j,其初始权重为计算公式如下,参数Arg是为了对上述计算所得的结果取整:
当web服务器集群处理大量的HTTP请求时,由于请求中分配的请求量和需要处理的数据量很大,一些节点会处于高负载状态,一些节点会处于低负载状态,这使得web服务器集群的性能不能得到充分利用。有必要实时监控web服务器节点的负载,并调整节点权重。但是,计算节点权重往往会消耗太多的计算机资源,因此使用下面的公式来计算当前服务器节点的负载。
Uj=Wcpu*Cj+Wnet*Nj+Wio*Dj+Wmem*Mj (3)
Uj是当前web服务器节点的总体剩余性能。通过设置两个阈值H和L,来判断web服务器负载情况。当Uj≤H时,表示当前web服务器j处于高负载状态。当web服务器j的Uj≥L时,确定当前服务器节点j处于低负载状态。
Fj为当前web服务器节点在web服务器的所有节点中的剩余性能比率。服务器节点权重可以调整如下:
通过权值调整,改善了服务器节点负载不平衡的情况。但是,加权的不平衡通常是由短时间内的高并发访问引起的。因此,当不存在高负载节点时,服务器节点权重将逐渐调整为初始权重。
所述的Web服务器集群,由多个web服务器组成,用于处理来自客户端的不同的请求。
本发明的有益效果:
(1)加入Redis数据库作为负载信息的缓存,将缓存记录放到内存中,加快了查询速度。
(2)新的动态负载均衡算法获取服务器CPU,磁盘IO,网络带宽和内存,计算权重,选出相对空闲的服务器进行下一步判断。
(3)所述的动态负载均衡算法是一种基于Nginx负载均衡的动态加权循环算法。通过比较静态负载均衡和动态负载均衡算法,对基础的加权循环算法进行改进,使得负载均衡效果更好。
附图说明
图1是由本发明专利的Nginx服务器以及Web服务器集群组成的系统框架图。
图2是Nginx服务器处理客户端动态请求流程图。
图3是动态负载均衡算法流程图。
具体实施方式
下面结合附图1~图3对本发明作进一步描述。
一种具有Nginx负载均衡技术的系统,包括Nginx服务器和Web服务器集群;
所述的Nginx服务器接收并处理用户发起的动态请求,包括负载信息收集模块和信息处理模块。
所述的负载信息收集模块,周期性接收并收集各个Web服务器的负载信息并将其存储在数据库服务器中,所述的负载信息包括CPU利用率、内存利用率、网络利用率和磁盘利用率的指标。所述的数据库服务器为缓存数据库Redis。
所述的信息处理模块,从负载信息收集模块中获取每个web服务器的负载信息,通过预先配置的动态负载均衡算法,计算各Web服务器的权重。
所述的Web服务器集群,由多个web服务器组成,用于处理来自客户端的不同的请求。
本发明实现的动态负载均衡算法,步骤如下:
S1、当Nginx收到客户端的动态请求时,会根据当前各个业务服务器的权重进行任务分配,将请求发送给权重最大即处理能力最强的业务服务器节点,以保证请求能够有效地得到处理。
S2、Nginx服务器启动后,Nginx中的负载信息收集模块会周期性读取各个业务服务器的负载信息,并将数据存储在数据库服务器中,由信息处理模块对获取到的负载信息进行权重计算,并将处理的结果发送给Nginx服务器。
S3、Nginx服务器收到信息处理模块的反馈信息后,会根据预先设置的动态负载均衡算法做出相应的处理,若反馈信息中要求更新业务服务器节点的当前权重,则对该服务器节点的权重进行重新赋值。
所述步骤S1中,Nginx处理客户端请求的流程如图2所示。当客户端向服务器发起动态请求后,Nginx服务器首先比较该服务器集群中各个节点的权重,将请求发送给权重最大的服务器节点。若请求发送给服务器节点成功,则返回客户端所需的结果;若请求发送给服务器节点失败,且重复发送失败的次数大于20次,则Nginx服务器不再向该服务器发送请求。
所述的步骤S3中,所述的动态负载均衡算法如图三所示。新的动态负载均衡算法是在原有Nginx加权轮询算法的基础上,根据各个业务服务器节点的运行状态,对其负载均衡的权重进行重新赋值,防止各节点出现过载问题。同时,为避免出现频繁更新权重而导致的资源浪费问题,此负载均衡算法中通过计算服务器节点的负载,将计算所得的负载与阈值进行比较,判断负载情况。当业务服务器节点的处于低负载或高负载情况下,Nginx服务器才会对该节点的权值进行更新。
本发明的具体实施步骤为:
(1)初始化Nginx服务器,并为各业务服务器节点赋初始权值;
(2)当Nginx服务器收到客户端的请求后,将请求发送给权值最大的业务服务器;
(3)Nginx中的负载信息收集模块会周期性读取各个业务Web服务器的负载信息,并将数据存储在数据库服务器中,由信息处理模块对获取到的负载信息进行权重计算,并将处理的结果发送给Nginx服务器。
(4)Nginx收到反馈信息后,对各业务Web服务器的权值做出相应的处理。
Claims (1)
1.一种具有Nginx负载均衡技术的系统,其特征在于:包括Nginx服务器和由若干个Web服务器组成的Web服务器集群,用户向Nginx服务器发出请求后,Nginx服务器接受到来自客户端的请求后收集每个Web服务器的负载信息并将其存储,并进行信息处理,选择出最适合的Web服务器;
所述的Nginx服务器接收并处理用户发起的动态请求,包括负载信息收集模块和信息处理模块。
所述的负载信息收集模块,周期性接收并收集各个Web服务器的负载信息并将其存储在数据库服务器中,所述的负载信息包括CPU利用率、内存利用率、网络利用率和磁盘利用率的指标。所述的数据库服务器为缓存数据库Redis。
所述的信息处理模块,从负载信息收集模块中获取每个web服务器的负载信息,通过预先配置的动态负载均衡算法,计算各Web服务器的权重。
所述的动态负载均衡算法是在Nginx加权轮询算法的研究基础上提出的一种动态自适应负载均衡算法。具体实现过程如下:
令n个指标为X1,X2,...Xn,k台Web服务器,则归一化值为Y1,Y2,...Yn,其中Xi={xi1,...,xik}代表第k台服务器第i项性能指标,由于指标的度量单位不一致,因此必须首先将数据归一化。它使用Min-max归一化将结果值映射到[0,1]。归一化计算公式如下,其中Yij是服务器j的性能指标i的归一化值:
将Cj、Nj、Dj、Mj定义为服务器节点j的剩余CPU性能、网络带宽剩余性能、磁盘剩余性能和内存剩余性能,TC、TN、TD、TM为所有服务器节点的剩余CPU性能,网络带宽性能,磁盘性能和内存性能。对于任何服务器节点j,其初始权重为 计算公式如下,参数Arg是为了对上述计算所得的结果取整:
当web服务器集群处理大量的HTTP请求时,由于请求中分配的请求量和需要处理的数据量很大,一些节点会处于高负载状态,一些节点会处于低负载状态,这使得web服务器集群的性能不能得到充分利用。有必要实时监控web服务器节点的负载,并调整节点权重。但是,计算节点权重往往会消耗太多的计算机资源,因此使用下面的公式来计算当前服务器节点的负载。
Uj=Wcpu*Cj+Wnet*Nj+Wio*Dj+Wmem*Mj (3)
Uj是当前web服务器节点的总体剩余性能。通过设置两个阈值H和L,来判断web服务器负载情况。当Uj≤H时,表示当前web服务器j处于高负载状态。当web服务器j的Uj≥L时,确定当前服务器节点j处于低负载状态。
Fj为当前web服务器节点在web服务器的所有节点中的剩余性能比率。服务器节点权重可以调整如下:
通过权值调整,改善了服务器节点负载不平衡的情况。但是,加权的不平衡通常是由短时间内的高并发访问引起的。因此,当不存在高负载节点时,服务器节点权重将逐渐调整为初始权重。
所述的Web服务器集群,由多个web服务器组成,用于处理来自客户端的不同的请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110263900.5A CN113110933B (zh) | 2021-03-11 | 2021-03-11 | 一种具有Nginx负载均衡技术的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110263900.5A CN113110933B (zh) | 2021-03-11 | 2021-03-11 | 一种具有Nginx负载均衡技术的系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113110933A true CN113110933A (zh) | 2021-07-13 |
CN113110933B CN113110933B (zh) | 2024-04-09 |
Family
ID=76711278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110263900.5A Active CN113110933B (zh) | 2021-03-11 | 2021-03-11 | 一种具有Nginx负载均衡技术的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113110933B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048020A (zh) * | 2021-09-22 | 2022-02-15 | 北京中科金马科技股份有限公司 | 一种基于大数据客房管理系统 |
CN114173205A (zh) * | 2021-12-06 | 2022-03-11 | 倍智智能数据运营有限公司 | 一种在小程序上播放rtsp音视频流的方法 |
CN114726864A (zh) * | 2022-04-08 | 2022-07-08 | 傲普(上海)新能源有限公司 | 一种Nginx负载均衡方法、装置、介质及设备 |
CN115002125A (zh) * | 2022-04-24 | 2022-09-02 | 浙江工业大学 | 一种具有Web负载均衡技术的系统 |
CN115242797A (zh) * | 2022-06-17 | 2022-10-25 | 西北大学 | 一种面向微服务架构的客户端负载均衡方法及系统 |
CN115633041A (zh) * | 2022-10-31 | 2023-01-20 | 中科星图数字地球合肥有限公司 | 多集群的管理方法、装置、电子设备和可读存储介质 |
CN116893900A (zh) * | 2023-07-19 | 2023-10-17 | 合芯科技有限公司 | 集群计算压力负载均衡方法、系统、设备及ic设计平台 |
WO2024088079A1 (zh) * | 2022-10-24 | 2024-05-02 | 杭州阿里云飞天信息技术有限公司 | 请求处理方法以及系统 |
CN115633041B (zh) * | 2022-10-31 | 2024-06-04 | 中科星图数字地球合肥有限公司 | 多集群的管理方法、装置、电子设备和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110933139A (zh) * | 2019-11-05 | 2020-03-27 | 浙江工业大学 | 一种解决Web服务器高并发的系统及方法 |
CN111277648A (zh) * | 2020-01-19 | 2020-06-12 | 北京工业大学 | 基于Nginx的动态权重负载均衡系统和方法 |
CN111324462A (zh) * | 2020-02-20 | 2020-06-23 | 杭州梦视网络科技有限公司 | 一种具有Web负载均衡技术的系统及方法 |
CN112019620A (zh) * | 2020-08-28 | 2020-12-01 | 中南大学 | 基于Nginx动态加权的Web集群负载均衡算法及系统 |
-
2021
- 2021-03-11 CN CN202110263900.5A patent/CN113110933B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110933139A (zh) * | 2019-11-05 | 2020-03-27 | 浙江工业大学 | 一种解决Web服务器高并发的系统及方法 |
CN111277648A (zh) * | 2020-01-19 | 2020-06-12 | 北京工业大学 | 基于Nginx的动态权重负载均衡系统和方法 |
CN111324462A (zh) * | 2020-02-20 | 2020-06-23 | 杭州梦视网络科技有限公司 | 一种具有Web负载均衡技术的系统及方法 |
CN112019620A (zh) * | 2020-08-28 | 2020-12-01 | 中南大学 | 基于Nginx动态加权的Web集群负载均衡算法及系统 |
Non-Patent Citations (1)
Title |
---|
吴宝花: "基于Nginx的服务器集群负载均衡策略研究与优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048020A (zh) * | 2021-09-22 | 2022-02-15 | 北京中科金马科技股份有限公司 | 一种基于大数据客房管理系统 |
CN114048020B (zh) * | 2021-09-22 | 2022-04-26 | 北京中科金马科技股份有限公司 | 一种基于大数据客房管理系统 |
CN114173205A (zh) * | 2021-12-06 | 2022-03-11 | 倍智智能数据运营有限公司 | 一种在小程序上播放rtsp音视频流的方法 |
CN114726864A (zh) * | 2022-04-08 | 2022-07-08 | 傲普(上海)新能源有限公司 | 一种Nginx负载均衡方法、装置、介质及设备 |
CN115002125A (zh) * | 2022-04-24 | 2022-09-02 | 浙江工业大学 | 一种具有Web负载均衡技术的系统 |
CN115242797A (zh) * | 2022-06-17 | 2022-10-25 | 西北大学 | 一种面向微服务架构的客户端负载均衡方法及系统 |
CN115242797B (zh) * | 2022-06-17 | 2023-10-27 | 西北大学 | 一种面向微服务架构的客户端负载均衡方法及系统 |
WO2024088079A1 (zh) * | 2022-10-24 | 2024-05-02 | 杭州阿里云飞天信息技术有限公司 | 请求处理方法以及系统 |
CN115633041A (zh) * | 2022-10-31 | 2023-01-20 | 中科星图数字地球合肥有限公司 | 多集群的管理方法、装置、电子设备和可读存储介质 |
CN115633041B (zh) * | 2022-10-31 | 2024-06-04 | 中科星图数字地球合肥有限公司 | 多集群的管理方法、装置、电子设备和可读存储介质 |
CN116893900A (zh) * | 2023-07-19 | 2023-10-17 | 合芯科技有限公司 | 集群计算压力负载均衡方法、系统、设备及ic设计平台 |
Also Published As
Publication number | Publication date |
---|---|
CN113110933B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113110933B (zh) | 一种具有Nginx负载均衡技术的系统 | |
CN110933139A (zh) | 一种解决Web服务器高并发的系统及方法 | |
US7610425B2 (en) | Approach for managing interrupt load distribution | |
CN107592345B (zh) | 交易限流装置、方法及交易系统 | |
CN110764912A (zh) | 一种自适应任务调度器及方法 | |
US20080141261A1 (en) | Resource Management System, Resource Information Providing Method and Program | |
CA2533744C (en) | Hierarchical management of the dynamic allocation of resources in a multi-node system | |
CN111324462A (zh) | 一种具有Web负载均衡技术的系统及方法 | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
CN113778683B (zh) | 一种基于神经网络的Handle标识体系解析负载均衡方法 | |
CN117155942A (zh) | 一种微服务动态自适应客户端负载均衡方法及系统 | |
Qin et al. | Research on nginx dynamic load balancing Algorithm | |
CN114945024B (zh) | 基于长短期记忆网络的服务器负载均衡优化方法 | |
Qin et al. | Dynamic load balancing for I/O-and memory-intensive workload in clusters using a feedback control mechanism | |
Sinnwell et al. | A cost-model-based online method for distributed caching | |
CN116107741A (zh) | 一种负载均衡调度方法、系统、电子设备及可读存储介质 | |
CN113377544A (zh) | 一种基于负荷数据动态更新率的web集群负载均衡方法 | |
CN113377866A (zh) | 一种虚拟化数据库代理服务的负载均衡方法及装置 | |
Zhu et al. | Load balancing algorithm for web server based on weighted minimal connections | |
Gao et al. | An Improved Dynamic Smooth Weighted Round-robin Load-balancing Algorithm | |
CN113312151A (zh) | 一种IPSecVPN集群的负载均衡方法 | |
CN110704159A (zh) | 一种基于OpenStack的一体化云操作系统 | |
CN112148474B (zh) | 面向负载均衡的龙芯大数据一体机自适应任务分割方法及系统 | |
Xu et al. | A Load-balancing method for high performance cluster computing system | |
Cohen et al. | High throughput vms placement with constrained communication overhead and provable guarantees |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |