samba中的testparm可以产生以下消息:
rlimit_max: rlimit_max (8192) below minimum Windows limit (16384) 通过使用这个Linux命令ulimit -n 16384增加最大打开文件限制来解决这一问题。
对于典型的Samba框来说,这是一个安全的更改吗?应将此设置存储在何处,以便在启动时将其用于samba服务?
发布于 2014-11-02 10:03:54
首先,这只是一个警告。在MS上,客户端和服务器上的文件处理程序的数量必须相同,否则当您通过网络复制文件时,您将看到“打开的文件太多”的消息。最近的Samba版本自己解决了这个问题。
但是,如果要删除此警告,可以通过更改本地文件限制来做到这一点。区分本地(用户或会话)限制和全局(系统范围)限制总是有用的。检查您的全局限制
cat /proc/sys/fs/file-max很有可能你的全球极限远远超过了你的本地极限。我认为典型的GNU/Linux限制在100 K范围内,我已经很长时间没有看过了。您可以通过执行
sysctl -w fs.file-max=n或者通过编辑/etc/sysctl.conf和运行sysctl -p永久地。
若要检查本地限制,请切换到相关用户,例如samba,然后运行
ulimit -Hn
ulimit -Sn这将向您展示本地会话的硬和软限制。硬限制由系统强制执行,而软限制由本地会话强制执行。如果有必要,您可以将本地软限制提高到全局硬限制。
您可以通过运行
ulimit -Hn n
ulimit -Sn m或者您可以通过/etc/security/limits.conf设置用户限制,甚至可以指定哪些用户适用这些限制,例如。
samba soft nofile 16384
samba hard nofile 32768一如既往,这两个文件和命令的手册页提供了更多的洞察力。希望这能帮上忙。
发布于 2014-03-13 11:05:48
限制来自/etc/security/ Limit s.conf。
使用ulimit -n显示您的实际限制
可以通过编辑(或添加)行来更改它。
* - nofile 16385并重新加载env param (或退出shell并再次输入shell)。
发布于 2019-10-31 18:36:03
这很简单,但我相信很多人在这个问题上浪费时间(就像我哈哈)。
因此,我们需要在“/etc/security/limits.d s.conf”或另一个替代文件中配置参数NOFILE的限制,例如“/etc/security/Lims.d/Lim-file.conf”:
* - nofile 16384问题是这个配置不适用于当前会话,我们需要退出和登录来应用更改,因此我们使用TESPARM的测试失败。
ulimit -n 16384希望这能有所帮助!
https://serverfault.com/questions/509560
复制相似问题