网站目录 » 资讯 » 互联网络 » 行业资讯 » 文章详细

Nginx 优化 worker_processes auto 让一个worker 可以连接多个进程

来源:网络 浏览次数:98次 发布时间:2022-12-07

一、有几个CPU就设置几个worker


二、绑定内核到指定的CPU上


三、提高进程的优先级


四、并发连接数的调整,支持更多的并发


五、让一个worker 可以连接多个进程


六、修改新的连接请求的方法


配置文件:/etc/nginx/nginx.conf


一、worker_processes auto;


默认的配置是auto,auto表示根据CPU个数有几个就开启几个worker进程


worker_processes 4; 


此处表示只开启四个worker进程


二、绑定到worker到指定的CPU上


worker_cpu_affinity 00000001 00000010 00000100 00001000;


#表示第一个线程绑定到第一个CPU上,第二个绑定到第二个CPU上,以此类推,此处的1在哪个位置,就表示绑定在哪个CPU上


也可以写成这样worker_cpu_affinity 0001 0010 0100 1000;


三、提高进程的优先级


查看默认进程,默认的进程都是0


 ps axo pid,cmd,nice |grep nginx
    990 nginx: master process /usr/   0
    993 nginx: worker process         0
   1611 grep --color=auto nginx       0
修改配置:vim /etc/nginx/nginx.conf


添加一行:worker_priority -20;


#此处表示优先级为-20 ,-20优先级最高,官方文档上写的是-20到20 ,但测试下来,只能-20到19 ,写20也是19


四、提并发连接数的调整,支持更多的并发


worker_connections 1024;
每个worker进程所能够打开的最大并发连接数,如10240
总最大并发数:worker_processes * worker_connections
每个worker进程的最大并发数,乘以进程数就是系统支持的并发连接数
这个值可以设置的大点,但不能过大,过大了系统承受不了,
五、multi_accept on|off;
此指令默认为off,即默认为一个worker进程只能一次接受一个新的网络连接, on表示每个woker进程可以同时接受所有新的网络连接
off 表示一次只能接一个,on表示一次可以接多个,打开问on的话,并发性更强
六、accept_mutex on | off;
处理新的连接请求的方法;on指由各个worker轮流处理新请求,Off指每个新请求的到达都会通知(唤醒)所有的worker进程,但只有一个进程可获得连接,造成“惊群”,影响性能,默认值为off,可优化为on
----------
  TCP连接的两项优化
tcp_nodelay on | off;
在keepalived模式下的连接是否启用TCP_NODELAY选项,即Nagle算法
当为off时,延迟发送,每发送一个包就需要确认ACK,才发送下一个包
默认On时,不延迟发送,多个包才确认一次
可用于:http, server, location
tcp_nopush on | off ;
在开启sendfile,on时合并响应头和数据体在一个包中一起发送

相关文章