Beim Ausführen meiner Anwendung wird manchmal eine Fehlermeldung angezeigt too many files open
.
Ausführen von ulimit -a
Berichten, dass das Limit 1024 beträgt. Wie erhöhe ich das Limit über 1024?
Bearbeiten
ulimit -n 2048
führt zu einem Berechtigungsfehler.
Antworten:
Sie könnten immer versuchen, eine
ulimit -n 2048
. Dadurch wird nur das Limit für Ihre aktuelle Shell zurückgesetzt, und die von Ihnen angegebene Anzahl darf das harte Limit nicht überschreitenJedes Betriebssystem verfügt in einer Konfigurationsdatei über ein anderes Hard-Limit-Setup. Beispielsweise kann das Limit für fest geöffnete Dateien unter Solaris beim Booten von / etc / system festgelegt werden.
Unter OS X müssen dieselben Daten in /etc/sysctl.conf festgelegt werden.
Unter Linux befinden sich diese Einstellungen häufig in /etc/security/limits.conf.
Es gibt zwei Arten von Grenzen:
Weiche Grenzwerte können von jedem Benutzer festgelegt werden, während harte Grenzwerte nur von root geändert werden können. Limits sind eine Eigenschaft eines Prozesses. Sie werden vererbt, wenn ein untergeordneter Prozess erstellt wird. Daher sollten während der Systeminitialisierung in Init-Skripten systemweite Grenzwerte festgelegt werden und Benutzerbeschränkungen während der Benutzeranmeldung festgelegt werden, z. B. mithilfe von pam_limits.
Beim Starten der Maschine werden häufig Standardeinstellungen festgelegt. Auch wenn Sie Ihr ulimit in einer einzelnen Shell zurücksetzen, stellen Sie möglicherweise fest, dass es beim Neustart auf den vorherigen Wert zurückgesetzt wird. Möglicherweise möchten Sie Ihre Boot-Skripte nach den vorhandenen ulimit-Befehlen durchsuchen, wenn Sie die Standardeinstellung ändern möchten.
quelle
2048
aber nicht als4500
warum? siehe diesulimit
. Sie müssen angeben, was Sie verwenden (z. B. WSL, Cygwin).Wenn Sie Linux verwenden und den Berechtigungsfehler erhalten haben, müssen Sie das zulässige Limit in der Datei
/etc/limits.conf
oder erhöhen/etc/security/limits.conf
(wo sich die Datei befindet, hängt von Ihrer spezifischen Linux-Distribution ab).Fügen Sie beispielsweise der Zeile die
limits.conf
Datei hinzu, damit jeder auf dem Computer die Anzahl der geöffneten Dateien auf 10000 erhöhen kann.* hard nofile 10000
Melden Sie sich dann ab und erneut bei Ihrem System an, und Sie sollten in der Lage sein:
ulimit -n 10000
ohne einen Berechtigungsfehler.
quelle
root
Benutzer. Sie müssen angeben,root hard nofile 10000
ob Sie dasroot
Limit anpassen möchten .ulimit
und schließlich herausgefunden, dass ich als root angemeldet bin. Deshalb habe ich den 1024 immer wieder gesehenulimit -a
. Ich änderte die Wildpflege und fügte ein*
Inneres hinzulimits.conf
. Jetzt ist alles in Ordnung (ich benutze SSH-Schlüssel, keine Sorge: P) - Danke !!!/etc/security/limits.d/
.1) Fügen Sie die folgende Zeile hinzu
/etc/security/limits.conf
Melden Sie sich dann als Webbenutzer an
2) Bearbeiten Sie die folgenden zwei Dateien für den Webbenutzer
append Bashrc und Bash_profile Datei , indem Sie
3) Melden Sie sich ab, dann wieder an und überprüfen Sie, ob die Änderungen korrekt vorgenommen wurden:
Das ist es und sie boomt, boom boom.
quelle
Wenn einige Ihrer Dienste in Grenzen geraten, ist es manchmal einfacher, entsprechende Befehle in das Init-Skript des Dienstes einzufügen. Zum Beispiel, wenn Apache Berichte erstellt
Versuchen Sie zu setzen
ulimit -s unlimited
in/etc/init.d/httpd
. Dies erfordert keinen Neustart des Servers.quelle