Frage

Ist es möglich, die maximale Anzahl von geöffneten Dateien bis zu einem gewissen „unendlich“ Wert zu setzen oder muss es eine Zahl sein?

hatte ich eine Anforderung, die Beschreiber Grenze für einen Daemon Benutzer einstellen „unbegrenzt“ zu sein, und ich versuche, zu bestimmen, ob das möglich ist oder wie es zu tun. Ich habe einige Mailinglisten auf einen „max“ Wert beziehen gesehen, die (wie in verwendet werden können: „myuser hart nofile max“, aber so weit man-Seiten und Referenzen, die ich konsultiert habe nicht, dass sichern

Wenn ich nicht ‚max‘ oder ähnliches verwenden können, ich möchte wissen, wie um zu bestimmen, was die maximale Anzahl von Dateien ist (theoretisch) so habe ich eine gewisse Basis für was auch immer Nummer ich wählen. Ich will nicht 100000000 oder etwas verwenden, wenn es eine vernünftige Art und Weise ist eine Obergrenze zu erhalten.

Ich bin mit RHEL 5, wenn es wichtig ist.

Update: Ich bin ein Idiot, wenn es um schriftlich Fragen kommt. Im Idealfall würde Ich mag diese in der Datei limits.conf zu tun (was, wo „max“ würde aus ist). Heißt das keine Antworten ändern?


Danke für die Kommentare. Dies ist für eine JBOSS-Instanz und kein Dämon Ich schreibe, also weiß ich nicht, ob setrlimit () mir nützlich ist. Allerdings Jefromi - Ich mag die Definition der Unendlichkeit do :) sah ich einen Beitrag, dass ein Dateideskriptor „zwei kurze Hosen und ein Zeiger“ so sollte ich in der Lage zu berechnen die ungefähre obere Grenze schlägt

.
War es hilfreich?

Lösung

POSIX können Sie die RLIMIT_NOFILE Ressourcengrenze setzen, um RLIM_INFINITY mit setrlimit() . Das bedeutet, dass das System nicht diese Ressourcengrenze erzwingen. Natürlich, werden Sie noch durch die Umsetzung (z MAXINT) und andere Ressourcenbeschränkungen (z verfügbarer Speicher) begrenzt werden.

Update: RHEL 5 hat einen Maximalwert von 1.048.576 (2 20 ) für diese Grenze (NR_OPEN in /usr/include/linux/fs.h), und wird jeden größeren Wert einschließlich Unendlichkeit nicht akzeptieren, auch für root. Also auf RHEL 5 Sie diesen Wert in /etc/security/limits.conf verwenden können, und das ist so nah wie du bis ins Unendliche bekommen gehen.

Vor nicht langer Zeit Patch-Linux-Kernel angewandt wurde diese Grenze zu ermöglichen, bis ins Unendliche zu setzen, jedoch es ist seit dem als Folge der unbeabsichtigten Folgen rückgängig gemacht worden .

Andere Tipps

Versuchen Sie die Zeile

<domain>    -

ersetzt <domain> mit dem Benutzernamen, im einfachsten Fall.

Die limits.conf Manpage sagt

-
    for enforcing both soft and hard resource limits together.

    Note, if you specify a type of '-' but neglect to supply the
    item and value fields then the module will never enforce any
    limits on the specified user/group etc. .
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top