Nginx使用主-从(master-worker)进程模型,通过配置worker_processes指令来控制工作进程数量。
在nginx.conf文件中设置:
worker_processes 4; # 设置为CPU核心数
worker_processes auto; # 自动设置为CPU核心数
将Nginx工作进程绑定到特定CPU核心,减少上下文切换:
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000; # 4核CPU绑定
或者更简单的表示方式:
worker_cpu_affinity auto;
结合事件处理模型优化:
events {
worker_connections 1024; # 每个worker的最大连接数
use epoll; # Linux下高性能事件模型
multi_accept on; # 一个worker同时接受多个新连接
}
worker_priority -5; # 设置worker进程的nice值(-20到19)
确保系统允许足够的文件描述符:
worker_rlimit_nofile 65535; # 每个worker能打开的文件描述符数量
events {
accept_mutex on; # 启用互斥锁进行连接分发
accept_mutex_delay 50ms; # 互斥锁等待时间
}
worker_processes auto;
开始top
或htop
监控CPU使用情况# 查看Nginx worker进程分布
ps -eo pid,psr,comm | grep nginx
# 查看CPU核心数
grep -c processor /proc/cpuinfo
通过以上配置,可以充分利用多核CPU的性能,提高Nginx服务器的并发处理能力。