解决 MacOS 下 Too many open files in system 问题
这是一篇发布于 1420 天前的文章,部分信息可能已发生改变。
起因
最近突然在某些负载比较高的任务里遇到 MacOS 报错 Too many open files in system,就想着直接给解决掉,但是 Mac 这边和 Linux 不太一样 废话 。就去苹果论坛转了圈,找到了解决办法。
推荐使用方法二,方便快捷一劳永逸。
办法一
直接在终端中输入即可暂时解除
1 | sudo launchctl limit maxfiles <soft limit> <hard limit> |
如:
1 | sudo launchctl limit maxfiles 102400 102400 |
输入 launchctl limit
即可看到当前的限制:
1 | ❯ launchctl limit |
但是这样解决的话不是一劳永逸的,所以就有了方法二
方法二
在 /Library/LaunchDaemons
下创建一个名为 limit.maxfiles.plist
的文件。
写入以下内容:
1 | <?xml version="1.0" encoding="UTF-8"?> |
记得替换上面的 SOFT LIMIT
和 HARD LIMIT
为你自己想要的值,如果你不知道填什么,无脑写 102400
就行。
然后使用 plutil
来验证你的 plist 文件有没有问题,不出意外,你应该可以看到如下结果:
1 | ❯ plutil /Library/LaunchDaemons/limit.maxfiles.plist |
然后输入以下代码并重启电脑即可完成更改,期间可能会要求输入密码,输入即可。此外,输入密码的过程中不会显示密码,但是你输入的密码是有效的,放心输就好。
1 | sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist |