GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist die Beschränkung der maximal geöffneten Dateien unter Linux?

Sie können die Softlimits und Hardlimits Ihres Systems mit ulimit -a überprüfen Befehl.

  1. Soft Limits sind einfach die derzeit geltenden Limits.
  2. Hard-Limits markieren den Maximalwert, der durch Setzen eines Soft-Limits nicht überschritten werden kann.

Soft-Limits können von jedem Benutzer gesetzt werden, während Hard-Limits 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 systemweite Beschränkungen während der Systeminitialisierung in Init-Skripten und Benutzerbeschränkungen während der Benutzeranmeldung festgelegt werden, beispielsweise durch Verwendung von pam_limits .

Beim Booten des Computers 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 vorhandenen ulimit-Befehlen durchsuchen, wenn Sie die Standardeinstellung ändern möchten.

Wenn die Beschränkung 1024 war, bedeutet das, dass Sie/Prozess maximal 1024 Dateien öffnen können. wenn Sie dieses Limit überschreiten, bedeutet das open , pipe und dup Systemaufrufe schlagen fehl:

RLIMIT_NOFILE:

Gibt einen Wert an, der um eins größer ist als die maximale Dateideskriptornummer, die von diesem Prozess geöffnet werden kann. Versuche (open(2) , pipe(2) , dup(2) , usw.), um dieses Limit zu überschreiten, führt zu dem Fehler EMFILE .


Es ist eine Reihe offener Datei-Deskriptoren pro Prozess . Sie können alle auf dieselbe Datei oder auf verschiedene Dateien verweisen.

Die aktuellen Limits können Sie mit ulimit -a einsehen in der Shell oder programmatisch mit getrlimit . Die systemweiten Limits werden in /etc/security/limits.conf gesetzt .

Das Dateisystem-Objektmodell unter Linux ist:

file descriptor -> file description -> dentry -> inode
  1. Dateideskriptor ist die von der Anwendung verwendete Ganzzahl.
  2. Dateibeschreibung ist die Kernel-Datenstruktur, zu der ein oder mehrere Dateideskriptoren gehören siehe.
  3. dentry ist der Dateiname. Eine Datei kann viele Namen haben (harte Links).
  4. Inode ist der Dateiinhalt.

dup erstellt einen neuen Dateideskriptor für dieselbe Dateibeschreibung.open erstellt einen neuen Dateideskriptor und eine Dateibeschreibung.


Linux
  1. Linux – Welche Dateisysteme unter Linux speichern die Erstellungszeit?

  2. Die besten Dateiübertragungstools unter Linux

  3. Was sind Sparse-Dateien in Linux?

  4. Was ist der Zweck der .bashrc-Datei in Linux

  5. Was ist eine gute Lösung für das Tagging von Dateien unter Linux?

Was ist umask unter Linux?

Was ist die Shell unter Linux?

Die 6 besten Möglichkeiten zum Anzeigen von Dateien unter Linux

So entpacken Sie die gz-Dateien unter Linux

Linux-Dateiverwaltung über das Terminal

Was ist eine .bashrc-Datei unter Linux?