[ulimit-Befehl] Die maximale Anzahl von Dateihandles, die ein einzelner Linux-Prozess öffnen kann

Wie man die maximale Anzahl geöffneter Dateien in einem Linux-System überprüft und ändert, ist für viele Freunde, die gerade Linux gelernt haben, etwas seltsam. Der Unterschied zwischen dem Linux-System und Windows besteht darin, dass es über ein stärkeres Multitasking und Multithreading verfügt. Aufgrund der unterschiedlichen Dateisystemstrukturen kann Linux die maximale Anzahl geöffneter Dateien für verschiedene Prozesse und verschiedene Benutzer festlegen.

Sehen Sie sich die maximale Anzahl geöffneter Dateien im aktuellen System an, wie unten gezeigt

Geben Sie ulimit -a im Linux-Terminal ein

Der Wert nach der Parameteroption „Dateien öffnen“ ist die maximale Anzahl geöffneter Dateien, die vom aktuellen System unterstützt wird.

Der Systemstandardwert ist 1024.

Fügen Sie hier eine Bildbeschreibung ein
Für allgemeine Anwendungen (wie Apache, Systemprozesse) ist 1024 völlig ausreichend. Allerdings ist es für Anwendungen wie Squid, MySQL, Java usw., die eine große Anzahl von Anfragen in einem einzigen Prozess verarbeiten, etwas überfordert. Wenn die Anzahl der von einem einzelnen Prozess geöffneten Dateihandles den systemdefinierten Wert überschreitet, wird die Fehlermeldung „zu viele Dateien geöffnet“ ausgegeben. Woher wissen, wie viele Dateihandles vom aktuellen Prozess geöffnet werden? Das folgende kleine Skript kann Ihnen bei der Überprüfung helfen:

lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more

Fügen Sie hier eine Bildbeschreibung ein
Die erste Zeile ist die Anzahl der geöffneten Dateihandles und die zweite Zeile ist die Prozessnummer. Nachdem wir die Prozessnummer erhalten haben, können wir die Details des Prozesses über den Befehl ps abrufen.

ps -aef  |grep 10448

Wenn die Systemparallelität jedoch besonders groß ist, insbesondere auf dem Squid-Server, wird sie wahrscheinlich 1024 überschreiten. Zu diesem Zeitpunkt müssen die Systemparameter angepasst werden, um sie an Anwendungsänderungen anzupassen. Linux hat harte und weiche Grenzen. Diese beiden Parameter können über ulimit eingestellt werden. Die Methode ist wie folgt: Führen Sie den folgenden Befehl als Root-Benutzer aus:

ulimit -HSn 4096  

Im obigen Befehl gibt H die harte Größe an, S gibt die weiche Größe an und n bedeutet das Festlegen der maximalen Anzahl geöffneter Dateihandles für einen einzelnen Prozess. Persönlich denke ich, dass es am besten ist, 4096 nicht zu überschreiten. Denn je mehr Dateihandles geöffnet sind, desto langsamer ist die Antwortzeit. Nach dem Festlegen der Anzahl der Handles wird der Standardwert nach dem Neustart des Systems wiederhergestellt. Wenn Sie es dauerhaft speichern möchten, können Sie die Datei .bash_profile oder /etc/profile ändern und den obigen Befehl am Ende hinzufügen.

vim /etc/profile

ulimit -HSn 4096  

Quelle /etc/profile

Supongo que te gusta

Origin blog.csdn.net/u013421629/article/details/132493318
Recomendado
Clasificación