Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

testparm in samba may produce this message:

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

This appears be be resolved by increasing the max open file limit using this Linux command ulimit -n 16384..

Is this a safe change for the typically Samba box? Where should this setting be stored so that it will be available to the samba service on boot?

share|improve this question

2 Answers 2

First off, this is just a warning. On MS Windows the number of file handlers on the client and the server must be identical, else you will see the "too many files open" message when e. g. copying files over the network. More recent Samba versions take care of this on their own.

However, if you want to remove this warning, you can do so by changing your local file limits. It is always useful to distinguish local (user or session) limits and global (system wide) limits. Check you global limits with

 cat /proc/sys/fs/file-max

Chances are good that your global limits far exceed your local limits. I think the typical GNU/Linux limit is in the 100k range, I haven't looked in a really long time. You can change this value temporarely by executing

sysctl -w fs.file-max=n

or permanently by editing /etc/sysctl.conf and running sysctl -p.

To check your local limits, switch to the concerned user, e. g. samba, and run

ulimit -Hn
ulimit -Sn

This will show you hard and soft limits for the local session. The hard limit is enforced by the system, while the soft limit is enforced by the local session. You can increase the local soft limit up to the global hard limit, if necessary.

You can change the limits temporarely by running

ulimit -Hn n
ulimit -Sn m

or you can set user limits via /etc/security/limits.conf and you can even specify for which users which limits apply, e. g.

samba soft nofile 16384
samba hard nofile 32768

As always the man-pages of both files and the commands offer much more insight. Hope that helps.

share|improve this answer

Limit is taken from /etc/security/limits.conf.

you show your actual limit with ulimit -n

you can change it by editing (or adding) line

*               -       nofile          16385

and reload your env param (or exit shell and enter again shell).

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.