首页/系统与基础设施/自动化运维速查/巡检采集的并发与限流
巡检与自助运维60 条

巡检采集的并发与限流

采集并发度应由被检端最脆弱的环节决定,而不是采集机的能力上限:按目标类型分组设限、单次采集加超时、失败重试加抖动,并预留一键降档。并发设置不当会触发失败、重试、更拥塞的正反馈。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌‌​​‌‌​‌‌‌​​​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​​​‌‌​‌‌​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌‌​‌​‌​‌‌‌​​‌​​‌‌‌​​‌​​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌‌​‌​​​‌‌​‌​​​​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌‌​‌​​​‌‌‌​‌​​​‌‌​‌‌​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

并发度是巡检的第一参数

采集并发度决定巡检向生产环境施加的瞬时压力。被检端要同时承受连接建立、命令解释、磁盘读取、日志扫描等开销;采集端则受限于自身进程数、文件描述符、连接池与出口带宽。并发没有普适最优值,它应当由被检端最脆弱的那个环节决定,并按目标类型分组设置,而不是全局写死一个数字。

基本信息

控制对象同一时刻活跃的采集会话数
常用手段固定并发池、令牌桶限速、队列深度限制
被检端瓶颈连接并发上限、进程与文件句柄上限、实例 CPU
采集端瓶颈进程数、文件描述符、出口带宽与专线质量
观测方式被检端连接数与负载、采集端队列积压时长

典型使用场景

  • 首次全量接入:目标多且承压能力未知,先用低并发探路,观察被检端表现后再逐档提高
  • 网络设备采集:设备 CPU 弱、并发会话数少,上限必须明显低于服务器类目标
  • 数据库巡检:采集语句会争抢连接与 I/O,需在低谷执行并按实例限流
  • 跨机房或跨专线采集:带宽受限时,过高并发会把采集流量变成拥塞来源
  • 与备份、发布窗口重叠:临时下调并发,避免与已有重负载任务叠加

常见限流手段对照

手段作用点副作用
固定并发池采集端活跃会话数目标耗时不均时吞吐被浪费
令牌桶限速单位时间新增任务数突发被平滑,长尾任务变长
目标侧冷却同一目标两次采集的最小间隔重试场景下拉长整体收敛时间
分组分级按目标类型设不同上限配置项增多,需维护分组规则

并发与限流基本写法

并发与限流基本写法
# 用队列加固定工作进程数控制并发,而不是一次性拉起全部目标
cat targets.txt | xargs -P 8 -n 1 ./collect.sh   # -P 8:最多 8 个并发采集
# 单次采集加超时,防止挂死会话长期占用并发槽
timeout 30 ./collect.sh www01 || echo www01 >> timeout.txt
# 重试前加随机抖动,避免失败目标在同一秒集中重试
sleep $((RANDOM % 5))
# 采集完毕立刻释放连接,缩短被检端连接占用时间
ssh -o BatchMode=yes -o ConnectTimeout=5 ops@www01 uptime
并发调高比调低危险得多:被检端一旦被打满,采集失败会触发重试,重试又加剧拥塞,形成正反馈。上调应逐档进行并同步观察被检端指标,同时保留一键降档的能力。
限流按目标类型分组才有效。服务器、数据库、网络设备、存储的承受能力差一个数量级;用同一并发跑全部目标时,实际上限被迫取最弱一档,其余目标长期低效采集。

易错点

  • 只按采集机能力设并发上限:被检端先被打满,巡检演变为生产事故
  • 失败任务立即全量重试:重试流量与既有高负载叠加,形成拥塞正反馈
  • 多套系统重复采集同一目标:压力翻倍却无人知晓,指标口径也可能冲突
  • 并发数字硬编码在脚本里:缺少随窗口与目标规模调整的开关,扩容后只能人工改脚本

数据来源与参考

  • OpenSSH 手册 sshd_config(5):MaxStartups 与连接并发控制
  • Ansible 官方文档:forks 参数与执行并发
  • ITIL 4 服务管理实践:监控与事件管理

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/inspection-collection-concurrency-throttling.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌‌​​‌‌​‌‌‌​​​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​​​‌‌​‌‌​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌‌​‌​‌​‌‌‌​​‌​​‌‌‌​​‌​​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌‌​‌​​​‌‌​‌​​​​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌‌​‌​​​‌‌‌​‌​​​‌‌​‌‌​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​