基于动态、静态内容结合的网络优化案例

简介: 基于动态、静态内容结合的网络优化案例

基于动态、静态内容结合的网络优化案例

 

基于动态、静态内容结合的网络优化案例........ 1

一、引入案例................................................ 2

1.硬件环境..................................................... 2

2.软件环境..................................................... 2

3.通过对以上案例的硬件环境、软件环境、现象描述的了解,分析问题可以往以下几个方面进行思考................................................................. 2

二、分析问题................................................ 2

1.硬件、系统方面................................................... 2

2.网络方面............................................................... 2

3.软件架构方面....................................................... 3

4.程序配置方面....................................................... 3

三、解决问题................................................ 4

1架构方面的调整............................................... 4

2网站动、静分离............................................... 5


一、引入案例

1.硬件环境:DELL R710 3台、32GB内存、CPU28核、磁盘SATA 600GB+2TB


R710服务器有三台这是硬件环境,内存呢是32G,这个cpu是两颗八核,硬盘是这个SATA盘的600G两块,那个盘做了个数据盘这是硬件环境是这样子。


2.  软件环境:nginx+tomcat架构,通过nginx做负载均衡。

现象描述:

平时访问量小时,网站正常,当访问量稍大时,网站访问很慢,网站搞活动时,基本处于无法打开状态,而nginx服务器带宽占最高在30M左右,后端2tomcat服务器占用带宽占用也在30M左右。

3.  通过对以上案例的硬件环境、软件环境、现象描述的了解,分析问题可以往以下几个方面进行思考。

 

 

二、分析问题

1.硬件、系统方面

通过查看相关数据发现系统负载不存在问题

Mem :65973180k  total 54388372kused1584808k free263808k  buffe rs

Swap :16383992k tota1  Ok used16383992k free47631608k

Cached

image.png

 

 

2.网络方面

nginx服务器带宽占最高在30M左右,可以判断网络方面不存在问题


排除了网络方面的问题也是可以排除的,因为服务器是千兆网卡,既然千兆网卡的话,我们刚才又看到这个现象的描述,就说NG服务器最多30多兆,外网出口带宽是百兆的,所以如果说我们NG服务器这个总这样,带宽如果超过百兆的话,那可能就是其它的问题。


但是现在百兆独享,NG带宽30多兆,因此可以通过这点去判断,这网络方面其实也是没有问题的。

 

3.件架构方面

nginx+tomcat架构不存在问题


软件架构,其实就是前面一个NG,然后后面两台做两个tomcat,是这样的架构才能有请求过来。架构其实很简单,没有任何别的其它方面的策略,这个架构本身也是没有问题的,很多其实网站架构都是这么来做的,但是为什么访问非常慢呢?


其实还是要考虑程序方面的问题,就这样这一个架构搭建起来之后关于在这个价格配置上面是不是解决问题的,这个也是所需要考虑的,为什么会想到这一点,因为从带宽这块儿看到一些端倪,就是Nginx服务器的占了30多兆的带宽,而后端2tomcat服务器也占用了30M左右。

 

4.程序配置方面

(1)nginx服务器带宽占最高在30M左右,后端2tomcat服务        

器占用带宽占用也在30M左右这方面存在很大的问题。  因为从这个NG+tomcat来说所有的请求都是经过NG,然后再转到tomcat去,tomcat处理的都是动态的请求,动态请求不可能有30多兆这么大的流量带宽,如果说后端真是纯粹的tomcatNG服务器那这样会远远大于30兆,而现在ng这个带宽也仅仅是30兆左右,那么通过这个对比就发现这个在程序配合是肯定是存在问题,那么针对这个问题呢,查询相关的这个日志,那怎么查询日志首先第一块儿,就是要看一下相关的这个配置文件。第二就是要查看一下这tomcat的一个日输出。

 

(2)所有的请求都是通过nginx转到tomcattomcat都是动态

请求,而带宽占最高在30M左右过大,如果后端是纯粹的,那么nginx服务器的带宽占比应大于30M。所以通过对比发现程序配置上存在问题。

 

(3)针对以上问题,通过查看相关日志里面的nginx配置文件、

tomcat日输出。在tomcat日输出里面发现tomcat日输出包含了静态输出,而tomcat是负责动态输出,对于静态输出功能性很差。所以本应由nginx处理的文件却转到了tomcat上,这就导致了tomcat的性能下降。带宽在30M左右对以上解释做了验证。

 通过分析,找到了出现以上问题的原因,以下是如何解决问题

 

三、解决问题

1、架构方面的调整

nginx负载做重新分配,操作如下图所示:

