1. worker_processes参数 (nginx要开启的进程数)
一般一个进程足够了,你可以把连接数设得很大。
如果有SSL、gzip这些比较消耗CPU的工作,而且是多核CPU的话,可以设为和CPU的数量一样。
或者要处理很多很多的小文件,而且文件总大小比内存大很多的时候,也可以把进程数增加,
以充分利用IO带宽(主要似乎是IO操作有block)。考虑实际情况,可以修改这个数值,以提高性能。
配置实践经验:
服务器是“多个CPU+gzip+网站总文件大小大于内存”的环境,worker_processes设置为CPU个数的两倍比较好。
据官方说法,一般开一个就够了,多开几个,可以减少机器io带来的影响。
实践经验:nginx的这个参数在一般情况下开4个或8个就可以了,再往上开的话优化不太大。
据另一种说法是,nginx开启太多的进程,会影响主进程调度,所以占用的cpu会增高。
经过测试发现,这个数字是不能乱设置的,如果网站没有出现io性能问题,最好不要修改,采用默认的1即可,如果非要设置,必须要和CPU的内核数匹配,否则要么就假死(主要是Windows),要么就出现502的错误(主要是Linux)。
测试经验链接:worker_processes参数设置测试
2.worker_connections:单个工作进程可以允许同时建立外部连接的数量
无论这个连接是外部主动建立的,还是内部建立的。这里需要注意的是,一个工作进程建立一个连接后,进程将打开一个文件副本。所以这个数量还受操作系统设定的,进程最大可打开的文件数有关。
更改操作系统级别的“进程最大可打开文件数”的设置
来源: http://bbs.linuxtone.org/thread-1062-1-1.html