Wie erhöhe ich "ulimit -u" (maximale Benutzerprozesse)?

Ich kann alle üblichen ulimits über (zum Beispiel) ulimit -n 8192und ändern launchctl limit maxfiles 8192 8192. Irgendwie scheint dies nicht für -udie 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?

Antworten (1)

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 maxprocwird, das Limit, das Sie ulimit -uohne 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 ulimitund 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.maxproceinstellbare 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.

Hinweis: Die launchd.confMethode funktioniert nicht mehr in Mavericks und anderen neueren Distributionen.