Nginx 优化 Alex

一、有几个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

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

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时合并响应头和数据体在一个包中一起发送

 

------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------- 博客均为个人笔记,无所追求,仅供参考~~~ QQ--2382990774
原文地址:https://www.cnblogs.com/alexlv/p/14501093.html