Search code examples
macossocketsfreebsdlibev

How to increase limits on sockets on osx for load testing?


I'm creating a load tester that uses libev to create lots of open tcp connections to an app i'm working on. Currently it bombs out at 256 connections, due to the nofiles limit:

ulimit -n
256

I can increase this to 1024 by doing the below:

ulimit -n 1024

But i cannot increase it further. Ideally i want to set it to 1048576. It gives the following error:

ulimit: open files: cannot modify limit: Invalid argument

How can i increase the ulimit further on osx?


Solution

  • (answer updated to use -S as several commenters suggested)

    $ sysctl kern.maxfiles
    kern.maxfiles: 12288
    $ sysctl kern.maxfilesperproc
    kern.maxfilesperproc: 10240
    $ sudo sysctl -w kern.maxfiles=1048600
    kern.maxfiles: 12288 -> 1048600
    $ sudo sysctl -w kern.maxfilesperproc=1048576
    kern.maxfilesperproc: 10240 -> 1048576
    $ ulimit -S -n
    256
    $ ulimit -S -n 1048576
    $ ulimit -S -n
    1048576