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

过程:调整最大文件计数
  1. 在命令提示符下,以 root 身份打开本地配置文件进行编辑:

    systemctl edit jabberd
  2. 添加或编辑以下部分:

    [Service]
    LimitNOFILE=<软限制>:<硬限制>

    要选择的值因环境而异。例如,如果您有 9500 个客户端,可将软限制值增大 100,即 9600,并将硬限制值增大 1000,即 10500:

    [Unit]
    LimitNOFILE=
    LimitNOFILE=9600:10500
  3. 保存该文件并退出编辑器。

systemctl 文件的默认编辑器是 vim。要保存文件并退出,请按 Esc 进入常规模式,键入 :wq 并按 Enter

确保同时更新 /etc/jabberd/c2s.xml 中的 max_fds 参数。例如:<max_fds>10500</max_fds>

文件数软限制是单个进程可以打开的文件数上限。在 SUSE Manager 中,资源消耗量最高的进程是 c2s,它为每个客户端打开一个连接。此处额外添加了 100 个文件,以弥补所需的任何非连接文件,使 c2s 能够正常运行。硬限制适用于属于 jabber 的所有进程,此外还考虑了从路由器、c2ssm 进程打开的文件。