根据参数优化Nginx服务性能优化
一、优化Nginx服务的worker进程个数
目的:在高并发,高访问量的场景,实现启动数量适当的Nginx进程,保证快速响应并处理大量并发用户的请求。
1.优化Nginx进程对应的配置
worker_processes 1; #指定进程数量,Master表示管理进程,worker表示服务进程
2.优化Nginx进程个数的策略
对于新的配置,不知道网站的用户数,worker进程一般等于CPU的核数,且worker进程数要多一些,防止因为访问量快速增加而临时启动新进程提供服务的问题,缩短瞬时开销和提供服务的时间,提升服务用户的速度
在了解用户的数量时,worker_processes参数大小,设置最好和用户的数量相关联
对于高流量,高并发场合,考虑将参数提高至CPU核数的2倍,具体情况具体分析,其余CPU核数,硬盘存储的数据及系统 的负载相关
3.查看Web服务器CPU硬件资源信息
命令为:
查看CPU总核数
grep processor /proc/cpuinfo|wc -l
grep -c processor /proc/cpuinfo
查看CPU总颗数:
grep 'physical id' /proc/cpuinfo|sort|uniq|wc -l
通过top命令,然后再按1可以,显示所有的CPU颗数
4.实践修改Nginx配置
在配置文件下查看进程数:
grep worker_processes nginx.conf
修改进程数:
sed -i 's#worker_processes 1#worker_processes 4#g' nginx.conf
重新平滑启动Nginx
二、绑定不同的Nginx进程到不同的CPU上
目的:Nginx多个进程可能跑在一个CPU或者CPU的某一核上,导致Nginx引荐资源不均。
1.worker_cpu_affinity的作用是绑定不同的worker进程数到一组CPU上,通过设置bitmask控制进程允许使用的CPU,默认worker进程不会绑定到任何的CPU
三、Nginx事件处理优化模型
Linux下采用epoll的I/O多路复用模型,对于连接进程的方法,通常不需要设置,Nginx会自动选择最有效的方法。
四、调整Nginx单个进程允许的客户端最大的连接数
在events模块中的worker_connections [数字]
最大客户端的连接数为:worker_precesses*worker_connections
实际的并发连接数除了受worker_connections参数控制外,还和最大打开文件数worker_rlimit_nofule有关
五、配置Nginx worker进程最大打开文件数
参数:worker_rlimit_nofile
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?