Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Too many open files" when executing gatling on Mac

When executing gatling (load test tools) from shell on Mac iOS (El Capitan) on my Macbook Pro 15 ' (16 Giga of RAM, 4 physical cores), i've the error "Too many open files".

I spend days to fix this problem, without any success :

  • I created a file in /Library/LaunchDaemons/limit.maxfiles.plist with a XML file content copied from the web, no result.

  • sudo ulimit -n 15000 doesn't work.

  • I created a file /etc/sysctl.conf with the following content

kern.maxfiles=20480
kern.maxfilesperproc=20480

  • I tried the command "sudo launchctl limit maxfiles 20480 20480" without any result.

I think that the xml file in "/Library/LaunchDaemons/" seem have some effect, because when i change the value of the maxfiles, the command "sudo launchctl limit" display to me the value i entered in the XML file, and when calling "ulimit -n" with some value, it accept every values less than this value, but when i call "ulimit -n", the result is everytime the same "4096".

I saw that in Java, the limit is 10240, so i tried the VM option (-XX:-MaxFDLimit) without any effect.

On strange thing, when i executed Gatling from Intellij (IDE), i ca go until 10 200 sockets. The same thing, give differents effects, even after executing all commands in all combinaisons (ulimit, sysctl, launchctl, ...).

Best regards

like image 475
bsh Avatar asked Nov 20 '15 21:11

bsh


People also ask

How to fix Too many open files Mac?

A simple fix for the "too many files open" limitation of Mac OS is to use the "ulimit - n" command. Curiously, the value of n appears to be critical to whether or not this command is accepted by MacOS. I've found that ulimit -n 10240 (the default is 256) works but n values higher do not.

What does Too many open files mean?

The "Too many open files" message means that the operating system has reached the maximum "open files" limit and will not allow SecureTransport, or any other running applications to open any more files. The open file limit can be viewed with the ulimit command: The ulimit -aS command displays the current limit.


1 Answers

Just in case any one else lands here from google, here are the steps required to change the open files limit on the latest versions of OS X:

1. In /Library/LaunchDaemons create a file named limit.maxfiles.plist and paste the following in (feel free to change the two numbers (which are the soft and hard limits, respectively):

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"  
        "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">  
  <dict>
    <key>Label</key>
    <string>limit.maxfiles</string>
    <key>ProgramArguments</key>
    <array>
      <string>launchctl</string>
      <string>limit</string>
      <string>maxfiles</string>
      <string>64000</string>
      <string>524288</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
  </dict>
</plist> 

2. Change the owner of your new file:

sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist

3. Check current settings launchctl limit maxfiles

4. Load these new settings:

sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist

5. Finally, check that the limits are correct:

launchctl limit maxfiles
like image 90
ninjaPixel Avatar answered Sep 19 '22 18:09

ninjaPixel