Vor Mavericks konnte ich /etc/launchd.conf
file verwenden, um den maximalen Ressourcenverbrauch des Systems zu ändern. Beispiel:
limit maxfiles 16384 unlimited
limit maxproc 16384 unlimited
In Mavericks funktioniert es nicht mehr.
Was ist die richtige Vorgehensweise in der aktuellen Version von OS X?
/etc/sysctl.conf
nicht sein/etc/sysctrl.conf
.sudo serverinfo --setperfmode true
einmal ausgeführt werden, um Ihren Computer in den "Server-Leistungsmodus" zu versetzen. Dann haben Sie ein "höheres Maximum", abhängig von Ihrer Maschinenkonfiguration. Weitere Informationen finden Sie in meinem Beitrag unter discussion.apple.com/thread/5166397 . Für 10.10 (Yosemite) ist der Modus standardmäßig aktiviert (zumindest auf meinem Computer!). Siehe meine Antwort unten.Antworten:
Shell-Sitzungslimit
Die über festgelegten Grenzen wirken sich
ulimit
nur auf Prozesse aus, die von der aktuellen Shell-Sitzung erstellt wurden.root
(dem Administrator) durch Ausführen von Systemkonfigurationsbefehlen oder Ändern von Systemkonfigurationsdateien angehoben werden.Nachdem Sie die Shell-Sitzung beendet haben (durch Ctrl+ D,
exit
oder Schließen desTerminal.app
Fensters usw.), sind die Einstellungen weg. Wenn Sie die gleiche Einstellung in der nächsten Shell-Sitzung wünschen, fügen Sie die Einstellung dem Shell-Startskript hinzu.HINWEIS: Wenn Sie verwenden
bash
, sollte dies~/.bash_proile
oder sein~/.bash_login
. Wenn Sie andere Shells verwenden, sollte dies wahrscheinlich der Fall sein~/.profile
.Systemlimit (Neustart erforderlich, um wirksam zu werden)
Für 10.9 (Mavericks), 10.10 (Yosemite), 10.11 (El Capitan) und 10.12 (Sierra):Sie müssen eine Datei erstellen unter
/Library/LaunchDaemons/limit.maxfiles.plist
(Eigentümer:,root:wheel
Modus:)0644
:Sie sollten die Nummern entsprechend Ihren Anforderungen ändern. Sie sind das "weiche Limit" (
Für 10.8 (Berglöwe):262144
) bzw. das "harte Limit" (524288
). Weitere Informationen finden Sie auf der Handbuchseite, indem Sie ausführenman launchd.plist
.Sie können die folgenden Zeilen zu
/etc/sysctl.conf
(Eigentümer:,root:wheel
Modus :) hinzufügen0644
:Sie sollten die Nummern entsprechend Ihren Anforderungen ändern. Sie sind das "systemweite Limit" (
Für ältere Mac OS X (ich denke, es funktioniert unter 10.7 (Lion) oder früher):kern.maxfiles
) bzw. "pro-Prozess-Limit" (kern.maxfilesperproc
). Weitere Einstellungen finden Sie auf der Handbuchseite, indem Sieman sysctl
ausführen, oder lesen Sie den Quellcode unter/usr/include/sys/sysctl.h
.Sie können die folgende Zeile zu
/etc/launchd.conf
(Eigentümer:,root:wheel
Modus :) hinzufügen0644
:Sie sollten die Nummern entsprechend Ihren Anforderungen ändern. Sie sind das "weiche Limit" (
Wenn das System nicht zulässt, dass Sie die Grenzwerte über einen bestimmten Wert setzen ...262144
) bzw. das "harte Limit" (524288
).Das System lässt nicht zu, dass Sie einen höheren Wert als ein "hartes Maximum" (von Apple vorgeschlagen) festlegen. Um dieses "harte Maximum" zu erhöhen, müssen Sie "OS X Server" im "App Store" kaufen und dann den folgenden Befehl einmal ausführen:
Dadurch wird der "Server-Leistungsmodus" auf Ihrem Computer aktiviert. Sie können dann das Maximum entsprechend der Konfiguration Ihres Geräts einstellen (siehe dies) . Ich habe das schon mal versucht (auf Mountain und Mavericks) und es funktioniert! Weitere Informationen finden Sie in meinem Beitrag ( hier ).
Verweise
quelle
/etc/launchd.conf
Ansatz zeigt beim Ausführen einen Effektulimit -n
. Könnte jemand die Anweisungen aktualisieren, wenn dies von Bedeutung ist?/etc/sysctl.conf
: superuser.com/questions/827984/…Es scheint, dass das Erstellen der Datei
/etc/launchd.conf
und das Einfügen Ihres Befehls den Trick machen sollte.Wenn dies nicht funktioniert, können Sie die
/etc/rc.local
Datei wahrscheinlich bearbeiten oder erstellen und Ihren Befehl hinzufügen, da die Wahrscheinlichkeit gering ist, dass Apple jemals die Unterstützung für das Limit in der Befehlszeile löscht.Edit 1 :
Ich hätte damit anfangen sollen, die
launchd
Manpage referenziert folgende Dateien:Ich wette, Sie müssen jetzt Ihren Befehl entweder eingeben
~/Library/LaunchAgents
oder eingeben/Library/LaunchDaemons
.Sie sollten beide versuchen.
Bearbeiten 2 :
Beachten Sie auch, dass launchd XML-Datei und nicht nur Skripte benötigt. Eine Gui wurde entwickelt, um bei solchen Aufgaben zu helfen. Eine nicht freie ist Lingon . Vielleicht gibt es noch andere kostenlose Produkte.
quelle
/etc/launchd.conf
und/etc/rc.local
werden in 10.10 und höher ignoriert, da in 10.10 launchd neu gestaltet und SystemStarter entfernt wurde.Ich habe gerade diese beiden Zeilen in meine
.bash_profile
Arbeiten wie ein Zauber aufgenommen
quelle
ulimit -n -H
. Auf macOS High Sierra war esunlimited
so, dass es das "weiche" Limit des Benutzers änderte.bash_profile
.Systemgrenzen
Das Ändern der Grenzwerte in
/etc/launchd.conf
oder/etc/rc.local
wird für das aktuelle MacOS nicht mehr unterstützt. Siehe: Alte Systeme und Technologie .Stattdessen sollten Sie einen neuen Startagenten erstellen .
Hier ist das Befehlsbeispiel mit
PlistBuddy
Befehl (siehe:)man PlistBuddy
:Und ähnlich für die
maxproc
Grenze:Zur oben genannten Dateien zu laden, ausführen:
sudo launchctl load /Library/LaunchAgents/com.launchd.*.plist
.Anmerkungen:
cat
oderPlistBuddy -x -c Print /Library/LaunchAgents/com.launchd.maxfiles.plist
.tail -f /var/log/system.log
.launchd
Grenzen laufen:launchctl limit
..plist
Datei kann in einem benutzer- oder systemweiten Agentenordner abgelegt werden (LaunchAgents
). Siehe:man launchd
undman launchd.plist
, oder dies oder die Antwort für weitere Details.Kernel-Grenzen
Bitte beachten Sie, dass die obigen Launchd- Systemgrenzen immer noch vom Kernel begrenzt werden. Daher können Sie sie nicht höher als die in den Kernel-Statusvariablen festgelegten tatsächlichen Grenzen einstellen (siehe:
man sysctl
Hilfe).Um die aktuellen Kernel Grenzen zu sehen, laufen:
sysctl -a | grep ^kern.max
.Um die Erhöhung zu
maxfiles
begrenzen, führen:sudo sysctl -w kern.maxfiles=20480
.Verwenden Sie die ähnliche Methode, um Startdateien zu
.plist
erstellen, zShell Grenzen
Fügen Sie für Shell-Beschränkungen relevante
ulimit
Befehle zu~/.bashrc
oder~/.bash_profile
Startdateien für einzelne Benutzer oder/etc/bashrc
für alle Benutzer hinzu. Siehe: Wie füge ich Einstellungen für die dauerhafte Shell-Begrenzung auf einem Mac hinzu?Vorgeschlagene Zeilen zum Hinzufügen:
quelle
maxproc
da das Hard-Kernel-Limit für diesen Parameter standardmäßig 1064 ist, was bedeutet, dass er auf 2000 oder "Unbegrenzt" gesetztmaxprocperuid < maxproc
wird System mitmaxprocperuid=2000
undmaxproc=1064
was gefährlich ist. Lesen Sie hier mehr darüber .