Nginx性能如何翻倍?9大性能关键参数!

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

worker_processes:并发的上限天花板

worker_processes ,决定 Nginx 启动的工作进程数量。

通常建议、与服务器的 CPU 核心数保持一致、或略大。

Nginx性能如何翻倍?9大性能关键参数!

设置为 auto ,能让 Nginx 自动匹配可用核心数。

worker_processes auto;

合理的进程数,可充分利用多核资源,避免过多进程引起上下文切换,从而提升并发处理能力。

 

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

其次,worker_connections ,指定了每个 worker 进程能同时维护的连接数,直接影响整体并发连接容量。

二者的乘积:(worker_processes × worker_connections),近似表示服务器在理想条件下可支持的最大并发连接数。

# 每个进程允许的最大连接数:
  worker_connections 65535;

Nginx性能如何翻倍?9大性能关键参数!

但实际可达值还受系统文件描述符限制、内存及应用层处理能力的约束。

因此需要配合操作系统参数(如 ulimit、epoll 数量…等),进行综合调优。

 

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

keepalive_timeout 是一项关键优化,适当的 keep-alive 超时能够在重复请求之间重用 TCP 连接。

减少握手开销,从而提升每个连接的吞吐量与响应效率。

Nginx性能如何翻倍?9大性能关键参数!

# 客户端连接保持时间
 keepalive_timeout 65;
    
# 单个长连接允许的最大请求次数,默认 100,建议调大
keepalive_requests 10000;

但超时时间设置需权衡资源占用与连接复用的收益,过长会占用宝贵连接资源,过短则降低复用带来的性能增益。

 

高性能 IO 三件套

此外,高性能 I/O 的三项常用优化技术——sendfile、tcp_nopush 和 tcp_nodelay,在静态资源传输与低延迟响应中发挥重要作用。

Nginx性能如何翻倍?9大性能关键参数!

sendfile 可实现内核态的零拷贝传输,减少用户态与内核态间的数据复制开销。

tcp_nopush(或 TCP_CORK),用于在发送大文件时尽可能合并小数据包,提升网络带宽利用率。

tcp_nodelay 则关闭 Nagle 算法,适用于需要低延迟的小包交互场景。

合理组合这些选项,可在不同负载特性下分别优化吞吐与延迟表现。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