生产环境中Error:EMFILE,too many open files的解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生产环境中Error:EMFILE,too many open files的解决方案相关的知识,希望对你有一定的参考价值。

前戏

生产环境报错EMFILE,too many open files 导致客户端无法访问

对文件系统进行大量并发调用,操作系统的文件描述符数量会被瞬间用光,抛出EMFILE,too many open files。异步I/O和同步I/O的显著差距:同步I/O因为每个I/O都是彼此阻塞的,在循环体中,总是一个接着一个调用,不会出现耗用文件描述符太多的情况,同时性能也是低下的;对于异步I/O,虽然并发容易实现,但是还是需要给予一定的过载保护,防止过分压榨底层系统的性能

解决方案

临时修改打开文件数

ulimit -n 65535

永久修改(重启服务器生效)

vim /etc/security/limits.conf
加入以下两行
* soft nofile 65535
* hard nofile 65535

以上是关于生产环境中Error:EMFILE,too many open files的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

react-native运行样例报错:Error watching file for changes: EMFILE

Node.js 中的“连接 EMFILE”错误

错误:EMFILE:打开的文件太多 - React Native CLI

节点和错误:EMFILE,打开的文件太多

打开的文件过多 Too many open files问题分析及解决方案

Nodejs 服务器的 Nginx 反向代理 SSL_ERROR_RX_RECORD_TOO_LONG