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

Größte zulässige maximale Anzahl geöffneter Dateien in Linux

Ich vermute, dass der Hauptgrund für das Limit darin besteht, übermäßigen Speicherverbrauch zu vermeiden (jeder offene Dateideskriptor verwendet Kernelspeicher). Es dient auch als Schutz vor fehlerhaften Anwendungen, die Dateideskriptoren preisgeben und Systemressourcen verbrauchen.

Aber wenn man bedenkt, wie absurd viel RAM moderne Systeme im Vergleich zu Systemen vor 10 Jahren haben, denke ich, dass die Standardwerte heute ziemlich niedrig sind.

Im Jahr 2011 wurde das standardmäßige harte Limit für Dateideskriptoren unter Linux von 1024 auf 4096 erhöht.

Einige Software (z. B. MongoDB) verwendet viel mehr Dateideskriptoren als das Standardlimit. Die Leute von MongoDB empfehlen, dieses Limit auf 64.000 zu erhöhen. Ich habe einen rlimit_nofile verwendet von 300.000 für bestimmte Anwendungen.

Solange Sie das Soft-Limit auf dem Standardwert (1024) belassen, ist es wahrscheinlich ziemlich sicher, das Hard-Limit zu erhöhen. Programme müssen setrlimit() aufrufen um ihr Limit über das Soft-Limit zu erhöhen, und sind immer noch durch das Hard-Limit begrenzt.

Siehe auch einige verwandte Fragen:

  • https://serverfault.com/questions/356962/where-are-the-default-ulimit-values-set-linux-centos
  • https://serverfault.com/questions/773609/how-do-ulimit-settings-impact-linux

Die Auswirkung wäre normalerweise nicht beobachtbar, aber das IO-Modul des Kernels muss sich um all diese offenen Dateideskriptoren kümmern, und sie könnten auch einen Einfluss auf die Cache-Effizienz haben.

Solche Begrenzungen haben den Vorteil, dass sie den Benutzer vor eigenen (oder fremden) Fehlern schützen. Wenn Sie beispielsweise ein kleines Programm oder Skript ausführen, das sich auf unbestimmte Zeit verzweigt, wird es schließlich auf einem der ulimit blockieren s und verhindern so ein intensiveres (möglicherweise nicht behebbares) Einfrieren des Computers.

Sofern Sie keine genauen Gründe haben, diese Grenzwerte zu erhöhen, sollten Sie dies vermeiden und besser schlafen.


Es ist technisch auf den maximalen Wert von unsigned long (C Lang) begrenzt, d. h. 4.294.967.295

Referenz :fs.h Datei

/* And dynamically-tunable limits and defaults: */
struct files_stat_struct {
  unsigned long nr_files;   /* read only */
  unsigned long nr_free_files;  /* read only */
  unsigned long max_files;    /* tunable THIS IS OUR VALUE */
};

Linux
  1. Kopieren Sie Dateien im Linux-Terminal

  2. Verschieben Sie Dateien im Linux-Terminal

  3. So erhöhen Sie das Limit für die Anzahl der geöffneten Dateien in Linux

  4. Linux-Interviewfragen:Open Files / Open File Descriptors

  5. Maximale PID unter Linux

ls-Befehl in Linux zum Auflisten von Dateien

So benennen Sie eine Datei (en) in Linux um

So verschieben Sie eine große Anzahl von Dateien in Linux

So ändern Sie das Limit für offene Dateien in Linux

So öffnen Sie Dateien und Ordner als Administrator im Nautilus-Dateimanager unter Linux

So komprimieren Sie eine Datei unter Linux