Zrozumiałem to dzięki zabawie z Riakiem z Basho . Kierunki dla Yosemite to:
Aby dostosować limity otwartych plików w całym systemie w systemie Mac OS X Yosemite, musisz utworzyć dwa pliki konfiguracyjne.
Pierwszy to plik listy właściwości (aka plist), /Library/LaunchDaemons/limit.maxfiles.plistktóry zawiera następującą konfigurację XML:
<?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>65536</string>
<string>65536</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
Spowoduje to ustawienie limitu otwartych plików na 65536. Drugi plik konfiguracyjny plist powinien być przechowywany w /Library/LaunchDaemons/limit.maxproc.plistnastępującej treści:
<?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.maxproc</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxproc</string>
<string>2048</string>
<string>2048</string>
</array>
<key>RunAtLoad</key>
<true />
<key>ServiceIPC</key>
<false />
</dict>
</plist>
Oba pliki plist muszą być własnością root:wheeli mieć uprawnienia -rw-r--r--. Uprawnienia te powinny być domyślnie na miejscu, ale można je zapewnić, uruchamiając je sudo chmod 644 <filename>. Chociaż powyższe kroki spowodują prawidłowe ustawienie ogólnosystemowych limitów otwartych plików po ponownym uruchomieniu, możesz je zastosować ręcznie, uruchamiając launchctl limit.
Oprócz ustawienia te limity na poziomie systemu, zalecamy ustawienie na poziomie sesji, jak również poprzez dołączenie następujące linie do swojego bashrc, bashprofilelub analogicznego pliku:
ulimit -n 65536
ulimit -u 2048
Podobnie jak pliki plist, twój bashrclub podobny plik powinien mieć -rw-r--r--uprawnienia. W tym momencie możesz ponownie uruchomić komputer i wejść ulimit -ndo terminala. Jeśli twój system jest poprawnie skonfigurowany, powinieneś zobaczyć, że maxfiles został ustawiony na 65536.
Proces ten jest nieco inny w przypadku innej wersji OS X, ale również dobrze udokumentowany przez ten zespół. Jeszcze raz dziękuję zespołowi z Basho za udokumentowanie tego procesu.
launchctl limitnie działało dla mnie 2) Te dwa polecenia ulimit zawiodły przed ponownym uruchomieniem (i myślę, że są niepotrzebne?), po prostu zignorowałem tę część.