从 1k 到 10w+ 并发:Nginx 性能优化的 4 个关键“胜负手”!

Nginx是大型架构核心,下面详解Nginx并发性能@mikechen

worker_processes:并发的上限天花板

worker_processes:并发的上限天花板,决定 Nginx 能开多少个工作进程。

从 1k 到 10w+ 并发:Nginx 性能优化的 4 个关键“胜负手”!-mikechen

推荐:

worker_processes auto;

自动等于 CPU 核心数,最大化 CPU 利用率。

为什么它影响并发?

每个 Worker 是单线程

Worker 数量越多,可并发处理的连接越多

Worker 不要超过 CPU 核心数,否则会上下文切换消耗太高

 

worker_connections:每个 Worker 能处理多少连接

这是 Nginx 最关键的并发参数,没有之一。

并发公式:

最大并发数 = worker_processes * worker_connections;

从 1k 到 10w+ 并发:Nginx 性能优化的 4 个关键“胜负手”!-mikechen

例如:

8 worker * 10240 connections = 81920 并发(理论值)。

推荐设置:

worker_connections 10240;

注意:如果没有调整系统的 ulimit -n,这个配置可能不生效。

 

keepalive_timeout:提高并发的关键优化项

Keepalive 会占用连接,导致长连接过多 → 并发下降 → QPS 降低。

从 1k 到 10w+ 并发:Nginx 性能优化的 4 个关键“胜负手”!-mikechen

推荐:减少 Keepalive 占用

keepalive_timeout 15;

如果你的业务是短连接(如电商、接口服务),可以进一步缩短,例如 3–10 秒。

方向总结:

长连接多 → 并发能力下降

长连接少 → 能腾出更多连接给新用户

 

高性能 IO 三件套

主要用于:静态文件高并发场景(图片、视频、静态资源。。。)。

从 1k 到 10w+ 并发:Nginx 性能优化的 4 个关键“胜负手”!-mikechen

推荐配置:

sendfile on;
tcp_nopush on;
tcp_nodelay on;

作用说明:

sendfile:开启零拷贝,减少 CPU 消耗

tcp_nopush:合并小包,提高吞吐

tcp_nodelay:降低延迟,适合响应快速的业务

两者配合:高吞吐 + 低延迟。

mikechen睿哥

10年+一线大厂架构实战专家,就职于阿里、淘宝等一线大厂,操盘多个亿级大厂核心项目。

评论交流
    说说你的看法