背景:最近压测测试环境,并发500。服务器都是默认配置
请求偶发性报500、应用服务并无报错。查看转发层 nginx日志、发现
Too many open files这个问题主要指的是进程企图打开一个文件,或者叫句柄,但是现在进程打开的句柄已经达到了上限,已经无法打开新句柄了。
1、对于这些句柄,Linux是有数量限制的,单个进程默认可以打开的句柄数上限。默认 1024
ulimit –a
其中的open files一项就是默认的句柄数,此时默认的句柄数是1024
句柄数是可以改的,修改默认的句柄数,命令如下:
ulimit –n 2000
2、nginx 同步扩大进程打开文件数。
worker_processes 2;
worker_rlimit_nofile 65535;
events {
worker_connections 10240;
}