So lösen Sie das Problem zu vieler geöffneter Dateien in Linux

So lösen Sie das Problem zu vieler geöffneter Dateien in Linux

Die Ursache liegt darin, dass der Prozess zu einem bestimmten Zeitpunkt eine Anzahl von Dateien und Kommunikationsverbindungen öffnet, die das Systemlimit überschreitet. Mit dem Befehl ulimit -a können Sie die aktuell vom System festgelegte maximale Anzahl von Handles anzeigen.

Kerndateigröße (Blöcke, -c) 0

Datensegmentgröße (KB, -d) unbegrenzt

Planungspriorität (-e) 0

Dateigröße (Blöcke, -f) unbegrenzt

ausstehende Signale (-i) 31767

maximal gesperrter Speicher (KB, -l) 64

maximale Speichergröße (kByte, -m) unbegrenzt

Dateien öffnen (-n) 1024

Pipe-Größe (512 Bytes, -p) 8

POSIX-Nachrichtenwarteschlangen (Bytes, -q) 819200

Echtzeitpriorität (-r) 0

Stapelgröße (KB, -s) 8192

CPU-Zeit (Sekunden, -t) unbegrenzt

Maximale Benutzerprozesse (-u) 31767

virtueller Speicher (kByte, -v) unbegrenzt

Dateisperren (-x) unbegrenzt

Wie Sie sehen, beträgt die Anzahl der geöffneten Dateien 1024. Sie können die Anzahl der geöffneten Dateien erhöhen, indem Sie den folgenden Befehl ausführen

ulimit -n 65535

Durch diese Änderungsmethode kann die Anzahl der geöffneten Dateien vorübergehend auf 65535 erhöht werden, nach dem Neustart des Systems wird diese Konfiguration jedoch ungültig.

Eine andere Möglichkeit besteht darin, die Systemkonfigurationsdatei zu ändern. Am Beispiel von Ubuntu lautet die Standardkonfigurationsdatei

/etc/security/limits.conf

Fügen Sie diese Konfigurationsdatei hinzu

* Soft-Nofile 65535 * Hard-Nofile 6553

Wenn Sie die Anzahl der aktuell von einem Prozess geöffneten Handles anzeigen möchten, können Sie den folgenden Befehl verwenden:

lsof -p Prozess-ID | wc -l

Wenn Sie Supervisor zum Hosten und Starten des Projekts verwenden, tritt außerdem das Problem auf, dass diese Konfiguration nicht wirksam wird. Der Grund dafür ist, dass Supervisor die Anzahl der offenen Handles standardmäßig auf 1024 konfiguriert.

Wenn Sie die maximal geöffneten Dateien eines Prozesses anzeigen möchten, können Sie dies über die Grenzwerte anzeigen, die der Prozessnummer dieses Prozesses entsprechen.

cat /proc/Prozess-ID/Grenzen

Eine der Zeilen lautet:

Maximal geöffnete Dateien: 10241024 Bytes

Der Standardwert des vom Supervisor gehosteten Programms ist 1024, was die maximale Anzahl von Supervisor-Konfigurationen ist. Zu diesem Zeitpunkt müssen Sie die Supervisor-Konfigurationsdatei manuell ändern. Die Änderungsmethode ist wie folgt. Am Beispiel des Ubuntu-Systems finden Sie die Supervisor-Konfigurationsdatei supervisord.conf

Fügen Sie in der Option [supervisord] die Option minfds hinzu

[supervisord]minfds=65535 ; min. verfügbare Startdateideskriptoren; Standard 1024

Nach der Konfiguration müssen Sie den Supervisor neu starten (am Beispiel von systemctl).

systemctl restart supervisor

Es wird wirksam

Nebenbei:

cat /proc/Prozessnummer/Grenzwerte

Überprüfen Sie die Anzahl der offenen Dateien für den entsprechenden Prozess

Maximal geöffnete Dateien: 6553565535 Bytes

Oben finden Sie ausführliche Informationen zur Lösung des Problems „Zu viele offene Dateien“ unter Linux. Weitere Informationen zur Lösung des Problems „Zu viele offene Dateien“ unter Linux finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Eine kurze Diskussion über den virtuellen Speicher von Linux
  • Analyse der C++-Kompilierung und -Verknüpfung unter Linux
  • Implementierung der Linux-Installation von Pytorch1.8GPU (CUDA11.1)
  • Tutorial zum Bereitstellen eines Springboot-Pakets in einer Linux-Umgebung mithilfe von Docker
  • Ein Beispiel für die Verwendung der Sprache R zum Zeichnen von Bildern in der Linux-Befehlszeile
  • Eine detaillierte Einführung in die Linux-Verzeichnisstruktur
  • Häufig verwendete Linux-Befehle Leistungsbefehle
  • Linux Dateisystemtyp anzeigen Beispielmethode
  • Lösung für Pip-Upgradefehler im Linux-System

<<:  CSS-Pickup-Pfeile, Kataloge, Icons Implementierungscode

>>:  Es wird nicht empfohlen, den Inhalt in Word direkt in den Editor auf der Website zu kopieren.

Artikel empfehlen

Detaillierte Erläuterung der Pipeline und des Ventils im Tomcat-Pipeline-Modus

Vorwort Wenn in einem relativ komplexen großen Sy...

Erstellen Sie mit Flutter eine verschiebbare Stapel-Widget-Funktion

Dieser Beitrag konzentriert sich auf ein streng g...

Implementierung der MVCC-Mehrversions-Parallelitätskontrolle von MySQL

1 Was ist MVCC Der vollständige Name von MVCC lau...

Zusammenfassung der Konstruktor- und Superwissenspunkte in React-Komponenten

1. Einige Tipps zu mit class in react deklarierte...

Detaillierte Erläuterung des Vue Router Routing Guard

Inhaltsverzeichnis 1. Global vor jedem 1. Global ...

Erstellen Sie in 5 Minuten einen WebRTC-Videochat

Im vorherigen Artikel habe ich den detaillierten ...

Erstellen eines sekundären Menüs mit JavaScript

In diesem Artikelbeispiel wird der spezifische Ja...

HTML Tutorial: Sammlung häufig verwendeter HTML-Tags (4)

Verwandte Artikel: Anfänger lernen einige HTML-Ta...

Optimierungsanalyse der Limit-Abfrage in MySQL-Optimierungstechniken

Vorwort Im realen Geschäftsleben ist Paging eine ...

Detailliertes Tutorial zur Verwendung des Plugins tomcat8-maven-plugin in Maven

Ich habe viele Artikel online durchsucht, aber ke...

Lösung für die leere Seite nach einem vue.js-gepackten Projekt

Ich glaube, dass viele Partner, die gerade erst m...

Vue implementiert bidirektionale Datenbindung

In diesem Artikelbeispiel wird der spezifische Co...