OSAD 和 jabberd 查错
在某些情况下,jabber 可以打开的最大文件数量少于连接的 OSAD 客户端数量。
如果出现这种情况,OSAD 客户端将无法联系 SUSE Manager Server,并且 jabberd 会花费过多的时间在端口 5222 上做出响应。
仅当您使用 OSAD 连接的客户端数超过 8192 个时,才需要采取此修复措施。对于这种情况,我们建议您考虑改用 Salt 客户端。有关微调大规模安装的详细信息,请参见 Scaling Minions (Large Scale Deployments)。 |
可以通过编辑 jabberd 本地配置文件来增加 jabber 可用的文件数。该文件的默认路径为 /etc/systemd/system/jabberd.service.d/override.conf
。
-
在命令提示符下,以 root 身份打开本地配置文件进行编辑:
systemctl edit jabberd
-
添加或编辑以下部分:
[Service] LimitNOFILE=<软限制>:<硬限制>
要选择的值因环境而异。例如,如果您有 9500 个客户端,可将软限制值增大 100,即 9600,并将硬限制值增大 1000,即 10500:
[Unit] LimitNOFILE= LimitNOFILE=9600:10500
-
保存该文件并退出编辑器。
systemctl 文件的默认编辑器是 vim。要保存文件并退出,请按 Esc 进入 |
确保同时更新 /etc/jabberd/c2s.xml
中的 max_fds
参数。例如:<max_fds>10500</max_fds>
文件数软限制是单个进程可以打开的文件数上限。在 SUSE Manager 中,资源消耗量最高的进程是 c2s
,它为每个客户端打开一个连接。此处额外添加了 100 个文件,以弥补所需的任何非连接文件,使 c2s
能够正常运行。硬限制适用于属于 jabber 的所有进程,此外还考虑了从路由器、c2s
和 sm
进程打开的文件。