MacOS 文件句柄数不够 Error: EMFILE: too many open files
启动项目发现报错:Error: EMFILE: too many open files;经排查是因为单个微应用项目较大,发布过程中已经超过了mac默认的文件监听上限对文件系统进行大量并发调用,操作系统的文件描述符数量会被瞬间用光,抛出EMFILE,too many open files。
直奔主题-解决方案
解决方式也比较简单,只要修改文件最大上限即可,注意这是临时修改,过了一段时间后,又会恢复到默认的大小,永久修改需要在配置文件中修改.
执行 launchctl limit
查看下,结果如下
javascript
cpu unlimited unlimited
filesize unlimited unlimited
data unlimited unlimited
stack 8388608 67104768
core 0 unlimited
rss unlimited unlimited
memlock unlimited unlimited
maxproc 11136 16704
maxfiles 2048 65535
其中 maxfiles 2048 65535 上限值改大点
终端执行 sudo launchctl limit maxfiles 5000000 5000000
这里会提示输入密码
再次查看执行 launchctl limit
查看下,结果如下
javascript
cpu unlimited unlimited
filesize unlimited unlimited
data unlimited unlimited
stack 8388608 67104768
core 0 unlimited
rss unlimited unlimited
memlock unlimited unlimited
maxproc 11136 16704
maxfiles 5000000 5000000
再次启动正常