一、有几个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
1 ps axo pid,cmd,nice |grep nginx
2 990 nginx: master process /usr/ 0
3 993 nginx: worker process 0
4 1611 grep --color=auto nginx 0
修改配置:vim /etc/nginx/nginx.conf
添加一行:worker_priority -20;
#此处表示优先级为-20 ,-20优先级最高,官方文档上写的是-20到20 ,但测试下来,只能-20到19 ,写20也是19
四、提并发连接数的调整,支持更多的并发
tcp_nodelay on | off;
在keepalived模式下的连接是否启用TCP_NODELAY选项,即Nagle算法
当为off时,延迟发送,每发送一个包就需要确认ACK,才发送下一个包
默认On时,不延迟发送,多个包才确认一次
可用于:http, server, location
tcp_nopush on | off ;
在开启sendfile,on时合并响应头和数据体在一个包中一起发送