+
95
-

nginx的最大并发连接数可以优化到多少?

nginx的最大并发连接数可以优化到多少?


网友回复

+
15
-

nginx高并发数设置

我们先修改Nginx配置文件,先查看cpu的内核数量

[root@web1 ~]# lscpu

800_auto

我们可以看到cpu核心数为1。

然后修改nginx配置文件,将worker_processes数量设置与cpu核心数一致。

[root@web1 ~ ]# vim /usr/local/nginx/conf/nginx.conf

worker_processes 1; #与CPU核心数量一致
events {
worker_connections 50000; #每个worker最大并发连接数
}

重启nginx

[root@web1 ~]# /usr/local/nginx/sbin/nginx -s reload

这个弄完后还需要设置linux操作系统的最大文件数量。

nginx作为一个进程,并发连接数的大小跟操作系统的设置、内存大小有关。

优化Linux内核参数(最大文件数量)

[root@web1 ~]# ulimit -a #查看所有属性值

open files (-n) 1024 #打开文件数量

[root@web1 ~]# ulimit -n 100000 #更改打开的文件数量,修改内核限制(临时)

[root@web1 ~]# ab -c 2000 -n 2000 http://192.168.2.100/ 永久修改 [root@web1 ~ ]# vim /etc/security/limits.conf

* soft nofile 100000 #软限制
* hard nofile 100000 #硬限制,nofile用户最大文件打开数量

原理解析

在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制:

$ ulimit -n 1024

这表示当前用户的每个进程最多允许同时打开1024个文件,这1...

点击查看剩余70%

我知道答案,我要回答