Resolvendo a mensagem testparm do samba: rlimit_max: rlimit_max (8192) abaixo do limite mínimo do Windows (16384)

Resolvendo a mensagem testparm do samba: rlimit_max: rlimit_max (8192) abaixo do limite mínimo do Windows (16384)

testparm no samba pode produzir esta mensagem:

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

Isso parece ser resolvido aumentando o limite máximo de arquivos abertos usando este comando do Linux ulimit -n 16384.

Esta é uma mudança segura para a caixa tipicamente Samba? Onde essa configuração deve ser armazenada para que fique disponível para o serviço samba na inicialização?

Responder1

Em primeiro lugar, isto é apenas um aviso. No MS Windows, o número de manipuladores de arquivos no cliente e no servidor deve ser idêntico; caso contrário, você verá a mensagem "muitos arquivos abertos" ao, por exemplo, copiar arquivos pela rede. Versões mais recentes do Samba cuidam disso sozinhas.

No entanto, se quiser remover esse aviso, você pode fazer isso alterando os limites de arquivos locais. É sempre útil distinguir limites locais (usuário ou sessão) e limites globais (em todo o sistema). Verifique seus limites globais com

 cat /proc/sys/fs/file-max

Há boas chances de que seus limites globais excedam em muito os limites locais. Acho que o limite típico do GNU/Linux está na faixa de 100k, não vejo há muito tempo. Você pode alterar esse valor temporariamente executando

sysctl -w fs.file-max=n

ou permanentemente editando /etc/sysctl.confe executando sysctl -p.

Para verificar seus limites locais, mude para o usuário em questão, por exemplo, samba, e execute

ulimit -Hn
ulimit -Sn

Isso mostrará os limites rígidos e flexíveis para a sessão local. O limite rígido é aplicado pelo sistema, enquanto o limite flexível é aplicado pela sessão local. Você pode aumentar o limite flexível local até o limite rígido global, se necessário.

Você pode alterar os limites temporariamente executando

ulimit -Hn n
ulimit -Sn m

ou você pode definir limites de usuário /etc/security/limits.confe até mesmo especificar para quais usuários quais limites se aplicam, por exemplo

samba soft nofile 16384
samba hard nofile 32768

Como sempre, as páginas de manual dos arquivos e dos comandos oferecem muito mais informações. Espero que ajude.

Responder2

O limite é obtido de /etc/security/limits.conf.

você mostra seu limite real com ulimit -n

você pode alterá-lo editando (ou adicionando) linha

*               -       nofile          16385

e recarregue seu parâmetro env (ou saia do shell e entre novamente no shell).

Responder3

É simples, mas acredito que muita gente perde tempo com essa pergunta (como eu haha).

Precisamos configurar o limite do parâmetroNENHUM ARQUIVOem "/etc/security/limits.conf" ou em outro arquivo alternativo como "/etc/security/limits.d/limit-file.conf" assim:

*    -    nofile  16384

O problema é que esta configuração não se aplica à sessão atual, precisamos sair e fazer login para aplicar as alterações, portanto nossos testes com TESPARM sempre falham.

Se não quiser reiniciar a sessão, aplique este comando e resolva este problema:

ulimit -n 16384

Espero que isto ajude!

Responder4

Um erro de digitação no /etc/samba/smb.confarquivo pode gerar esse tipo de erro. Eu segui issolinke reexaminei o meu apenas para descobrir que meu problema era um erro de digitação: "sim" em vez de "sim".

informação relacionada