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

MySQL-Datumsfunktionen und Datumskonvertierungs- und -formatierungsfunktionen

MySQL ist eine kostenlose relationale Datenbank m...

Detaillierte Erklärung der Kartenüberlagerung in OpenLayers6

1. Overlay-Übersicht Overlay bedeutet Überlagerun...

Die Prinzipien und Mängel der MySQL-Volltextindizierung

Der MySQL-Volltextindex ist ein spezieller Index,...

Vue implementiert die Funktion zum Aufrufen der Handykamera und des Albums

In diesem Artikel wird der spezifische Code von V...

Beispielanalyse der drei Verbindungsmethoden für virtuelle VMware-Maschinen

NAT Auf diese Weise wird die Netzwerkkarte der vi...

So erstellen Sie einen vollständigen Samba-Server unter Linux (CentOS-Version)

Vorwort smb ist der Name eines Protokolls, das fü...

Natives JS implementiert benutzerdefinierte Bildlaufleistenkomponente

In diesem Artikelbeispiel wird der spezifische JS...

Centos7.3 startet oder führt beim Booten automatisch angegebene Befehle aus

In CentOS7 wurden die Berechtigungen der Datei /e...

Teilen des JS-nativen Quellcodes des Spiels 2048 (das Neueste im Internet)

Ich habe mich kürzlich mit Algorithmen beschäftig...