增大nginx的并发限制
需要更改系统最大文件句柄打开数ulimit
【推荐方法】用nginx内置的参数去覆盖系统的ulimit
-
修改
nginx.conf文件- 在最顶层(与user平行的位置),添加如下行
worker_processes auto; worker_rlimit_nofile 8192; events { worker_connections 4096; }worker_processes指定开启的nginx工作进程数auto的话,会自动设置成CPU核心数,双核就是2- 也可以自己手动设置,一般不超过CPU核心数
worker_rlimit_nofile就是内置的参数,可以覆盖ulimit- 这个参数要大于等于
worker_processes * worker_connections
- 这个参数要大于等于
worker_connections指定每个工作进程,允许打开的最大连接数(一个连接就占用一个文件句柄)
- 在最顶层(与user平行的位置),添加如下行
-
查看效果
- 查看nginx开启的工作进程pid
ps -ef | grep nginx - 把pid代入下面的命令,执行即可输出
cat /proc/<pid>/limits | grep Max\ open\ files
- 查看nginx开启的工作进程pid
直接永久更改系统所有用户的ulimit
-
修改
limits.conf文件- 执行
sudo vim /etc/security/limits.conf - 添加两行
* soft nofile 16384 * hard notile 16384- 这里
*代表对所有用户生效
- 这里
- 执行
-
修改
/etc/pam.d/login文件- 执行
sudo vim /etc/pam.d/login - 添加一行
session required /lib/x86_64-linux-gnu/security/pam_limits.so- 需要自己查找确定
pam_limits.so文件的真实位置,一般是在/lib/security/pam_limits.so或者/lib/x86_64-linux-gnu/security/pam_limits.so
- 需要自己查找确定
- 执行
-
重新登录终端即可