Resolviendo el mensaje de samba testparm: rlimit_max: rlimit_max (8192) por debajo del límite mínimo de Windows (16384)

Resolviendo el mensaje de samba testparm: rlimit_max: rlimit_max (8192) por debajo del límite mínimo de Windows (16384)

testparm en samba puede producir este mensaje:

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

Esto parece resolverse aumentando el límite máximo de archivos abiertos usando este comando de Linux ulimit -n 16384.

¿Es este un cambio seguro para la caja típica de Samba? ¿Dónde debería almacenarse esta configuración para que esté disponible para el servicio samba al arrancar?

Respuesta1

En primer lugar, esto es sólo una advertencia. En MS Windows, el número de controladores de archivos en el cliente y en el servidor debe ser idéntico; de lo contrario, verá el mensaje "demasiados archivos abiertos" cuando, por ejemplo, copie archivos a través de la red. Las versiones más recientes de Samba se encargan de esto por sí solas.

Sin embargo, si desea eliminar esta advertencia, puede hacerlo cambiando los límites de sus archivos locales. Siempre es útil distinguir los límites locales (de usuario o de sesión) y los límites globales (de todo el sistema). Comprueba tus límites globales con

 cat /proc/sys/fs/file-max

Es muy probable que sus límites globales excedan con creces sus límites locales. Creo que el límite típico de GNU/Linux está en el rango de 100k, no lo he buscado en mucho tiempo. Puede cambiar este valor temporalmente ejecutando

sysctl -w fs.file-max=n

o permanentemente editando /etc/sysctl.confy ejecutando sysctl -p.

Para verificar sus límites locales, cambie al usuario en cuestión, por ejemplo, samba, y ejecute

ulimit -Hn
ulimit -Sn

Esto le mostrará límites estrictos y flexibles para la sesión local. El sistema aplica el límite estricto, mientras que la sesión local aplica el límite flexible. Puede aumentar el límite flexible local hasta el límite estricto global, si es necesario.

Puedes cambiar los límites temporalmente ejecutando

ulimit -Hn n
ulimit -Sn m

o puede establecer límites de usuarios /etc/security/limits.confe incluso puede especificar para qué usuarios se aplican los límites, por ejemplo

samba soft nofile 16384
samba hard nofile 32768

Como siempre, las páginas de manual de ambos archivos y los comandos ofrecen mucha más información. Espero que ayude.

Respuesta2

El límite se toma de /etc/security/limits.conf.

muestras tu límite real con ulimit -n

puedes cambiarlo editando (o agregando) línea

*               -       nofile          16385

y vuelva a cargar su parámetro env (o salga del shell y vuelva a ingresar al shell).

Respuesta3

Es simple, pero creo que mucha gente pierde el tiempo con esta pregunta (como yo jaja).

Necesitamos configurar el límite del parámetro.NINGÚN ARCHIVOen "/etc/security/limits.conf" o en otro archivo alternativo como "/etc/security/limits.d/limit-file.conf" así:

*    -    nofile  16384

El problema es que esta configuración no se aplica a la sesión actual, necesitamos salir e iniciar sesión para aplicar los cambios, por lo tanto, nuestras pruebas con TESPARM siempre fallan.

Si no desea reiniciar la sesión, aplique este comando y resuelva este problema:

ulimit -n 16384

¡Espero que esto ayude!

Respuesta4

Un error tipográfico en /etc/samba/smb.confel archivo puede generar este tipo de error. Seguí estoenlacey volví a examinar el mío sólo para descubrir que mi problema era un error tipográfico: "sí" en lugar de "sí".

información relacionada