隐藏

Nginx中worker_processes、worker_connections设置

发布:2022/9/22 14:06:41作者:管理员 来源:本站 浏览次数:921

    worker_processes,工作进程数
    1.默认:worker_processes: 1
    2.调大:worker_processes: CPU核心数,(双核4线程,可以设置为4)
    worker_connections,单个工作进程可以允许同时建立外部连接的数量
    数字越大,能同时处理的连接越多
    1.默认:worker_connections: 1024
    2.调大:worker_connections: 100000,(调大到10万连接)
    worker_connections解析
    1.connections不是随便设置的,而是与两个指标有重要关联,一是内存,二是操作系统级别的“进程最大可打开文件数”。
    2.内存:每个连接数分别对应一个read_event、一个write_event事件,一个连接数大概占用232字节,2个事件总占用96字节,那么一个连接总共占用328字节,通过数学公式可以算出100000个连接数大概会占用 31M = 100000 * 328 / 1024 / 1024,当然这只是nginx启动时,connections连接数所占用的nginx。
    3.进程最大可打开文件数:进程最大可打开文件数受限于操作系统,可通过 ulimit -n 命令查询,以前是1024,现在是65535,

worker_processes 2;
worker_rlimit_nofile 65535;
#pid logs/nginx.pid;
events {
   worker_connections 65535;
}

 

nginx提供了worker_rlimit_nofile指令,这是除了ulimit的一种设置可用的描述符的方式。 该指令与使用ulimit对用户的设置是同样的效果。此指令的值将覆盖ulimit的值,如:worker_rlimit_nofile 20960;

    备注:

设置ulimits:ulimit -SHn 65535