Debian Max-Dateideskriptoren

Debian Max-Dateideskriptoren

Debian Lenny. Für jeden Benutzer, einschließlich Root:

# cat /proc/sys/fs/file-max
262144

# sysctl fs.file-max
fs.file-max = 262144

# ulimit -Hn
1024

# ulimit -Sn
1024

Die Datei /etc/security/limits.confenthält keine unkommentierten Zeilen.

Woher bekommt es diese 1024?

Antwort1

Derfs.file-maxsysctlzeigt an, wie viele Datei-Handles vergeben werden könnensystemweit, während ulimitRessourcenlimits pro Prozess (oder pro UID) gelten. Ersteres wird beschrieben inDocumentation/sysctl/fs.txt:90:

Dateimaximum und Dateinr.:

Der Wert in file-max gibt die maximale Anzahl von Dateien an,
Handles, die der Linux-Kernel zuweist. Wenn Sie viele
von Fehlermeldungen über fehlende Datei-Handles, können Sie
möchten dieses Limit erhöhen.

Das rlimit von 1024 Dateien wird nirgendwo explizit festgelegt; es ist im Kernel als Standardwert für PID 1 fest einprogrammiert, beiinclude/asm-generic/resource.h:81:

/*
 * Boot-Zeit-Rlimit-Standardwerte für die Init-Aufgabe:
 */
#define INIT_RLIMITS \
{ \
        ...
        [RLIMIT_NOFILE] = { INR_OPEN_CUR, INR_OPEN_MAX }, \
        ...
}

welche Referenzen INR_OPEN_CURund INR_OPEN_MAXausinclude/linux/fs.h:26:

#define INR_OPEN_CUR 1024 /* Anfangseinstellung für nfile rlimits */
#define INR_OPEN_MAX 4096 /* Hartes Limit für nfile rlimits */

Andere Prozesse erben einfach das Limit von init(oder was auch immer PID 1 ist).

Warum /proc/1/limitsmeldet Debian 1024 als Softund hartnfile-Limit? Ich weiß es nicht: weder die Sysvinit-Quellen noch die Debian-Kernel-Patches ändern es. Vielleicht könnten es die Initramfs-Skripte sein. (Ich verwende Arch, das den Standardwert 1024/4096 hat.)

Antwort2

Dieses Kernel-Commit kann die von @grawity gestellte Frage erklären:

Verpflichten 0ac1ee0bfec2a4ad118f907ce586d0dfd8db7641
Autor: Tim Gardner
Datum: Dienstag, 24. Mai 2011, 17:13:05 Uhr -0700

    ulimit: Erhöhen Sie das standardmäßige harte ulimit für die Anzahl der Dateien auf 4096

Zumindest in RHEL5.4 ist es 1024/1024 und in RHEL6.2 1024/4096.

verwandte Informationen