Nginx优化:CPU篇
CPU
1.worker进程数量应当等于cpu核心数
配置语法:worker_processes number | auto;
比如:worker_processes auto;
配置位置:main
2.worker进程绑定cpu
配置语法:worker_cpu_affinity cpumask 1000 0100 0010 0001; # 4核为例
默认配置:worker_cpu_affinity auto;
配置位置:mian
2.停止系统上其他耗资源的非Nginx进程
3.减少主动切换,提升优先级占用cpu更长的时间
Nice静态优先级:-20 -- 19,尽量小,比如-20 ;
Priority动态优先级:0-139;
配置语法:worker_priority number;
默认配置:worker_priority -20;
配置位置:main
4.减少被动切换,worker进程尽量使用非阻塞调用,别使用阻塞调用主动让出cpu
nginx lua的使用时,应该注意严禁使用lua自带的一些库,严禁使用会造成阻塞的库,尽量使用 lua-resty-* 的库,这些是openresty的相关库,是经过验证的。
5.延迟处理连接:当与客户端建立连接后,不会立即激活worker进程去处理连接
server { listen 80 deferred; return 200 "OK\n"; }
6.为了防止惊群问题,新版本的Nginx内核(3.9)会使用reuseport。在内核中实现了负载均衡,使用后,如果你再次使用top命令查看,你会发现worker进程之间占用cpu的time会均衡。
http { server { listen 80 reuseport; ... } }
【推荐】国内首个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 中如何实现缓存的预热?