upstream myserver{

ip_hash;

server172.16.100.11:8080weight=1max_fails=2fail_timeout=10s;

server172.16.100.12:8080weight=3max_fails=2fail_timeout=10s;

server172.16.100.13:8080weight=2max_fails=2fail_timeout=10s;

server172.16.100.14:8080weight=2max_fails=2fail_timeout=10s;

}

这是最终配置的一个方案,比如我们后端有三台机器,那么我们配置的方法呢,就是通过upstream,然后后面跟上myserver这个名字就是负载均衡的一个组,然后在这块做了一个简单的调试,就是做了一个权重的设置,因为后台这个tomcat每台机器的性能,如果不一样的话,可以根据后端每一个性能去做一个权值的一个划分,性能高度把它设高一点,那么划分的这个标准就通过weight这么一个参数值,weight等于一就是它的权值是一,然后max_field,那就是失败两次。


然后失败的一个评判标准就是这个fall_timeout,那就是在这个超时十秒钟这个范围之内,如果说这个NG还没有收到请求的话,就认为,这个后端tomcat的节点出现了故障。


故障连续两次发生,就会把它从那个机器里面去剔除,因为在这个故障发生的时候,看到它们这个案例的的配置,是后面没有这些属性参数配置的,那么,在这个情况下,很容易造成后端请求本身因故障,还会把请求就说不成的分类,这样一些故障节点。

 

那么,这种情况可能就导致了我们刚才所说的这个表面信息,网站打开非常非常慢,得了半天都打不开,那就因为它可能会把很多请求都发到了本身因故障这样的一个逃不开的结点上来,那么加了这些参数配置之后,就是如果后端节点确实故障,它就能够根据本身就可以自动检测到,然后把它给剔除出去。

 

 

2、网站动、静分离

Location~*\.(gifljpglpngljslcss)${

 root   /data/static/images/ROOT;

 }

 

第二部分要调优就是关于网站的动静分离,那么这个其实也是要讲的一个核心,那么本案例的最终目的就是没有做网站的动静分离,所以导致开始后段流量很大,处理了很多一些静态请求资源。


而动态资源,就得不到这种即时的请求,所以导致网站对方非常非常的慢,那么做动静分离,这个东西其实是这个NG的一个强项,那么NG服务器的一个非常强劲的地方其实就是处去处理这种静态的这种数据文件,那么我们做的一个标准就是将所有的,将我们这个网站上所有的这些静态资源,不管是图片还是视频还是一些文本等等,把这些资源完全的交给这个NG去完成那么一些动态的JSP,加大请求,我们把它交给这个tomcat后端,多台tomcat的去完成。

 

Nginxlocation匹配规则:

首先匹配=,其次匹配,然后是按文件中的顺序的正则匹配,最后是交给/通用匹配,当有匹配成功的时候,停止匹配,按当前匹配规则处理要求。

相关文章
|
6天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
126 80
|
14天前
|
机器学习/深度学习 算法 PyTorch
基于图神经网络的大语言模型检索增强生成框架研究:面向知识图谱推理的优化与扩展
本文探讨了图神经网络(GNN)与大型语言模型(LLM)结合在知识图谱问答中的应用。研究首先基于G-Retriever构建了探索性模型,然后深入分析了GNN-RAG架构,通过敏感性研究和架构改进,显著提升了模型的推理能力和答案质量。实验结果表明,改进后的模型在多个评估指标上取得了显著提升,特别是在精确率和召回率方面。最后,文章提出了反思机制和教师网络的概念,进一步增强了模型的推理能力。
43 4
基于图神经网络的大语言模型检索增强生成框架研究:面向知识图谱推理的优化与扩展
|
2天前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-GRU-SAM网络在时间序列预测中的应用。算法通过卷积层、GRU层、自注意力机制层提取特征,结合粒子群优化提升预测准确性。完整程序运行效果无水印,提供Matlab2022a版本代码,含详细中文注释和操作视频。适用于金融市场、气象预报等领域,有效处理非线性数据,提高预测稳定性和效率。
|
12天前
|
域名解析 缓存 网络协议
优化Lua-cURL:减少网络请求延迟的实用方法
优化Lua-cURL:减少网络请求延迟的实用方法
|
11天前
|
数据采集 监控 安全
公司网络监控软件:Zig 语言底层优化保障系统高性能运行
在数字化时代,Zig 语言凭借出色的底层控制能力和高性能特性,为公司网络监控软件的优化提供了有力支持。从数据采集、连接管理到数据分析,Zig 语言确保系统高效稳定运行,精准处理海量网络数据,保障企业信息安全与业务连续性。
34 4
|
29天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
88 7
|
28天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
1月前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
60 8
|
17天前
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数
|
1月前
|
负载均衡 网络协议 算法
OSPF 中的负载均衡:优化网络流量分布
OSPF 中的负载均衡:优化网络流量分布
56 0

热门文章

最新文章