IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【网站架构】Nginx负载均衡宕机怎么办?Nginx性能调优、集群、高可用方案 -> 正文阅读

[系统运维]【网站架构】Nginx负载均衡宕机怎么办?Nginx性能调优、集群、高可用方案

?

大家好,欢迎来到停止重构的频道。

本期,我们讨论Nginx的性能调优。

Nginx一般是作为网站系统的反向代理或负载均衡,但这里有一个问题,负载均衡可以绑定多个后端服务器。

一个后端服务器宕机后,另外的后端服务器仍可继续运行,那负载均衡(Nginx)本身宕机了呢?在本期的集群方案将讨论这个问题。?

我们按这样的顺序介绍?

  1. 明确目标性能?

  2. 硬件选择?

  3. 单个Nginx服务调优?

  4. 集群方案?

明确性能指标

在调优之前需要先明确性能指标, 根据往期《性能指标》 整体系统的性能指标是并发量、吞吐量、错误率、响应时间

在调试单个服务时,根据往期《调优基本思路》的结论,只需要明确吞吐量即可,如果整个系统的吞吐量指标为1000rps,则Nginx作为负载均衡的话,理论上吞吐量为1000rps即可。

不过,Nginx作为负载均衡的话是整个网站系统的总入口,而且Nginx的最终吞吐量与业务功能、请求返回的数据量是强关联,所以单独测试Nginx性能也没有实际意义

一般判断Nginx性能是否足够是在整体系统性能测试时,观察Nginx服务器与其他服务器的负载情况,负载情况分析可参考往期《负载分析》。

例如,如果在整体性能测试时,Nginx的负载是满的(如CPU、内存、带宽使用率等),但其他服务的负载是未满的,则说明Nginx服务存在性能瓶颈,这时可以考虑增加增加硬件配置。

如果网站系统是公网公开的话,负载均衡最好选择公有云的负载均衡,因为它们会提供完整的边缘网络方案,也就是说不会拥堵在一个Nginx服务上。

硬件选择

Nginx的硬件选择一般是选择CPU和内存,cpu和内存的配比一般为1:2,当然,内存大小的选择更依赖文件缓存的预期大小,如果没有文件缓存的需要,内存大小可以低一些。

Nginx的硬件配置不需要太高,一般4核CPU的服务即可达到几万RPS。?

Nginx服务器的带宽也是需要重点观察的,因为Nginx作为负载均衡的话一般是作为整个网站系统的总入口,所以网络带宽的消耗是很大的。

如果有上传下载文件功能的话,最好把上传下载文件用单独的负载均衡处理,这样就不会因为文件传输影响主体功能。?

?

另外,Nginx除了作为负载均衡、反向代理,还有很多其他功能,如作为代理服务器做网络跳板、rtmp视频流服务器等。

如果有这些功能需要,最好部署单独的Nginx服务,出现性能问题时,能更好地对症下药。

单个Nginx服务调优??

接下来是对单个Nginx服务调优,在这之前,需要先调优服务器内核参数,调优方法可以参考往期《内核参数调优》。

单个Nginx服务调优可参考图中所示,另外,Nginx作为前端服务器软件的话,还可以缓存文件以减少磁盘读写,但是如果配置了CDN加速的话,其实缓存文件的意义也不大。?

集群方案?

严格意义上讲,Nginx是没有集群方案的,但是由于Nginx是无状态,所以可以使用keepalived作为集群方案

每个服务器都安装keepalived和nginx后,这些服务器会抢占同一个虚IP,当一台服务器宕机,别的服务器会重新占用虚IP并继续接收请求。

虚ip其实就是还没与某个服务器绑定的IP。

这也是解决开篇问题的方案,这也是比较常用的Nginx的高可用方案,但是这个方案也会在一定程度上降低Nginx服务器的性能

总结

截止本期,我们介绍完了MySQL、Redis、Nginx、Tomcat这些常用软件的性能优化和集群方案。

其实调优思路都是基本雷同的,只要掌握了基本思路,其他软件服务的调优也都是差不多的。

后面几期,我们将介绍一些提高性能的编程方案。

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:39:35  更:2022-10-31 12:39:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:19:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码