worker_processes 必须置于nginx.conf最外层main块,推荐设为auto,容器环境需按cfs_quota_us/cfs_period_us计算vcpu数后手动指定,并配合worker_cpu_affinity绑定cpu核心,最后通过nginx -t、-s reload及ps验证。

worker_processes 必须放在 nginx.conf 最外层的 main 上下文里,不能塞进 http、server 或 events 块中。配多少,核心就看真实可用的 CPU 逻辑核数——不是凭感觉填 1、4 或 8,而是用命令查准了再设。
先确认系统实际 CPU 核心数
别信 /proc/cpuinfo 里花哨的字段,直接运行:
- nproc —— 输出数字就是当前进程可调度的逻辑 CPU 总数(容器内也适用)
- 容器环境额外检查:cat /sys/fs/cgroup/cpu/cpu.cfs_quota_us 和 /sys/fs/cgroup/cpu/cpu.cfs_period_us,算出 vCPU 数(例如 quota=200000,period=100000 → 实际分配 2 个 vCPU)
在 nginx.conf 开头附近写配置
用 vim 或 nano 打开主配置文件(默认路径如 /usr/local/nginx/conf/nginx.conf 或 /etc/nginx/nginx.conf),在 events 块之前添加:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- worker_processes auto; —— 推荐首选,Nginx 1.3.8+ 自动读取逻辑核数,省错又省事
- worker_processes 2; —— 容器明确限制为 2 vCPU 时必须手动写死,避免 auto 误读宿主机核数
- worker_processes auto 2; —— auto 模式下保底启 2 个(适合单核虚拟机或最小化部署)
搭配 CPU 亲和性绑定更稳
只设进程数还不够,不绑核的话多个 worker 可能挤在同一个 CPU 上跑,缓存失效、调度开销都会上来:
- 4 个 worker 对应 4 核:worker_cpu_affinity 0001 0010 0100 1000;
- 2 个 worker:worker_cpu_affinity 01 10;
- Linux 3.2+ 且 Nginx ≥ 1.9.10:支持简写 worker_cpu_affinity auto;
改完必须验证才生效
配置写对 ≠ 运行正确:
- 语法检查:nginx -t
- 平滑重载:nginx -s reload
- 验证进程数:ps aux | grep nginx —— 应看到 1 个 master + N 个 worker(N 就是你设的值)
- 观察 CPU 分布:htop 或 top -H,理想状态是各 worker 均匀落在不同 CPU 编号上










