jca*_*fee 11 linux samba samba4
samba 中的 testparm 可能会产生此消息:
rlimit_max: rlimit_max (8192) below minimum Windows limit (16384)
Run Code Online (Sandbox Code Playgroud)
这似乎可以通过使用此 Linux 命令增加最大打开文件限制来解决ulimit -n 16384。
对于典型的 Samba 盒子来说,这是一个安全的改变吗?这个设置应该存储在哪里,以便它在启动时可供 samba 服务使用?
首先,这只是一个警告。在 MS Windows 上,客户端和服务器上的文件处理程序的数量必须相同,否则在例如通过网络复制文件时,您将看到“打开的文件太多”消息。最近的 Samba 版本会自行处理这个问题。
但是,如果要删除此警告,可以通过更改本地文件限制来实现。区分本地(用户或会话)限制和全局(系统范围)限制总是有用的。检查您的全局限制
cat /proc/sys/fs/file-max
Run Code Online (Sandbox Code Playgroud)
很有可能您的全局限制远远超过您的本地限制。我认为典型的 GNU/Linux 限制在 100k 范围内,我已经很久没有看过了。您可以通过执行临时更改此值
sysctl -w fs.file-max=n
Run Code Online (Sandbox Code Playgroud)
或永久通过编辑/etc/sysctl.conf和运行sysctl -p.
要检查您的本地限制,请切换到相关用户,例如 samba,然后运行
ulimit -Hn
ulimit -Sn
Run Code Online (Sandbox Code Playgroud)
这将显示本地会话的硬限制和软限制。硬限制由系统强制执行,而软限制由本地会话强制执行。如有必要,您可以将本地软限制增加到全局硬限制。
您可以通过运行临时更改限制
ulimit -Hn n
ulimit -Sn m
Run Code Online (Sandbox Code Playgroud)
或者您可以通过设置用户限制/etc/security/limits.conf,您甚至可以指定哪些用户限制适用,例如
samba soft nofile 16384
samba hard nofile 32768
Run Code Online (Sandbox Code Playgroud)
与往常一样,文件和命令的手册页提供了更多的洞察力。希望有帮助。
小智 4
限制取自/etc/security/limits.conf。
你用 ulimit -n 显示你的实际限制
您可以通过编辑(或添加)行来更改它
* - nofile 16385
Run Code Online (Sandbox Code Playgroud)
并重新加载您的环境参数(或退出 shell 并再次进入 shell)。
| 归档时间: |
|
| 查看次数: |
61718 次 |
| 最近记录: |