Nginx如何提升10倍性能(4大关键参数)

一、worker_processes —— CPU 利用率的上限

1. 参数作用

worker_processes:决定Nginx启动多少个工作进程。

每个进程处理独立的事件循环,通常与CPU核心数匹配或略多。

Nginx如何提升10倍性能(4大关键参数)-mikechen

worker_processes auto;

每个 worker 是一个独立进程,一个 worker 同一时刻只跑在一个 CPU 核上。

2. 正确配置原则

CPU 核数 = worker 数

推荐直接用 auto;

错误配置示例:

1 核 CPU,起 8 个 worker → 上下文切换爆炸;

32 核 CPU,只起 2 个 worker → 资源严重浪费;

 

二、worker_connections —— 并发连接能力的核心

1. 参数作用

worker_connections:每个工作进程可同时处理的最大连接数。

Nginx如何提升10倍性能(4大关键参数)-mikechen

2. 理论最大并发

最大连接数 = worker_processes × worker_connections。

例如:

8 核 CPU;

8 个 worker;

每个 65535

→ 理论并发 ≈ 52 万连接

3. 必须配套的系统参数

如果只调 Nginx,不调系统参数,等于白调:

ulimit -n;

fs.file-max;

否则会直接遇到:

“too many open files”

 

三、use epoll —— 事件模型决定并发天花板

Nginx如何提升10倍性能(4大关键参数)-mikechen

1. 参数配置

events {
use epoll;
}

Linux 下必须显式使用 epoll

2. 为什么 epoll 关键

O(1) 事件通知,支撑百万级并发连接。

避免 select / poll 的线性扫描。

3. 性能差距有多大

在高并发场景下:

select / poll:CPU 迅速打满

epoll:CPU 利用率极高、稳定

这是数量级差异,不是百分比优化

 

四、accept_mutex —— 解决惊群效应

Nginx如何提升10倍性能(4大关键参数)-mikechen

1. 什么是惊群

多个 worker 同时被唤醒抢同一个连接:

大量无效唤醒

CPU 白白消耗

2. 关键配置

accept_mutex on;

只允许一个 worker 接受新连接

其他 worker 继续处理已有请求

3. 适用场景

高并发短连接

QPS 高、连接频繁创建销毁。

mikechen睿哥

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

评论交流
    说说你的看法