System Level
By default, the maximum number of files that Mac OS X can open is set to 12,288 and the maximum number of files a given process can open is 10,240.
You can check these with:
$ sysctl kern.maxfiles
$ sysctl kern.maxfilesperproc
You can increase the limits (at your own risk) with:
$ sysctl -w kern.maxfiles=20480
$ sysctl -w kern.maxfilesperproc=18000
To make the change permanent, use sudo
to put your settings in /etc/sysctl.conf
(which you may have to create), like this:
kern.maxfiles=20480
kern.maxfilesperproc=18000
Note: In OS X 10.10 or lower, you can add setting in /etc/launchd.conf
like limit maxfiles
and it will override whatever you put here.
Session/Shell Level
Once you’ve increased the system level’s FD limit (under /etc/sysctl.conf
), the kernel itself will have a maximum number of files but the shell might not. And since most processes that will take up this many files are going to be initiated by the shell you’re gonna want to increase that.
The command for that is:
$ ulimit -S -n 2048 # or whatever number you choose
That change is also temporary; it only lasts for the current shell session. You can add it to your shell configuration file (.bashrc
, .zshrc
or whatever) if you want it to run every time you open a shell.
Reference
- https://superuser.com/questions/433746/is-there-a-fix-for-the-too-many-open-files-in-system-error-on-os-x-10-7-1
- http://krypted.com/mac-os-x/maximum-files-in-mac-os-x/