首页/系统与基础设施/自动化运维速查/顺序执行与并行执行的语义差异
自动化基础与选型50 条

顺序执行与并行执行的语义差异

顺序执行保证任务按批次逐个推进,影响面小但不保证整体成功;并行执行提升速度但会让峰值负载叠加,也失去严格顺序。带状态服务、共享数据库、主从结构等场景必须顺序或分组串行,无状态可替换节点才适合并行;实务中常用「组内并行、组间串行」的做法折中。

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

语义差别

顺序执行指任务按预定顺序一次作用于一个目标或一批目标,前一批完成后才开始下一批;它的代价是总耗时长,收益是任何时刻受影响的目标数量受控,出现问题时能立即停在前一批。并行执行指同一时刻对多个目标动手,速度快,但峰值资源消耗、对共享依赖的压力以及不确定的执行顺序都会成倍放大。两者不是性能选项,而是影响面选项。

基本信息

顺序执行按批推进,前批成功后再进入下一批
并行执行多目标同时执行,顺序不确定
折中做法组内并行、组间串行并留间隔
判断依据目标是否可替换、是否共享状态、是否影响业务容量

必须顺序的场景

  • 主从结构:先改从库再切换主库,顺序颠倒会引发数据风险。
  • 集群法定多数:并行重启超过容错数量会导致集群失去多数而不可用。
  • 共享数据库变更:并行执行会产生锁竞争甚至死锁。
  • 单实例关键服务:并行没有意义,只会增加重启次数。
  • 需要逐台验证的业务:每台确认健康后再继续,避免带病扩散。

两种方式对比

对比项顺序执行并行执行
影响面小且可控峰值集中,难预测
总耗时长短
失败定位容易定位到具体批次并发日志交错,定位困难
共享依赖压力平缓瞬时集中
顺序保证有无
适用对象有状态、共享资源无状态、可替换
批次大小要结合容量冗余确定:确认服务能承受「一批下线」而不影响整体水位,再决定每批目标数,比拍一个百分比更可靠。
并行执行时日志会交错,需要在任务输出里带上目标标识与批次编号,否则排查时无法判断某条输出属于哪台主机。

易错点

  • 对带状态集群并行重启:同一刻下线数量超过容错阈值,集群直接不可用
  • 并行执行共享数据库变更:锁等待与死锁概率上升,部分任务超时失败且状态不一致
  • 批次之间不留间隔:前一批资源尚未释放,后一批已经开始,峰值比预期更高
  • 顺序执行但不设失败中止:前一批失败后继续推进后续批次,错误状态被层层放大

数据来源与参考

  • Ansible 官方文档(serial、forks 与执行策略)
  • Kubernetes 官方文档(滚动更新与最大不可用设置)
  • Google SRE 工作手册(批次发布相关章节)

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/serial-vs-parallel-execution-semantics.html

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