平台负责人常遇到同一台「独占」Mac mini M4 既要跑 GitHub Actions 类 CI,又要在夜间承接 OpenClaw 或批处理自动化——若只靠口头约定,迟早出现模拟器占满端口或 Agent 长任务拖住 Runner。本文为 2026 年可执行的借调方案:先给准入决策矩阵(何时允许划容量),再给三种时间窗模板与七步标签流程,最后用数值化回滚门槛收尾。文内含两张结构不同的对照表与至少五条可照抄的运维动作。
若你尚未把 Mac 当成可替换节点,请先读 可调度 Mac mini M4 节点 建立标签语义;借调常与 Runner 排空与维护交接 穿插发生,建议两套 runbook 交叉链接到值班手册。单机并发与混池公平性见 并发切片与 CI/Agent 公平性矩阵。需要短期加机吸收借调风险时,可直接查看 NodeMac 定价与区域。
独占机仍冲突:三类真实痛点
- 任务归属不清:研发把「这台机」同时登记在 CI 看板与自动化值班表,却没有单一 Owner,借调窗口开始时双方都认为对方应让路。
- 单机瓶颈被误读:队列变长时第一反应是「再加机」,实则同一主机上 Agent 与 Runner 争用 CPU 与统一内存,加标签而不减载只会把 p95 等待从 12 分钟推到 35 分钟以上。
- 环境冲突与密钥混放:借调期间若共用同一 macOS 用户与钥匙串,CI 签名身份与 Agent 调用的 API 凭据可能互相覆盖,回滚后仍留下隐蔽故障。
借调准入决策矩阵
下列矩阵用于变更会签:满足「允许借调」行越多,越适合把默认 CI 标签暂时收窄;若多数落在禁止侧,应单独租一台 burst 机而非共享独占池。
| 判定项 | 允许借调 | 暂缓 / 禁止 |
|---|---|---|
| 备用 Runner 是否 Idle | ≥ 1 台同区域同镜像层 | 0 台可立即接流量 |
| 队列深度 vs 近 7 日中位数 | 当前深度 ≤ 中位数 × 1.2 | 已超过 ×1.5 |
| Agent 任务最长可接受独占 | ≤ 90 分钟且可分段 checkpoint | 不可预测长尾或需跨日持有 GPU/NPU |
| 密钥与签名隔离 | 已拆分登录项 / 专用钥匙串分区 | 仍共用同一开发者证书与 API Key 文件 |
时间窗模板与标签命名
| 模板 | 典型时段(UTC+8) | 建议标签动作 | 沟通提前量 |
|---|---|---|---|
| 工作日高峰保护 | 10:00–19:00 禁止借调 | macos-ci 全量在线;agent-borrow 空 |
24 小时公告 |
| 夜间批处理窗 | 23:30–次日 06:00 | 目标机从 macos-ci 移除,加入 agent-borrow |
48 小时 |
| 发布冻结周 | 按 RFC 冻结区间 | 仅允许「只读」Agent(无写仓、无签名) | 与发布经理双签 |
数值备忘:借调开始前记录三项基线——当前队列深度、运行中作业数、以及过去 24 小时内该机的平均 CPU 占用。回滚辩论时只用这三项对比,避免「感觉变慢」式扯皮。
七步借调执行清单
- 开单并挂 Owner:在变更系统写明借调机 hostname、起止时间、CI 与 Agent 双方值班人。
- 验证备用容量:确认备用 Runner 对默认分支的最近一次冒烟在 120 分钟内成功。
- 收窄入站标签:从目标机移除
macos-ci,保留只读监控标签以便告警路由不变。 - 等待运行作业归零或达排空上限:沿用你司排空 SLO;超时按维护 runbook 升级,而非静默强杀。
- 启动 Agent 工作负载:使用独立工作目录与日志前缀,避免与 CI workspace 混写。
- 窗口内每 15 分钟检查队列:若 p95 等待相对基线上升超过 40%,立即中止借调并切回标签。
- 结束收尾:杀掉残留模拟器进程、校验磁盘剩余空间 > 15%,再把
macos-ci挂回并跑一条标准流水线验收。
跨区借调时的延迟与数据驻留
当 CI 编排控制面在新加坡、而 Agent 工作负载需要贴近东京客户数据时,「借调」讨论必须同时包含 RTT 与合规。经验上,若 SSH 交互链路的往返延迟稳定在 35 ms 以内,大多数编译与轻量 Agent 工具链仍可保持与同城相差不超过 12% 的墙钟差异;超过 80 ms 时,优先考虑把 burst 机放在业务同一区域,而不是强行借调远端独占机。跨境团队可为每个区域维护一套最小「温热」池:至少 2 台同镜像 Mac,借调只在一池内进行,避免把香港机临时划给主要用户在北美的队列——那会把沟通成本放大到不可接受。
数据驻留策略要写进借调 RFC:Agent 是否允许读取含 PII 的仓库、日志是否落盘在借调机、以及窗口结束后是否必须执行安全擦除。没有书面约定的团队,常在借调结束后才发现磁盘上残留了大体积缓存,既浪费空间又带来审计风险。把清理步骤作为第 7 步清单的硬门禁,而不是「有空再做」。
回滚与沟通阈值
借调不是「一次性实验」,而是可逆操作。把下列阈值写进 Slack 机器人或 PagerDuty 说明,可减少夜间电话量约一半——我们观察到多数纠纷来自阈值未文档化。
- 队列深度:连续 20 分钟超过借调前基线 ×2,必须自动 @oncall CI。
- 失败率:默认分支红构建比例在 30 分钟窗口内上升 8 个百分点以上,优先怀疑资源争用而非代码问题。
- Agent 侧:若 OpenClaw 网关进程 OOM 或重启超过 3 次/小时,停止借调并改到独立主机——参见 OpenClaw 无头安装验收 做环境健康基线。
把 Mac 当作可调度节点时,Apple Silicon M4 的统一内存与能效让「短时借调」比 x86 笔记本集群更可预测:同样功耗下 CPU、GPU、NPU 可并行服务编译与轻量推理,且物理独占避免邻居机噪声。NodeMac 在香港、日本、韩国、新加坡与美国提供带 SSH 与 VNC 的专用 Mac mini M4,适合作为借调期的溢出容量或 Agent 专用节点;按需租用降低 TCO,不必为几周实验采购整机。