BYTECODES

nginx配置优化: 谈如何设置worker_processes/worker_connections

Nginx配置中有重要的两个参数,一个是worker_processes另一个是worker_connections。

如何设置nginx worker_processes

worker_processes一般要设置为cpu的核心数量。注意是核心的数量,不是cpu的数量,一颗cpu可能有多个核心。


在linux中使用lscpu命令,可以看到cpu核心数量。

配置worker_processes后的效果

使用ps命令可以查看配置后的效果

nginx

如何设置nginx worker_connections

worker_connections是每个worker进程允许的最多连接数。我们可以算出每台nginx服务器的最大连接数为: worker_processes * worker_connections。


如果设置worker_connections值,首先看系统的最大打开文件数是多少,可以使用ulimit -n命令查看。通常nginx最大连接数不超过最大打开文件数。当然linux的最大打开文件数可以修改。

配置Nginx worker进程最大打开文件数

除了上面两个配置项,还有一个配置需要注意。worker_rlimit_nofile,这个指令是指一个nginx worker进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,因为nginx分配请求未必很均匀,所以最好与ulimit -n的值保持一致。