Nginx是大型架构核心,下面我详解Nginx性能@mikechen
充分利用多核CPU

指定Nginx启动的工作进程数量,每个进程可处理大量连接,但过多会导致上下文切换开销。
优化建议:通常设置为与CPU核心数相同(如 auto 或具体核心数),以充分利用多核优势。
在高IO场景结合异步事件驱动模型,可采用 auto 并观察负载表现。
# 设置为CPU核心数,或者直接使用 auto worker_processes auto;
单进程最大连接数
每个工作进程,可同时处理的最大连接数。
系统最大并发连接数近似为 worker_processes × worker_connections。

events {
# 每个工作进程的最大连接数
worker_connections 10240;
# 启用后,一个工作进程可以接收多个新连接
multi_accept on;
}
优化建议:根据并发需求与文件描述符限制调整。
若需支持更高并发,应同时提高操作系统的 file descriptors 限制(ulimit -n)。
并将 worker_connections 设置为较大值(如 10240 或更高),但要确保系统资源允许。
启用高性能I/O模型
sendfile 可避免用户态与内核态拷贝,tcp_nopush 与 tcp_nodelay 控制包发送合并与延迟。
优化建议:开启 sendfile on 可提升静态文件传输效率。

在使用 sendfile 时,结合 tcp_nopush on(对大文件合并头部)。
与 tcp_nodelay on(减少小包延迟)进行调整,以在吞吐量与延迟间取得平衡。
具体组合,应基于业务特性进行压力测试。
高效传输优化
启用Gzip压缩可以显著减小传输数据的大小,加快页面加载速度,尤其对文本文件(HTML, CSS, JS)效果明显。

优化建议: 启用gzip on。
并配置合理的压缩级别(gzip_comp_level,通常4-6即可,过高会增加CPU开销)。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》