Ich kann alle üblichen ulimits über (zum Beispiel) ulimit -n 8192
und ändern launchctl limit maxfiles 8192 8192
. Irgendwie scheint dies nicht für -u
die maximale Anzahl von Benutzerprozessen zu funktionieren:
~$ sudo launchctl limit maxproc 8192 8192
~$ sudo launchctl limit maxproc
maxproc 2048 2048
-- in a new terminal:
~$ ulimit -u
1064
Hin und wieder bekomme ich ein "Failed to Fork", und es ist ziemlich nervig, eine Reihe von Prozessen beenden zu müssen, wenn "Kill" nicht starten kann :) (dh ich greife normalerweise darauf zurück, die Maschine neu zu starten).
Was ist der richtige Weg, um die maximale Anzahl von Benutzerprozessen zu ändern?
http://blog.ghostinthemachines.com/2010/01/19/mac-os-x-fork-resource-temporarily-unavailable/ spricht ausführlich über dieses Problem.
Wenn Sie dies tun sudo launchctl limit maxproc
, sehen oder ändern Sie die systemweiten Launchd-Limits.
Wenn Sie dies tun launchctl limit maxproc
, sehen oder ändern Sie die launchd-Limits für Ihren Benutzer.
Eine Sache, die Sie beachten sollten, ist Folgendes:
Der Root-Benutzer kann die harten Grenzen des systemweiten Launchd ohne Neustart erhöhen. Sie können jedoch die harten Limits von launchd eines Benutzers nicht ohne einen Neustart ändern (selbst wenn Sie dies als Root-Benutzer versuchen).
Grundsätzlich ist das harte Limit (die rechte Spalte), das beim ersten Mal angezeigt launchctl limit maxproc
wird, das Limit, das Sie ulimit -u
ohne Neustart festlegen können. Ab- und wieder anmelden funktioniert nicht. Auch wenn Sie ändern, was durch angezeigt wird launchctl limit maxproc
, bleibt das anfängliche harte Limit bestehen. In dieser Antwort finden Sie weitere Informationen zur Beziehung zwischen ulimit
und launchctl limit
. Um dieses Limit zu erhöhen, müssen Sie
edit/create /etc/sysctl.conf
, um die vom Kernel unterstützten maximalen Prozesse zu erhöhen
kern.maxproc=2500
kern.maxprocperuid=2500
edit/create /etc/launchd.conf
, um die harten Limits des systemweiten Launchd beim Booten zu erhöhen
limit maxproc 2500 2500
Neustart
Beachten Sie auch, dass 2500 die maximal kern.maxproc
einstellbare Grenze zu sein scheint. Ich werde eine Frage dazu stellen, sobald ich neu starte und genügend freie Prozesse habe, um einen weiteren Chrome-Tab zu öffnen.
kenorb
launchd.conf
Methode funktioniert nicht mehr in Mavericks und anderen neueren Distributionen.