美文网首页
nginx连接配置数的设置

nginx连接配置数的设置

作者: G__yuan | 来源:发表于2020-02-15 15:38 被阅读0次

worker_processes:

表示开启nginx的worker进程的个数,nginx启动会开两种进程,master进程用来管理调度,workwr进程用来处理请求;

上面两种设置方法如下:

方法一:worker_processes auto;

表示设置服务器cpu核数匹配开启nginx开启的worker进程数。

查看cpu核数命令:cat /proc/cpuinfo

方法二:nginx设置cpu亲和力

worker_processes 8;

worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

00000001表示启用第一个cpu内核,00000010表示启用第二个cpu内核,以此类推

这种设置方法更高效,因将每个cpu核提供给固定的worker进程服务,减少cpu上下文切换代理的资源浪费。

如果服务器cpu有限

比如:2核cpu,开启2个进程,设置如下:

worker_processes  2;

worker_cpu_affinity 01 10;

比如:4核cpu,开启4个进程,设置如下:

worker_processes     4;

worker_cpu_affinity  0001 0010 0100 1000

nginx.conf文件中的写法

8核cpu,worker_processes=8

1个worker进程能够最大打开的文件数(进程数)=65535(参考 worker_rlimit_nofile ----> linux ulimit - n)

最大的客户端连接数:  max_clients = (多少个工作进程数) worker_processes * (1个工作线程的处理线程数) worker_connections     8 * 65535

nginx作为http服务器:

请求模型   client<------> nginx

max_clients = worker_processes * worker_connections   /    2

nginx作为反向代理服务器的时候:

请求模型 client<-----> nginx <----> web server

max_clients = worker_processes * worker_connections / 4

为什么作为http服务器时除以2:

该公式基于http 1.1协议,一次请求大多数浏览器发送两次连接,并不是request和response响应占用两个线程,实际情况,请求时双向的,连接是没有方向的。

为什么作为反向代理服务器时除以4: 

因nginx作为反向代理,客户端和nginx建立连接,nginx和后端服务器也要建立连接。

单位时间(keepalive_timeout)内nginx最大并发量c

c = worker_processes * worker_connextions / 2 = 8 * 65535 /2

每秒的并发量cs

cs = worker_processes * worker_connections / (2 * 65)

相关文章

网友评论

      本文标题:nginx连接配置数的设置

      本文链接:https://www.haomeiwen.com/subject/nxoefhtx.html