Auflösen der Samba-Testparameter-Meldung: rlimit_max: rlimit_max (8192) unter dem minimalen Windows-Limit (16384)

Auflösen der Samba-Testparameter-Meldung: rlimit_max: rlimit_max (8192) unter dem minimalen Windows-Limit (16384)

Testparm in Samba kann diese Meldung erzeugen:

rlimit_max: rlimit_max (8192) below minimum Windows limit (16384) 

Dies scheint behoben zu werden, indem das maximale Limit für geöffnete Dateien mit diesem Linux-Befehl erhöht wird ulimit -n 16384.

Ist dies eine sichere Änderung für die typische Samba-Box? Wo sollte diese Einstellung gespeichert werden, damit sie beim Booten für den Samba-Dienst verfügbar ist?

Antwort1

Zunächst einmal ist dies nur eine Warnung. Unter MS Windows muss die Anzahl der Dateihandler auf dem Client und dem Server identisch sein, sonst wird die Meldung „zu viele Dateien geöffnet“ angezeigt, wenn Sie beispielsweise Dateien über das Netzwerk kopieren. Neuere Samba-Versionen kümmern sich selbst darum.

Wenn Sie diese Warnung jedoch entfernen möchten, können Sie dies tun, indem Sie Ihre lokalen Dateilimits ändern. Es ist immer sinnvoll, zwischen lokalen (Benutzer- oder Sitzungs-) Limits und globalen (systemweiten) Limits zu unterscheiden. Überprüfen Sie Ihre globalen Limits mit

 cat /proc/sys/fs/file-max

Die Chancen stehen gut, dass Ihre globalen Grenzen Ihre lokalen Grenzen weit überschreiten. Ich denke, die typische GNU/Linux-Grenze liegt im Bereich von 100k, ich habe schon lange nicht mehr nachgeschaut. Sie können diesen Wert vorübergehend ändern, indem Sie

sysctl -w fs.file-max=n

oder dauerhaft durch Bearbeiten /etc/sysctl.confund Ausführen sysctl -p.

Um Ihre lokalen Limits zu prüfen, wechseln Sie zum betreffenden Benutzer, z.B. Samba, und führen Sie aus

ulimit -Hn
ulimit -Sn

Hier werden Ihnen harte und weiche Limits für die lokale Sitzung angezeigt. Das harte Limit wird vom System erzwungen, während das weiche Limit von der lokalen Sitzung erzwungen wird. Sie können das lokale weiche Limit bei Bedarf bis zum globalen harten Limit erhöhen.

Sie können die Grenzen vorübergehend ändern, indem Sie

ulimit -Hn n
ulimit -Sn m

oder Sie können Benutzerlimits festlegen über /etc/security/limits.confund Sie können sogar angeben, für welche Benutzer welche Limits gelten, z. B.

samba soft nofile 16384
samba hard nofile 32768

Wie immer bieten die Manpages der beiden Dateien und Befehle viel mehr Einblicke. Ich hoffe, das hilft.

Antwort2

Das Limit wird aus /etc/security/limits.conf übernommen.

Ihr tatsächliches Limit zeigen Sie mit ulimit -n an

Sie können es ändern, indem Sie die Zeile bearbeiten (oder hinzufügen)

*               -       nofile          16385

und laden Sie Ihre Umgebungsparameter neu (oder beenden Sie die Shell und öffnen Sie die Shell erneut).

Antwort3

Es ist einfach, aber ich glaube, dass so viele Leute mit dieser Frage ihre Zeit verschwenden (wie ich, haha).

Wir müssen die Parametergrenze konfigurierenKEINE DATEIin "/etc/security/limits.conf" oder in einer anderen alternativen Datei wie "/etc/security/limits.d/limit-file.conf" also:

*    -    nofile  16384

Das Problem besteht darin, dass diese Konfiguration nicht auf die aktuelle Sitzung angewendet wird. Wir müssen die Sitzung beenden und uns erneut anmelden, um die Änderungen anzuwenden. Daher schlagen unsere Tests mit TESPARM immer fehl.

Wenn Sie die Sitzung nicht neu starten möchten, wenden Sie diesen Befehl an und lösen Sie das Problem:

ulimit -n 16384

Hoffe das hilft!

Antwort4

Ein Tippfehler in /etc/samba/smb.confder Datei kann diese Art von Fehler erzeugen. Ich bin diesem gefolgtVerknüpfungund habe meins noch einmal überprüft, nur um herauszufinden, dass mein Problem ein Tippfehler war: „yess“ statt „yes“.

verwandte Informationen