多项目 iOS 团队在跨区 Mac Mini M4并联Detox 时,预算是一条绳上的三件事:iOS Simulator 每节点会话上限、派生产物跨区扇出的链路时间,以及 APFS 磁盘水位余量(紫测常在 CPU 仍绿时先抖)。下文给出可签字的决策矩阵与嵌在扩容节内的 1TB/2TB验收清单,用数字批容量。

Detox 对争用很诚实:多 Simulator 同启会先打满 APFS 元数据 IO,CPU 曲线仍可很平;多作业共写同一 DerivedData 暖树而无晋升门闩,则易「编译过、手势半路挂」。1TB 上设备集叠 Metro/SPM 缓存常早于预期撞墙。原生 xcodebuild《Xcode Parallel Testing 与模拟器并发、磁盘验收》;监听节流见 《Watchman/Git 与磁盘水位矩阵》

并发上限

下表作移动端平台、CI 与 FinOps 的合同:在 M4 上「再加一条并联车道」的代价写进列里。

形态 并行 Simulator 预算 DerivedData 策略 跨区 / 链路 磁盘档位提示
单区突发 16GB 档先验证 2~4 路并发 Simulator 尾延迟,再抬上限。 按作业划目录;并发 Detox 父进程禁止共写同一 DerivedData 根。 产物拉取尽量走内网;避免跨区强依赖暖缓存。 1TB 可行:周轮换缓存、合并后硬修剪。
多应用队列 Runner 内按 app id 串行;总启动运行时硬帽,队列可等。 编译后晋升只读快照;测试只读冻结树。 队列溢出多区时,为 Detox 启动探针加 RTT 余量。 三台及以上大应用同机倾向 2TB
跨区扇出 降低每节点并发;优先加 M4 节点而非单机英雄主义。 源区编译后 rsync 增量;消费端校验后再 boot。 量 RTT,对 WAN 设 --bwlimit,避免挤占 Simulator IO。 WAN 拷贝与 Simulator 同卷时默认 2TB

产物 rsync 参数

从消费方视角,暖缓存应原子到达:先落到带版本号的暂存目录,rsync 用归档语义、开启断点续传,稳定硬链后再压缩;WAN 腿加带宽上限,让 Simulator 启动 IO 优先。

共享根上优先 mtime/校验和增量,避免盲删。传输完成后一次 symlink 交换或目录重命名,杜绝 Detox 打开半填充树。车队级范式与 flock 示例见 《集群制品 rsync 矩阵》

提示:rsync 退出码与 Detox session id 共用同一 correlation id 记入结构化日志,flake 才能判成传输失败而非「业务回归」。

锁与队列

每条晋升路径只允许单写入者:合并队列泳道、缓存根上的文件锁,或 Nomad 调度令牌。读者可扇出,写入必须串行,否则 UI 超时会在概率里永远追不完。

CI 级队列与主机级 flock 包住触碰共享 DerivedData / CoreSimulator 设备集的窄临界区即可。多服务共享同一台 Mac Mini M4 时,与 《Nomad 亲和、构建锁与磁盘矩阵》 的「单晋升车道」对齐。

扩容策略

磁盘水位仍绿、队列变深时加节点;不要在利用率已九十还喊「再并联一点」。顺序:先缩每节点 Simulator 帽,再按应用分片到多机,最后才采购 2TB SKU。

  1. 按作业采集 APFS 剩余字节、IO wait、Detox 启动耗时 p95,周更大盘。
  2. 按档位定黄/红线;无审批跨黄即 fail-fast。
  3. 主机进红:冻结新并联泳道,摘除抖动机。
  4. 扩 WAN 扇出前先加产物源区的 M4 Runner。
  5. 大版本 iOS 运行时升级后重跑矩阵——CoreSimulator 落盘曲线会变。
2–4
16GB M4 上默认可验证的并行 Simulator 路数,再考虑抬帽。
70%
1TB 主机 APFS 持续越线则规划缓存轮换。
80%
周中位数逼近 80% 前触发扩容评审。

1TB/2TB 磁盘水位验收清单(上线/每季签字):

  • 预检容量:Agent 上报 APFS 可用 GB;低于黄线 watermark 则作业拒纳。
  • Simulator 帽:活跃 Detox 会话不超过该 SKU 对应矩阵行。
  • rsync 校验:校验和或严格 mtime 策略通过后才 symlink 交换给消费端。
  • 锁证明:晋升事件结构化日志含 lock id,可审计。
  • 修剪策略:CoreSimulator 与 DerivedData 保留窗口文档化且自动化。
  • 跑后释放:失败作业仍在一小时内释放设备集与临时树。

采购看三条曲线:Detox 队列深度、Simulator 启动 p95、APFS 利用率。队列涨盘绿则加对地理的并联 M4;盘黄队列平则先修缓存与 rsync 再买核。公开页 价格帮助 免登录可览,清单长期绿再在 购买 增配 Runner。

本文为运维向指引。上限请用自有 Detox trace 与 Apple 发行说明校准;水位依赖保留策略、快照与是否多栈共卷。
并联 iOS 容量

按 Detox 现实扩 Mac mini M4 并联资源

选配专用 M41TB/2TB 档位,把 Simulator 预算写进 runbook,并把计算放在靠近产物源区的区域。延伸阅读:Xcode 并行测试矩阵集群 rsync 矩阵Nomad 构建锁

购买并联 Mac 节点 查看套餐(免登录) 帮助中心