开发者
资源
文档评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

高并发采集时部分连接失败的解决方法

现象描述

服务器集群采集失败,报错结果如下图所示。

可能原因

由于服务器集群采集采用并发SSH登录方式同时连接服务器,瞬时建立的未认证连接数超过了sshd默认配置的阈值。当并发量达到一定规模(如10+)时,触发了MaxStartups的随机拒绝机制(或完全拒绝状态),导致部分采集任务因连接被主动切断而失败。

处理步骤

修改服务器sshd并发限制阈值。

  1. 登录待采集服务器,打开sshd_config配置文件。
    vi /etc/ssh/sshd_config

    找到MaxStartups配置,如下图所示。

  2. 按“i”进入编辑模式,修改MaxStartups配置。

    配置示例如下:

    MaxStartups 50:30:100

    MaxStartups参数用于限制SSH守护进程同时等待认证的并发连接数,格式为“未认证上限:拒绝概率百分比:最大上限”。以配置MaxStartups 50:30:100为例:

    • 0 ~ 50个连接:服务器正常接受所有新连接。
    • 51 ~ 100个连接:当未认证连接数超过50个,从第51个连接开始,服务器开始随机拒绝新连接。拒绝概率从30%开始,随连接数量增加而线性递增,直至达到100个连接时拒绝率为100%。
    • 超过100个连接:服务器直接丢弃所有新的SSH连接请求,直到活跃连接数下降至10个以下。

    请根据实际需求并发量配置该参数,未认证上限配置需大于0且小于等于最大上限,拒绝概率百分比参数取值为1到100。

  3. 完成后按“Esc”键,输入:wq!再按“Enter”键保存并退出。
  4. 配置完成后进行语法检查。
    sshd -t && echo "config OK"

    语法配置检查通过返回信息如下:

    config OK
  5. 平滑重载配置(保持现有连接不会断开)。
    systemctl reload sshd
  6. 重新尝试服务器集群采集。